Skip to content

Commit

Permalink
Flytt henting av token inn i funksjonskallene
Browse files Browse the repository at this point in the history
  • Loading branch information
magnusae committed Jan 9, 2025
1 parent ec9b8c2 commit 1af335c
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 10 deletions.
14 changes: 10 additions & 4 deletions src/main/kotlin/no/nav/helsearbeidsgiver/altinn/Altinn3Client.kt
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@ class Altinn3Client(
private val baseUrl: String,
private val serviceCode: String,
private val m2m: Boolean = true,
private val getToken: () -> String,
cacheConfig: CacheConfig? = null,
) {
private val urlString = if (m2m) "$baseUrl/m2m/altinn-tilganger" else "$baseUrl/altinn-tilganger"
Expand All @@ -31,7 +30,10 @@ class Altinn3Client(
}
val FILTER = Filter(altinn2Tilganger = setOf("$serviceCode:1"), altinn3Tilganger = emptySet())

suspend fun hentHierarkiMedTilganger(fnr: String): TilgangResponse =
suspend fun hentHierarkiMedTilganger(
fnr: String,
getToken: () -> String,
): TilgangResponse =
cache.getIfCacheNotNull(fnr) {
val request = if (m2m) TilgangRequest(fnr, FILTER) else TilgangRequest(null, FILTER)
httpClient
Expand All @@ -42,12 +44,16 @@ class Altinn3Client(
}.body<TilgangResponse>()
}

suspend fun hentTilganger(fnr: String): Set<String> = hentHierarkiMedTilganger(fnr).tilgangTilOrgNr["$serviceCode:1"].orEmpty()
suspend fun hentTilganger(
fnr: String,
getToken: () -> String,
): Set<String> = hentHierarkiMedTilganger(fnr, getToken).tilgangTilOrgNr["$serviceCode:1"].orEmpty()

suspend fun harTilgangTilOrganisasjon(
fnr: String,
orgnr: String,
): Boolean = orgnr in hentTilganger(fnr)
getToken: () -> String,
): Boolean = orgnr in hentTilganger(fnr, getToken)
}

@Serializable
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ class Altinn3ClientTest :
).forEach { (orgnr, expected) ->
withClue("$orgnr should yield $expected") {
altinn3Client
.harTilgangTilOrganisasjon(FNR, orgnr)
.harTilgangTilOrganisasjon(FNR, orgnr, { "" })
.shouldBe(expected)
}
}
Expand All @@ -38,15 +38,15 @@ class Altinn3ClientTest :
"gyldig svar fra Altinn gir liste av organisasjoner" {
val altinn3Client = mockAltinn3Client(content = validAltinnResponse, HttpStatusCode.OK)

val authList = altinn3Client.hentTilganger(FNR)
val authList = altinn3Client.hentTilganger(FNR, { "" })

authList.size shouldBeExactly 3
}

"serverfeil trigger retry som gir gyldig svar" {
val altinn3Client = mockAltinn3Client(content = validAltinnResponse, HttpStatusCode.BadGateway, HttpStatusCode.OK)

val tilganger = altinn3Client.hentTilganger(FNR)
val tilganger = altinn3Client.hentTilganger(FNR, { "" })

tilganger.size shouldBeExactly 3
}
Expand All @@ -59,14 +59,14 @@ class Altinn3ClientTest :
)

shouldThrowExactly<ServerResponseException> {
altinn3Client.hentTilganger(FNR)
altinn3Client.hentTilganger(FNR, { "" })
}
}

"gyldig svar fra Altinn gir hierarki med liste av tilganger" {
val altinn3Client = mockAltinn3Client(content = validAltinnResponse, HttpStatusCode.OK)

val tilgangRespons = altinn3Client.hentHierarkiMedTilganger(FNR)
val tilgangRespons = altinn3Client.hentHierarkiMedTilganger(FNR, { "" })

val hovedEnhet = tilgangRespons.hierarki.find { it.orgnr == "810007702" }
hovedEnhet?.navn shouldBe "ANSTENDIG PIGGSVIN BYDEL"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,6 @@ fun mockAltinn3Client(
return mockStatic(::createHttpClient) {
every { createHttpClient(any()) } returns mockHttpClient

Altinn3Client("url", "4936", true, { "" })
Altinn3Client("url", "4936", true)
}
}

0 comments on commit 1af335c

Please sign in to comment.