Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .nais/prod.yml
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ spec:
namespace: poao
env:
- name: IDENT_ALLOW_LIST
value: "R154727,R156418,R158345,R158346,R160569,R165950,R165951,R165952,R150818,R150819,R155645,R162552,D159483,U143410"
value: "R154727,R156418,R158345,R158346,R160569,R165950,R165951,R165952,R150818,R150819,R155645,R162552,D159483,U143410,R172987"
- name: OPPFOLGING_URL
value: "http://veilarboppfolging.poao/veilarboppfolging/api"
- name: OPPFOLGING_SCOPE
Expand Down
25 changes: 25 additions & 0 deletions src/main/kotlin/no/nav/api/pdl/PdlRoutes.kt
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,16 @@ fun Route.configurePdlRoutes(pdlService: PdlService) {
val fnr = call.deserializeFnr() ?: return@post call.respond(HttpStatusCode.BadRequest)
call.respond(pdlService.hentPersonalia(fnr, payload))
}
route("aktorid") {
install(NotarizedRoute()) {
post = ApiV2.hentAktorId
}
post {
val token = call.getJWT()
val fnr = call.deserializeFnr() ?: return@post call.respond(HttpStatusCode.BadRequest)
call.respond(pdlService.hentAktorid(fnr, token))
}
}
}
}

Expand All @@ -41,6 +51,21 @@ private object ApiV2 {
tags("PDL")
canRespond(CommonModels.standardResponses)
}

val hentAktorId =
PostInfo.builder {
summary("Hent aktor ID")
description("Henter aktorid for en person")
request {
requestType(typeOf<FnrRequest>())
description("Brukers ident")
}
response {
responseCode(HttpStatusCode.OK)
responseType(typeOf<PdlPersonalia>())
description("identens tilhørende aktorid")
}
}
}

@Serializable
Expand Down
4 changes: 2 additions & 2 deletions src/main/resources/pdl/schema.graphqls
Original file line number Diff line number Diff line change
Expand Up @@ -749,7 +749,7 @@ input Criterion {

input SearchRule {
# Sjekker om feltet finnes / at det ikke har en null verdi.
exists:String
exists:Boolean
# Filtrerer bort treff hvor felt inneholder input verdi
notEquals:String
# Begrenser treff til kun de hvor felt har input verdi
Expand All @@ -759,7 +759,7 @@ input SearchRule {
# Søk som gir treff også for små variasjoner i skrivemåte
fuzzy:String
# Søk som gir tilfeldig poengsum til hvert treff (kun ment til generering av testdata)
random:String
random:Float
# Bruk "?" som wildcard for enkelt tegn, og "*" som wildcard for 0 eller flere tegn.
wildcard:String
# Gir treff når opgitt feltstarter med opgitt verdi.
Expand Down
15 changes: 7 additions & 8 deletions src/main/resources/saf/schema.graphqls
Original file line number Diff line number Diff line change
Expand Up @@ -528,17 +528,16 @@ type Dokumentvariant {
filnavn: String

# Unik identifikator per fil.
# * NB: Feltet skal kun brukes etter avtale med Team Dokument.
filuuid: String @deprecated(reason: "Feltet er deprekert og vil bli fjernet i fremtiden. Feltet skal kun brukes etter avtale med Team Dokument.")
# * NB: Feltet skal kun brukes etter avtale med Team Dokumentløsninger.
filuuid: String @deprecated(reason: "Feltet er deprekert og vil bli fjernet i fremtiden. Feltet skal kun brukes etter avtale med Team Dokumentløsninger.")

# Dokumentets filtype, f.eks. PDFA, XML eller JPG. Gyldige verdier finnes på siden Fagarkiv - Filtype.
# * NB: Informasjonen er ikke garantert å samsvare med dokumentets faktiske filtype, da dette ikke valideres under arkivering.
# * NB: Verdien 'PDFA' mappes til 'PDF'
# * NB: Feltet skal kun brukes etter avtale med Team Dokument.
filtype: String @deprecated(reason: "Feltet er deprekert og er kun til internt bruk. Feltet skal kun brukes etter avtale med Team Dokument.")
# Dokumentets filtype. PDF, JPEG, PNG, TIFF, XLSX, JSON, XML, AXML, DXML, RTF er verdier som kan returneres.
# * Gyldige verdier finnes på siden Fagarkiv - Filtype (confluence). NB: Verdien 'PDFA' mappes til 'PDF'.
# * Vær oppmerksom på at dette ikke er garantert å samsvare med dokumentets faktiske filtype, da feltet lenge ikke ble sjekket opp mot filinnholdet.
filtype: String

# Dokumentets filstørrelse i bytes.
filstoerrelse: Int @deprecated(reason: "Feltet er deprekert og er kun til internt bruk. Feltet skal kun brukes etter avtale med Team Dokument.")
filstoerrelse: Int @deprecated(reason: "Feltet er deprekert og er kun til internt bruk. Feltet skal kun brukes etter avtale med Team Dokumentløsninger.")

# Sier hvorvidt saksbehandler som gjør oppslaget vil få tilgang til å åpne denne dokumentvarianten.
# * Dersom verdien er false, vil tilgang bli avslått dersom saksbehandler forsøker å åpne dokumentet.
Expand Down
39 changes: 39 additions & 0 deletions src/test/kotlin/no/nav/api/pdl/PdlTest.kt
Original file line number Diff line number Diff line change
Expand Up @@ -54,4 +54,43 @@ internal class PdlTest {
assertEquals(1, person.data?.hentPerson?.foedselsdato?.size)
assertEquals(LocalDate(2020, 6, 6), person.data?.hentPerson?.foedselsdato?.get(0)?.foedselsdato)
}

@Test
fun `should be able to get aktorID for ident`() =
runBlocking {
val mockEngine =
MockEngine { request ->
val body = (request.body as TextContent).text
assertTrue(body.contains("variables"))
assertTrue(body.contains("hentIdenter"))
respond(
status = HttpStatusCode.OK,
headers =
headersOf(
HttpHeaders.ContentType,
"application/json",
),
content =
"""
{
"data": {
"hentIdenter": {
"identer": [
{ "ident": "123456789" }
]
}
}
}
""".trimIndent(),
)
}
val tokenClient = mockk<BoundedOnBehalfOfTokenClient>()
every { tokenClient.exchangeOnBehalfOfToken("token") } returns "new_token"

val pdlClient = PdlClient("http://no.no", tokenClient, mockEngine)
val identer = pdlClient.hentAktorid("10108000398", "token")

assertEquals(1, identer.data?.hentIdenter?.identer?.size)
assertEquals("123456789", identer.data?.hentIdenter?.identer?.get(0)?.ident)
}
}