From fd08a37955f1ecdbc19b9b5ccaa98b15609a9415 Mon Sep 17 00:00:00 2001 From: robertkittilsen Date: Thu, 31 Oct 2024 14:36:29 +0100 Subject: [PATCH] Oppdatert pdl-client og erstattet bruk av "foedsel" med "foedselsdato" og "foedested" --- .../application/RequestValidator.kt | 4 +- .../application/RequestValidatorTest.kt | 18 +- ...sBrukerIkkeBosattMedForhaandgodkjenning.kt | 8 +- ...BrukerIkkeBosattUtenForhaandgodkjenning.kt | 7 +- .../AnsattRegistrererUtenTilgangTilBruker.kt | 6 +- .../testdata/IkkeEuEoesBrukerIkkeBosatt.kt | 6 +- .../testdata/NorskBrukerBosattINorge.kt | 6 +- .../NorskBrukerBosattINorgeUnder18aar.kt | 8 +- .../testdata/NorskBrukerBosattISverige.kt | 7 +- .../NorskBrukerBosattISverigeUnder18aar.kt | 9 +- ...SluttbrukerProeverAaEndreForAnnenPerson.kt | 4 +- .../SvenskBrukerBosattISverigeUnder18aar.kt | 9 +- ...ttISverigeUnder18aarMedStatusIkkeBosatt.kt | 8 +- .../utgang/pdl/utils/OpplysningMappers.kt | 4 +- .../utgang/pdl/utils/PDLMappers.kt | 16 +- .../utgang/pdl/ProcessPdlResultsTest.kt | 27 +- .../utgang/pdl/TestData.kt | 9 +- .../opplysninger/AlderOpplysning.kt | 8 +- lib/pdl-client/README.md | 2 +- .../pdl/{HentFoedsel.kt => HentFoedested.kt} | 20 +- .../kotlin/no/nav/paw/pdl/HentFoedselsdato.kt | 40 + .../src/main/resources/hentFoedested.graphql | 9 + ...edsel.graphql => hentFoedselsdato.graphql} | 2 +- .../src/main/resources/hentPerson.graphql | 7 +- .../src/main/resources/hentPersonBolk.graphql | 7 +- .../src/main/resources/pdl-schema.graphql | 1153 +++++++++-------- .../kotlin/no/nav/paw/pdl/PdlClientTest.kt | 24 + .../resources/hentFoedested-response.json | 13 + .../resources/hentFoedselsdato-response.json | 12 + .../resources/hentFullPerson-response.json | 12 +- .../test/resources/hentPerson-response.json | 9 +- .../resources/hentPersonBolk-response.json | 9 +- 32 files changed, 829 insertions(+), 654 deletions(-) rename lib/pdl-client/src/main/kotlin/no/nav/paw/pdl/{HentFoedsel.kt => HentFoedested.kt} (61%) create mode 100644 lib/pdl-client/src/main/kotlin/no/nav/paw/pdl/HentFoedselsdato.kt create mode 100644 lib/pdl-client/src/main/resources/hentFoedested.graphql rename lib/pdl-client/src/main/resources/{hentFoedsel.graphql => hentFoedselsdato.graphql} (83%) create mode 100644 lib/pdl-client/src/test/resources/hentFoedested-response.json create mode 100644 lib/pdl-client/src/test/resources/hentFoedselsdato-response.json diff --git a/apps/api-start-stopp-perioder/src/main/kotlin/no/nav/paw/arbeidssokerregisteret/application/RequestValidator.kt b/apps/api-start-stopp-perioder/src/main/kotlin/no/nav/paw/arbeidssokerregisteret/application/RequestValidator.kt index 43d0ef6a..031efb00 100644 --- a/apps/api-start-stopp-perioder/src/main/kotlin/no/nav/paw/arbeidssokerregisteret/application/RequestValidator.kt +++ b/apps/api-start-stopp-perioder/src/main/kotlin/no/nav/paw/arbeidssokerregisteret/application/RequestValidator.kt @@ -72,11 +72,11 @@ class RequestValidator( } fun genererPersonFakta(person: Person): Set { - require(person.foedsel.size <= 1) { "Personen har flere fødselsdatoer enn forventet" } + require(person.foedselsdato.size <= 1) { "Personen har flere fødselsdatoer enn forventet" } require(person.bostedsadresse.size <= 1) { "Personen har flere bostedsadresser enn forventet" } require(person.opphold.size <= 1) { "Personen har flere opphold enn forventet" } - return alderOpplysning(person.foedsel.firstOrNull()) + + return alderOpplysning(person.foedselsdato.firstOrNull()) + adreseOpplysning(person.bostedsadresse.firstOrNull()) + euEoesStatsborgerOpplysning(person.statsborgerskap) + gbrStatsborgerOpplysning(person.statsborgerskap) + diff --git a/apps/api-start-stopp-perioder/src/test/kotlin/no/nav/paw/arbeidssokerregisteret/application/RequestValidatorTest.kt b/apps/api-start-stopp-perioder/src/test/kotlin/no/nav/paw/arbeidssokerregisteret/application/RequestValidatorTest.kt index 9e27d15c..8c379f49 100644 --- a/apps/api-start-stopp-perioder/src/test/kotlin/no/nav/paw/arbeidssokerregisteret/application/RequestValidatorTest.kt +++ b/apps/api-start-stopp-perioder/src/test/kotlin/no/nav/paw/arbeidssokerregisteret/application/RequestValidatorTest.kt @@ -120,7 +120,8 @@ class RequestValidatorTest : FreeSpec({ coEvery { personInfoService.hentPersonInfo(requestScope, identitsnummer.verdi) } returns Person( - foedsel = listOf(Foedsel("2000-01-01", 2000)), + foedselsdato = listOf(Foedselsdato("2000-01-01", 2000)), + foedested = listOf(Foedested("NOR", "Norge", "NO")), bostedsadresse = emptyList(), folkeregisterpersonstatus = listOf( Folkeregisterpersonstatus( @@ -162,7 +163,8 @@ class RequestValidatorTest : FreeSpec({ coEvery { personInfoService.hentPersonInfo(requestScope, identitsnummer.verdi) } returns Person( - foedsel = listOf(Foedsel("2000-01-01", 2000)), + foedselsdato = listOf(Foedselsdato("2000-01-01", 2000)), + foedested = listOf(Foedested("NOR", "Oslo", "Oslo")), bostedsadresse = emptyList(), folkeregisterpersonstatus = listOf( Folkeregisterpersonstatus( @@ -194,7 +196,8 @@ class RequestValidatorTest : FreeSpec({ coEvery { personInfoService.hentPersonInfo(requestScope, identitsnummer.verdi) } returns Person( - foedsel = listOf(Foedsel("2000-01-01", 2000)), + foedselsdato = listOf(Foedselsdato("2000-01-01", 2000)), + foedested = listOf(Foedested("NOR", "Oslo", "Oslo")), bostedsadresse = emptyList(), folkeregisterpersonstatus = listOf( Folkeregisterpersonstatus( @@ -250,7 +253,8 @@ class RequestValidatorTest : FreeSpec({ coEvery { personInfoService.hentPersonInfo(requestScope, identitsnummer.verdi) } returns Person( - foedsel = emptyList(), + foedselsdato = emptyList(), + foedested = listOf(Foedested("ARG", "Argentina", "AR")), bostedsadresse = emptyList(), folkeregisterpersonstatus = emptyList(), opphold = emptyList(), @@ -274,7 +278,8 @@ class RequestValidatorTest : FreeSpec({ coEvery { personInfoService.hentPersonInfo(requestScope, identitsnummer.verdi) } returns Person( - foedsel = listOf(Foedsel("2000-01-01", 2000)), + foedselsdato = listOf(Foedselsdato("2000-01-01", 2000)), + foedested = listOf(Foedested("ARG", "Argentina", "AR")), bostedsadresse = emptyList(), folkeregisterpersonstatus = listOf( Folkeregisterpersonstatus( @@ -305,7 +310,8 @@ class RequestValidatorTest : FreeSpec({ coEvery { personInfoService.hentPersonInfo(requestScope, identitsnummer.verdi) } returns Person( - foedsel = listOf(Foedsel("2000-01-01", 2000)), + foedselsdato = listOf(Foedselsdato("2000-01-01", 2000)), + foedested = listOf(Foedested("ARG", "Argentina", "AR")), bostedsadresse = emptyList(), folkeregisterpersonstatus = listOf( Folkeregisterpersonstatus( diff --git a/apps/api-start-stopp-perioder/src/test/kotlin/no/nav/paw/arbeidssokerregisteret/testdata/AnsattRegistrererIkkeEuEoesBrukerIkkeBosattMedForhaandgodkjenning.kt b/apps/api-start-stopp-perioder/src/test/kotlin/no/nav/paw/arbeidssokerregisteret/testdata/AnsattRegistrererIkkeEuEoesBrukerIkkeBosattMedForhaandgodkjenning.kt index df583b04..1f85d1cf 100644 --- a/apps/api-start-stopp-perioder/src/test/kotlin/no/nav/paw/arbeidssokerregisteret/testdata/AnsattRegistrererIkkeEuEoesBrukerIkkeBosattMedForhaandgodkjenning.kt +++ b/apps/api-start-stopp-perioder/src/test/kotlin/no/nav/paw/arbeidssokerregisteret/testdata/AnsattRegistrererIkkeEuEoesBrukerIkkeBosattMedForhaandgodkjenning.kt @@ -2,17 +2,16 @@ package no.nav.paw.arbeidssokerregisteret.testdata import io.kotest.common.runBlocking import io.ktor.http.* -import no.nav.paw.arbeidssoekerregisteret.api.startstopp.models.ApiRegelId import no.nav.paw.arbeidssoekerregisteret.api.startstopp.models.FeilV2 import no.nav.paw.arbeidssokerregisteret.* import no.nav.paw.arbeidssokerregisteret.domain.NavAnsatt -import no.nav.paw.arbeidssokerregisteret.intern.v1.Avvist import no.nav.paw.arbeidssokerregisteret.intern.v1.Startet import no.nav.paw.arbeidssokerregisteret.intern.v1.vo.Bruker import no.nav.paw.arbeidssokerregisteret.intern.v1.vo.BrukerType import no.nav.paw.arbeidssokerregisteret.intern.v1.vo.Opplysning import no.nav.paw.kafkakeygenerator.client.KafkaKeysClient -import no.nav.paw.pdl.graphql.generated.hentperson.Foedsel +import no.nav.paw.pdl.graphql.generated.hentperson.Foedselsdato +import no.nav.paw.pdl.graphql.generated.hentperson.Foedested import no.nav.paw.pdl.graphql.generated.hentperson.Person import no.nav.paw.pdl.graphql.generated.hentperson.Vegadresse import org.apache.kafka.clients.producer.ProducerRecord @@ -23,7 +22,8 @@ data object AnsattRegistrererIkkeEuEoesBrukerIkkeBosattMedForhaandgodkjenning: T override val id = "12345678906" override val forhaandsGodkjent: Boolean = true override val person = Person( - foedsel = Foedsel("2000-03-04", 2000).list(), + foedselsdato = Foedselsdato("2000-03-04", 2000).list(), + foedested = Foedested("NOR", "Oslo", "Oslo").list(), statsborgerskap = "AFG".statsborgerskap(), opphold = ("2018-01-01" to null).opphold(), folkeregisterpersonstatus = dNummer.folkeregisterpersonstatus(), diff --git a/apps/api-start-stopp-perioder/src/test/kotlin/no/nav/paw/arbeidssokerregisteret/testdata/AnsattRegistrererIkkeEuEoesBrukerIkkeBosattUtenForhaandgodkjenning.kt b/apps/api-start-stopp-perioder/src/test/kotlin/no/nav/paw/arbeidssokerregisteret/testdata/AnsattRegistrererIkkeEuEoesBrukerIkkeBosattUtenForhaandgodkjenning.kt index 7eea7c20..9c232f8f 100644 --- a/apps/api-start-stopp-perioder/src/test/kotlin/no/nav/paw/arbeidssokerregisteret/testdata/AnsattRegistrererIkkeEuEoesBrukerIkkeBosattUtenForhaandgodkjenning.kt +++ b/apps/api-start-stopp-perioder/src/test/kotlin/no/nav/paw/arbeidssokerregisteret/testdata/AnsattRegistrererIkkeEuEoesBrukerIkkeBosattUtenForhaandgodkjenning.kt @@ -11,9 +11,9 @@ import no.nav.paw.arbeidssokerregisteret.intern.v1.vo.Bruker import no.nav.paw.arbeidssokerregisteret.intern.v1.vo.BrukerType import no.nav.paw.arbeidssokerregisteret.intern.v1.vo.Opplysning import no.nav.paw.arbeidssokerregisteret.routes.apiRegel -import no.nav.paw.arbeidssokerregisteret.routes.apiRegelId import no.nav.paw.kafkakeygenerator.client.KafkaKeysClient -import no.nav.paw.pdl.graphql.generated.hentperson.Foedsel +import no.nav.paw.pdl.graphql.generated.hentperson.Foedselsdato +import no.nav.paw.pdl.graphql.generated.hentperson.Foedested import no.nav.paw.pdl.graphql.generated.hentperson.Person import no.nav.paw.pdl.graphql.generated.hentperson.Vegadresse import org.apache.kafka.clients.producer.ProducerRecord @@ -24,7 +24,8 @@ import no.nav.paw.arbeidssoekerregisteret.api.startstopp.models.Opplysning as Ap data object AnsattRegistrererIkkeEuEoesBrukerIkkeBosattUtenForhaandgodkjenning : TestCase { override val id = "12345678906" override val person = Person( - foedsel = Foedsel("2000-03-04", 2000).list(), + foedselsdato = Foedselsdato("2000-03-04", 2000).list(), + foedested = Foedested("AFG", "Kabul", "Kabul").list(), statsborgerskap = "AFG".statsborgerskap(), opphold = ("2018-01-01" to null).opphold(), folkeregisterpersonstatus = dNummer.folkeregisterpersonstatus(), diff --git a/apps/api-start-stopp-perioder/src/test/kotlin/no/nav/paw/arbeidssokerregisteret/testdata/AnsattRegistrererUtenTilgangTilBruker.kt b/apps/api-start-stopp-perioder/src/test/kotlin/no/nav/paw/arbeidssokerregisteret/testdata/AnsattRegistrererUtenTilgangTilBruker.kt index 7c2cfeef..567f9774 100644 --- a/apps/api-start-stopp-perioder/src/test/kotlin/no/nav/paw/arbeidssokerregisteret/testdata/AnsattRegistrererUtenTilgangTilBruker.kt +++ b/apps/api-start-stopp-perioder/src/test/kotlin/no/nav/paw/arbeidssokerregisteret/testdata/AnsattRegistrererUtenTilgangTilBruker.kt @@ -11,7 +11,8 @@ import no.nav.paw.arbeidssokerregisteret.intern.v1.vo.Bruker import no.nav.paw.arbeidssokerregisteret.intern.v1.vo.BrukerType import no.nav.paw.arbeidssokerregisteret.intern.v1.vo.Opplysning import no.nav.paw.kafkakeygenerator.client.KafkaKeysClient -import no.nav.paw.pdl.graphql.generated.hentperson.Foedsel +import no.nav.paw.pdl.graphql.generated.hentperson.Foedselsdato +import no.nav.paw.pdl.graphql.generated.hentperson.Foedested import no.nav.paw.pdl.graphql.generated.hentperson.Person import no.nav.paw.pdl.graphql.generated.hentperson.Vegadresse import org.apache.kafka.clients.producer.ProducerRecord @@ -21,7 +22,8 @@ import java.util.* data object AnsattRegistrererUtenTilgangTilBruker: TestCase { override val id = "12345678906" override val person = Person( - foedsel = Foedsel("2000-03-04", 2000).list(), + foedselsdato = Foedselsdato("2000-03-04", 2000).list(), + foedested = Foedested("AFG", "Kabul", "Kabul").list(), statsborgerskap = "AFG".statsborgerskap(), opphold = ("2018-01-01" to null).opphold(), folkeregisterpersonstatus = dNummer.folkeregisterpersonstatus(), diff --git a/apps/api-start-stopp-perioder/src/test/kotlin/no/nav/paw/arbeidssokerregisteret/testdata/IkkeEuEoesBrukerIkkeBosatt.kt b/apps/api-start-stopp-perioder/src/test/kotlin/no/nav/paw/arbeidssokerregisteret/testdata/IkkeEuEoesBrukerIkkeBosatt.kt index 2206c4e7..7efeffc8 100644 --- a/apps/api-start-stopp-perioder/src/test/kotlin/no/nav/paw/arbeidssokerregisteret/testdata/IkkeEuEoesBrukerIkkeBosatt.kt +++ b/apps/api-start-stopp-perioder/src/test/kotlin/no/nav/paw/arbeidssokerregisteret/testdata/IkkeEuEoesBrukerIkkeBosatt.kt @@ -12,7 +12,8 @@ import no.nav.paw.arbeidssokerregisteret.intern.v1.vo.BrukerType import no.nav.paw.arbeidssokerregisteret.intern.v1.vo.Opplysning import no.nav.paw.arbeidssokerregisteret.routes.apiRegel import no.nav.paw.kafkakeygenerator.client.KafkaKeysClient -import no.nav.paw.pdl.graphql.generated.hentperson.Foedsel +import no.nav.paw.pdl.graphql.generated.hentperson.Foedselsdato +import no.nav.paw.pdl.graphql.generated.hentperson.Foedested import no.nav.paw.pdl.graphql.generated.hentperson.Person import no.nav.paw.pdl.graphql.generated.hentperson.UtenlandskAdresse import org.apache.kafka.clients.producer.ProducerRecord @@ -23,7 +24,8 @@ import no.nav.paw.arbeidssoekerregisteret.api.startstopp.models.Opplysning as Ap data object IkkeEuEoesBrukerIkkeBosatt: TestCase { override val id = "12345678919" override val person = Person( - foedsel = Foedsel("2000-03-04", 2000).list(), + foedselsdato = Foedselsdato("2000-03-04", 2000).list(), + foedested = Foedested("USA", "New York", "New York").list(), statsborgerskap = "USA".statsborgerskap(), opphold = ("2018-01-01" to "2018-02-01").opphold(), folkeregisterpersonstatus = dNummer.folkeregisterpersonstatus(), diff --git a/apps/api-start-stopp-perioder/src/test/kotlin/no/nav/paw/arbeidssokerregisteret/testdata/NorskBrukerBosattINorge.kt b/apps/api-start-stopp-perioder/src/test/kotlin/no/nav/paw/arbeidssokerregisteret/testdata/NorskBrukerBosattINorge.kt index de36e700..062b5dcf 100644 --- a/apps/api-start-stopp-perioder/src/test/kotlin/no/nav/paw/arbeidssokerregisteret/testdata/NorskBrukerBosattINorge.kt +++ b/apps/api-start-stopp-perioder/src/test/kotlin/no/nav/paw/arbeidssokerregisteret/testdata/NorskBrukerBosattINorge.kt @@ -9,7 +9,8 @@ import no.nav.paw.arbeidssokerregisteret.intern.v1.vo.Bruker import no.nav.paw.arbeidssokerregisteret.intern.v1.vo.BrukerType import no.nav.paw.arbeidssokerregisteret.intern.v1.vo.Opplysning import no.nav.paw.kafkakeygenerator.client.KafkaKeysClient -import no.nav.paw.pdl.graphql.generated.hentperson.Foedsel +import no.nav.paw.pdl.graphql.generated.hentperson.Foedselsdato +import no.nav.paw.pdl.graphql.generated.hentperson.Foedested import no.nav.paw.pdl.graphql.generated.hentperson.Person import no.nav.paw.pdl.graphql.generated.hentperson.Vegadresse import org.apache.kafka.clients.producer.ProducerRecord @@ -19,7 +20,8 @@ import java.util.* data object NorskBrukerBosattINorge: TestCase { override val id = "12345678909" override val person = Person( - foedsel = Foedsel("2000-03-04", 2000).list(), + foedselsdato = Foedselsdato("2000-03-04", 2000).list(), + foedested = Foedested("NOR", "Bergen", "Bergen").list(), statsborgerskap = "NOR".statsborgerskap(), opphold = emptyList(), folkeregisterpersonstatus = bosatt.folkeregisterpersonstatus(), diff --git a/apps/api-start-stopp-perioder/src/test/kotlin/no/nav/paw/arbeidssokerregisteret/testdata/NorskBrukerBosattINorgeUnder18aar.kt b/apps/api-start-stopp-perioder/src/test/kotlin/no/nav/paw/arbeidssokerregisteret/testdata/NorskBrukerBosattINorgeUnder18aar.kt index d3369e54..ae1b4f14 100644 --- a/apps/api-start-stopp-perioder/src/test/kotlin/no/nav/paw/arbeidssokerregisteret/testdata/NorskBrukerBosattINorgeUnder18aar.kt +++ b/apps/api-start-stopp-perioder/src/test/kotlin/no/nav/paw/arbeidssokerregisteret/testdata/NorskBrukerBosattINorgeUnder18aar.kt @@ -12,7 +12,8 @@ import no.nav.paw.arbeidssokerregisteret.intern.v1.vo.BrukerType import no.nav.paw.arbeidssokerregisteret.intern.v1.vo.Opplysning import no.nav.paw.arbeidssokerregisteret.routes.apiRegel import no.nav.paw.kafkakeygenerator.client.KafkaKeysClient -import no.nav.paw.pdl.graphql.generated.hentperson.Foedsel +import no.nav.paw.pdl.graphql.generated.hentperson.Foedselsdato +import no.nav.paw.pdl.graphql.generated.hentperson.Foedested import no.nav.paw.pdl.graphql.generated.hentperson.Person import no.nav.paw.pdl.graphql.generated.hentperson.Vegadresse import org.apache.kafka.clients.producer.ProducerRecord @@ -28,9 +29,10 @@ data object NorskBrukerBosattINorgeUnder18aar: TestCase { .withZone(ZoneId.systemDefault()) override val id = "12345678909" override val person = Person( - foedsel = Instant.now().let { dato -> - Foedsel(dateFormatter.format(dato), yearFormatter.format(dato).toInt()).list() + foedselsdato = Instant.now().let { dato -> + Foedselsdato(dateFormatter.format(dato), yearFormatter.format(dato).toInt()).list() }, + foedested = Foedested("NOR", "Bergen", "Bergen").list(), statsborgerskap = "NOR".statsborgerskap(), opphold = emptyList(), folkeregisterpersonstatus = bosatt.folkeregisterpersonstatus(), diff --git a/apps/api-start-stopp-perioder/src/test/kotlin/no/nav/paw/arbeidssokerregisteret/testdata/NorskBrukerBosattISverige.kt b/apps/api-start-stopp-perioder/src/test/kotlin/no/nav/paw/arbeidssokerregisteret/testdata/NorskBrukerBosattISverige.kt index 681b0bc0..249b8f81 100644 --- a/apps/api-start-stopp-perioder/src/test/kotlin/no/nav/paw/arbeidssokerregisteret/testdata/NorskBrukerBosattISverige.kt +++ b/apps/api-start-stopp-perioder/src/test/kotlin/no/nav/paw/arbeidssokerregisteret/testdata/NorskBrukerBosattISverige.kt @@ -3,7 +3,6 @@ package no.nav.paw.arbeidssokerregisteret.testdata import io.kotest.common.runBlocking import io.ktor.http.* import no.nav.paw.arbeidssoekerregisteret.api.startstopp.models.AarsakTilAvvisningV2 -import no.nav.paw.arbeidssoekerregisteret.api.startstopp.models.ApiRegelId import no.nav.paw.arbeidssoekerregisteret.api.startstopp.models.FeilV2 import no.nav.paw.arbeidssokerregisteret.* import no.nav.paw.arbeidssokerregisteret.application.IkkeBosattINorgeIHenholdTilFolkeregisterloven @@ -13,7 +12,8 @@ import no.nav.paw.arbeidssokerregisteret.intern.v1.vo.BrukerType import no.nav.paw.arbeidssokerregisteret.intern.v1.vo.Opplysning import no.nav.paw.arbeidssokerregisteret.routes.apiRegel import no.nav.paw.kafkakeygenerator.client.KafkaKeysClient -import no.nav.paw.pdl.graphql.generated.hentperson.Foedsel +import no.nav.paw.pdl.graphql.generated.hentperson.Foedselsdato +import no.nav.paw.pdl.graphql.generated.hentperson.Foedested import no.nav.paw.pdl.graphql.generated.hentperson.Person import no.nav.paw.pdl.graphql.generated.hentperson.UtenlandskAdresse import org.apache.kafka.clients.producer.ProducerRecord @@ -24,7 +24,8 @@ import no.nav.paw.arbeidssoekerregisteret.api.startstopp.models.Opplysning as Ap data object NorskBrukerBosattISverige: TestCase { override val id = "12345678909" override val person = Person( - foedsel = Foedsel("2000-03-04", 2000).list(), + foedselsdato = Foedselsdato("2000-03-04", 2000).list(), + foedested = Foedested("NOR", "Bergen", "Bergen").list(), statsborgerskap = "NOR".statsborgerskap(), opphold = emptyList(), folkeregisterpersonstatus = ikkeBosatt.folkeregisterpersonstatus(), diff --git a/apps/api-start-stopp-perioder/src/test/kotlin/no/nav/paw/arbeidssokerregisteret/testdata/NorskBrukerBosattISverigeUnder18aar.kt b/apps/api-start-stopp-perioder/src/test/kotlin/no/nav/paw/arbeidssokerregisteret/testdata/NorskBrukerBosattISverigeUnder18aar.kt index dca23fb1..07326d02 100644 --- a/apps/api-start-stopp-perioder/src/test/kotlin/no/nav/paw/arbeidssokerregisteret/testdata/NorskBrukerBosattISverigeUnder18aar.kt +++ b/apps/api-start-stopp-perioder/src/test/kotlin/no/nav/paw/arbeidssokerregisteret/testdata/NorskBrukerBosattISverigeUnder18aar.kt @@ -3,7 +3,6 @@ package no.nav.paw.arbeidssokerregisteret.testdata import io.kotest.common.runBlocking import io.ktor.http.* import no.nav.paw.arbeidssoekerregisteret.api.startstopp.models.AarsakTilAvvisningV2 -import no.nav.paw.arbeidssoekerregisteret.api.startstopp.models.ApiRegelId import no.nav.paw.arbeidssoekerregisteret.api.startstopp.models.FeilV2 import no.nav.paw.arbeidssokerregisteret.* import no.nav.paw.arbeidssokerregisteret.application.IkkeBosattINorgeIHenholdTilFolkeregisterloven @@ -14,7 +13,8 @@ import no.nav.paw.arbeidssokerregisteret.intern.v1.vo.BrukerType import no.nav.paw.arbeidssokerregisteret.intern.v1.vo.Opplysning import no.nav.paw.arbeidssokerregisteret.routes.apiRegel import no.nav.paw.kafkakeygenerator.client.KafkaKeysClient -import no.nav.paw.pdl.graphql.generated.hentperson.Foedsel +import no.nav.paw.pdl.graphql.generated.hentperson.Foedselsdato +import no.nav.paw.pdl.graphql.generated.hentperson.Foedested import no.nav.paw.pdl.graphql.generated.hentperson.Person import no.nav.paw.pdl.graphql.generated.hentperson.UtenlandskAdresse import org.apache.kafka.clients.producer.ProducerRecord @@ -31,12 +31,13 @@ data object NorskBrukerBosattISverigeUnder18aar : TestCase { .withZone(ZoneId.systemDefault()) override val id = "12345678909" override val person = Person( - foedsel = Instant.now().let { dato -> - Foedsel( + foedselsdato = Instant.now().let { dato -> + Foedselsdato( dateFormatter.format(dato), yearFormatter.format(dato).toInt() ).list() }, + foedested = Foedested("NOR", "Bergen", "Bergen").list(), statsborgerskap = "NOR".statsborgerskap(), opphold = emptyList(), folkeregisterpersonstatus = ikkeBosatt.folkeregisterpersonstatus(), diff --git a/apps/api-start-stopp-perioder/src/test/kotlin/no/nav/paw/arbeidssokerregisteret/testdata/SluttbrukerProeverAaEndreForAnnenPerson.kt b/apps/api-start-stopp-perioder/src/test/kotlin/no/nav/paw/arbeidssokerregisteret/testdata/SluttbrukerProeverAaEndreForAnnenPerson.kt index 8b3adca4..f9be239d 100644 --- a/apps/api-start-stopp-perioder/src/test/kotlin/no/nav/paw/arbeidssokerregisteret/testdata/SluttbrukerProeverAaEndreForAnnenPerson.kt +++ b/apps/api-start-stopp-perioder/src/test/kotlin/no/nav/paw/arbeidssokerregisteret/testdata/SluttbrukerProeverAaEndreForAnnenPerson.kt @@ -4,7 +4,6 @@ import io.kotest.common.runBlocking import io.ktor.http.* import no.nav.paw.arbeidssoekerregisteret.api.startstopp.models.FeilV2 import no.nav.paw.arbeidssokerregisteret.application.regler.EndreForAnnenBruker -import no.nav.paw.arbeidssokerregisteret.application.regler.IkkeTilgang import no.nav.paw.arbeidssokerregisteret.intern.v1.Avvist import no.nav.paw.arbeidssokerregisteret.intern.v1.Hendelse import no.nav.paw.arbeidssokerregisteret.intern.v1.vo.Bruker @@ -21,7 +20,8 @@ import java.util.* data object SluttbrukerProeverAaEndreForAnnenPerson : TestCase { override val id: String = "09876543211" override val person: Person = Person( - foedsel = emptyList(), + foedselsdato = emptyList(), + foedested = emptyList(), statsborgerskap = emptyList(), opphold = emptyList(), folkeregisterpersonstatus = emptyList(), diff --git a/apps/api-start-stopp-perioder/src/test/kotlin/no/nav/paw/arbeidssokerregisteret/testdata/SvenskBrukerBosattISverigeUnder18aar.kt b/apps/api-start-stopp-perioder/src/test/kotlin/no/nav/paw/arbeidssokerregisteret/testdata/SvenskBrukerBosattISverigeUnder18aar.kt index 347e7ecc..12e96e17 100644 --- a/apps/api-start-stopp-perioder/src/test/kotlin/no/nav/paw/arbeidssokerregisteret/testdata/SvenskBrukerBosattISverigeUnder18aar.kt +++ b/apps/api-start-stopp-perioder/src/test/kotlin/no/nav/paw/arbeidssokerregisteret/testdata/SvenskBrukerBosattISverigeUnder18aar.kt @@ -3,7 +3,6 @@ package no.nav.paw.arbeidssokerregisteret.testdata import io.kotest.common.runBlocking import io.ktor.http.* import no.nav.paw.arbeidssoekerregisteret.api.startstopp.models.AarsakTilAvvisningV2 -import no.nav.paw.arbeidssoekerregisteret.api.startstopp.models.ApiRegelId import no.nav.paw.arbeidssoekerregisteret.api.startstopp.models.FeilV2 import no.nav.paw.arbeidssokerregisteret.* import no.nav.paw.arbeidssokerregisteret.application.IkkeBosattINorgeIHenholdTilFolkeregisterloven @@ -14,7 +13,8 @@ import no.nav.paw.arbeidssokerregisteret.intern.v1.vo.BrukerType import no.nav.paw.arbeidssokerregisteret.intern.v1.vo.Opplysning import no.nav.paw.arbeidssokerregisteret.routes.apiRegel import no.nav.paw.kafkakeygenerator.client.KafkaKeysClient -import no.nav.paw.pdl.graphql.generated.hentperson.Foedsel +import no.nav.paw.pdl.graphql.generated.hentperson.Foedselsdato +import no.nav.paw.pdl.graphql.generated.hentperson.Foedested import no.nav.paw.pdl.graphql.generated.hentperson.Person import no.nav.paw.pdl.graphql.generated.hentperson.UtenlandskAdresse import org.apache.kafka.clients.producer.ProducerRecord @@ -31,12 +31,13 @@ data object SvenskBrukerBosattISverigeUnder18aar : TestCase { .withZone(ZoneId.systemDefault()) override val id = "12345678909" override val person = Person( - foedsel = Instant.now().let { dato -> - Foedsel( + foedselsdato = Instant.now().let { dato -> + Foedselsdato( dateFormatter.format(dato), yearFormatter.format(dato).toInt() ).list() }, + foedested = Foedested("NOR", "Bergen", "Bergen").list(), statsborgerskap = "SWE".statsborgerskap(), opphold = emptyList(), folkeregisterpersonstatus = dNummer.folkeregisterpersonstatus(), diff --git a/apps/api-start-stopp-perioder/src/test/kotlin/no/nav/paw/arbeidssokerregisteret/testdata/SvenskBrukerBosattISverigeUnder18aarMedStatusIkkeBosatt.kt b/apps/api-start-stopp-perioder/src/test/kotlin/no/nav/paw/arbeidssokerregisteret/testdata/SvenskBrukerBosattISverigeUnder18aarMedStatusIkkeBosatt.kt index 611d07a5..644bbe0f 100644 --- a/apps/api-start-stopp-perioder/src/test/kotlin/no/nav/paw/arbeidssokerregisteret/testdata/SvenskBrukerBosattISverigeUnder18aarMedStatusIkkeBosatt.kt +++ b/apps/api-start-stopp-perioder/src/test/kotlin/no/nav/paw/arbeidssokerregisteret/testdata/SvenskBrukerBosattISverigeUnder18aarMedStatusIkkeBosatt.kt @@ -14,7 +14,8 @@ import no.nav.paw.arbeidssokerregisteret.intern.v1.vo.BrukerType import no.nav.paw.arbeidssokerregisteret.intern.v1.vo.Opplysning import no.nav.paw.arbeidssokerregisteret.routes.apiRegel import no.nav.paw.kafkakeygenerator.client.KafkaKeysClient -import no.nav.paw.pdl.graphql.generated.hentperson.Foedsel +import no.nav.paw.pdl.graphql.generated.hentperson.Foedselsdato +import no.nav.paw.pdl.graphql.generated.hentperson.Foedested import no.nav.paw.pdl.graphql.generated.hentperson.Person import no.nav.paw.pdl.graphql.generated.hentperson.UtenlandskAdresse import org.apache.kafka.clients.producer.ProducerRecord @@ -31,12 +32,13 @@ data object SvenskBrukerBosattISverigeUnder18aarMedStatusIkkeBosatt : TestCase { .withZone(ZoneId.systemDefault()) override val id = "12345678909" override val person = Person( - foedsel = Instant.now().let { dato -> - Foedsel( + foedselsdato = Instant.now().let { dato -> + Foedselsdato( dateFormatter.format(dato), yearFormatter.format(dato).toInt() ).list() }, + foedested = Foedested("SWE", "Stockholm", "Stockholm").list(), statsborgerskap = "SWE".statsborgerskap(), opphold = emptyList(), folkeregisterpersonstatus = folkeregisterpersonstatus(dNummer, ikkeBosatt), diff --git a/apps/utgang-pdl/src/main/kotlin/no/nav/paw/arbeidssoekerregisteret/utgang/pdl/utils/OpplysningMappers.kt b/apps/utgang-pdl/src/main/kotlin/no/nav/paw/arbeidssoekerregisteret/utgang/pdl/utils/OpplysningMappers.kt index 7424cbdb..639705e0 100644 --- a/apps/utgang-pdl/src/main/kotlin/no/nav/paw/arbeidssoekerregisteret/utgang/pdl/utils/OpplysningMappers.kt +++ b/apps/utgang-pdl/src/main/kotlin/no/nav/paw/arbeidssoekerregisteret/utgang/pdl/utils/OpplysningMappers.kt @@ -19,11 +19,11 @@ val negativeOpplysninger = setOf( ) fun genererPersonFakta(person: Person): Set { - require(person.foedsel.size <= 1) { "Personen har flere fødselsdatoer enn forventet" } + require(person.foedselsdato.size <= 1) { "Personen har flere fødselsdatoer enn forventet" } require(person.bostedsadresse.size <= 1) { "Personen har flere bostedsadresser enn forventet" } require(person.opphold.size <= 1) { "Personen har flere opphold enn forventet" } - return alderOpplysning(person.foedsel.firstOrNull()) + + return alderOpplysning(person.foedselsdato.firstOrNull()) + adreseOpplysning(person.bostedsadresse.firstOrNull()) + euEoesStatsborgerOpplysning(person.statsborgerskap) + gbrStatsborgerOpplysning(person.statsborgerskap) + diff --git a/apps/utgang-pdl/src/main/kotlin/no/nav/paw/arbeidssoekerregisteret/utgang/pdl/utils/PDLMappers.kt b/apps/utgang-pdl/src/main/kotlin/no/nav/paw/arbeidssoekerregisteret/utgang/pdl/utils/PDLMappers.kt index bcac2a81..7d5243bd 100644 --- a/apps/utgang-pdl/src/main/kotlin/no/nav/paw/arbeidssoekerregisteret/utgang/pdl/utils/PDLMappers.kt +++ b/apps/utgang-pdl/src/main/kotlin/no/nav/paw/arbeidssoekerregisteret/utgang/pdl/utils/PDLMappers.kt @@ -2,7 +2,8 @@ package no.nav.paw.arbeidssoekerregisteret.utgang.pdl.utils import no.nav.paw.pdl.graphql.generated.hentpersonbolk.Bostedsadresse import no.nav.paw.pdl.graphql.generated.hentpersonbolk.Endring -import no.nav.paw.pdl.graphql.generated.hentpersonbolk.Foedsel +import no.nav.paw.pdl.graphql.generated.hentpersonbolk.Foedested +import no.nav.paw.pdl.graphql.generated.hentpersonbolk.Foedselsdato import no.nav.paw.pdl.graphql.generated.hentpersonbolk.Folkeregistermetadata import no.nav.paw.pdl.graphql.generated.hentpersonbolk.Folkeregisterpersonstatus import no.nav.paw.pdl.graphql.generated.hentpersonbolk.InnflyttingTilNorge @@ -17,7 +18,8 @@ import no.nav.paw.pdl.graphql.generated.hentpersonbolk.Vegadresse fun Person.toPerson(): no.nav.paw.pdl.graphql.generated.hentperson.Person = no.nav.paw.pdl.graphql.generated.hentperson.Person( - foedsel = this.foedsel.toFoedsel(), + foedselsdato = this.foedselsdato.toFoedselsdato(), + foedested = this.foedested.toFoedested(), statsborgerskap = this.statsborgerskap.toStatsborgerskap(), opphold = this.opphold.toOpphold(), folkeregisterpersonstatus = this.folkeregisterpersonstatus.toFolkeregisterpersonstatus(), @@ -79,9 +81,15 @@ fun Endring.toEndring(): no.nav.paw.pdl.graphql.generated.hentperson.Endring = kilde = this.kilde, ) +fun List.toFoedested(): List = this.map { + no.nav.paw.pdl.graphql.generated.hentperson.Foedested( + foedeland = it.foedeland, + foedested = it.foedested, + ) +} -fun List.toFoedsel(): List = this.map { - no.nav.paw.pdl.graphql.generated.hentperson.Foedsel( +fun List.toFoedselsdato(): List = this.map { + no.nav.paw.pdl.graphql.generated.hentperson.Foedselsdato( foedselsdato = it.foedselsdato, foedselsaar = it.foedselsaar, ) diff --git a/apps/utgang-pdl/src/test/kotlin/no/nav/paw/arbeidssoekerregisteret/utgang/pdl/ProcessPdlResultsTest.kt b/apps/utgang-pdl/src/test/kotlin/no/nav/paw/arbeidssoekerregisteret/utgang/pdl/ProcessPdlResultsTest.kt index 7c4e9eff..dacac8c1 100644 --- a/apps/utgang-pdl/src/test/kotlin/no/nav/paw/arbeidssoekerregisteret/utgang/pdl/ProcessPdlResultsTest.kt +++ b/apps/utgang-pdl/src/test/kotlin/no/nav/paw/arbeidssoekerregisteret/utgang/pdl/ProcessPdlResultsTest.kt @@ -17,7 +17,8 @@ import no.nav.paw.arbeidssoekerregisteret.utgang.pdl.kafka.processPdlResultsV2 import no.nav.paw.arbeidssoekerregisteret.utgang.pdl.kafka.serdes.HendelseState import no.nav.paw.arbeidssokerregisteret.application.InngangsReglerV3 import no.nav.paw.arbeidssokerregisteret.intern.v1.vo.Opplysning -import no.nav.paw.pdl.graphql.generated.hentpersonbolk.Foedsel +import no.nav.paw.pdl.graphql.generated.hentpersonbolk.Foedselsdato +import no.nav.paw.pdl.graphql.generated.hentpersonbolk.Foedested import no.nav.paw.pdl.graphql.generated.hentpersonbolk.HentPersonBolkResult import org.apache.kafka.streams.KeyValue import org.slf4j.Logger @@ -29,7 +30,8 @@ class ProcessPdlResultsTest : FreeSpec({ val prometheusMeterRegistry = PrometheusMeterRegistry(PrometheusConfig.DEFAULT) "processPdlResults should correctly set avsluttPeriode to true if multiple problems in pdlEvaluering" { val person = getPerson( - foedsel = Foedsel("2014-01-01"), + foedselsdato = Foedselsdato("2014-01-01", 2014), + foedested = Foedested("NOR", "Oslo", "Oslo"), statsborgerskap = getStatsborgerskap("NOR"), opphold = null, folkeregisterpersonstatus = getListOfFolkeregisterpersonstatus("ikkeBosatt"), @@ -71,7 +73,8 @@ class ProcessPdlResultsTest : FreeSpec({ val logger = mockk(relaxed = true) val utflyttetPerson = getPerson( - foedsel = Foedsel("2000-01-01"), + foedselsdato = Foedselsdato("2000-01-01", 2000), + foedested = Foedested("BRA", "Brasilia", "Brasilia"), statsborgerskap = getStatsborgerskap("BRA"), opphold = null, folkeregisterpersonstatus = getListOfFolkeregisterpersonstatus("ikkeBosatt"), @@ -105,7 +108,8 @@ class ProcessPdlResultsTest : FreeSpec({ val logger = mockk(relaxed = true) val doedPerson = getPerson( - foedsel = Foedsel("2006-01-01"), + foedselsdato = Foedselsdato("2006-01-01", 2006), + foedested = Foedested("NOR", "Oslo", "Oslo"), statsborgerskap = getStatsborgerskap("NOR"), opphold = null, folkeregisterpersonstatus = getListOfFolkeregisterpersonstatus("doedIFolkeregisteret"), @@ -139,7 +143,8 @@ class ProcessPdlResultsTest : FreeSpec({ val logger = mockk(relaxed = true) val savnetPerson = getPerson( - foedsel = Foedsel("2006-01-01"), + foedselsdato = Foedselsdato("2006-01-01", 2006), + foedested = Foedested("NOR", "Oslo", "Oslo"), statsborgerskap = getStatsborgerskap("NOR"), opphold = null, folkeregisterpersonstatus = getListOfFolkeregisterpersonstatus("forsvunnet"), @@ -175,7 +180,8 @@ class ProcessPdlResultsTest : FreeSpec({ "if Folkeregisterpersonstatus is 'bosattEtterFolkeregisterloven'" { val logger = mockk(relaxed = true) val bosattPerson = getPerson( - foedsel = Foedsel("2000-01-01"), + foedselsdato = Foedselsdato("2000-01-01", 2000), + foedested = Foedested("NOR", "Oslo", "Oslo"), statsborgerskap = getStatsborgerskap("NOR"), opphold = getOppholdstillatelse(), folkeregisterpersonstatus = getListOfFolkeregisterpersonstatus("bosattEtterFolkeregisterloven"), @@ -208,7 +214,8 @@ class ProcessPdlResultsTest : FreeSpec({ val logger = mockk(relaxed = true) val savnetPerson = getPerson( - foedsel = Foedsel("2000-01-01"), + foedselsdato = Foedselsdato("2000-01-01", 2000), + foedested = Foedested("NOR", "Oslo", "Oslo"), statsborgerskap = getStatsborgerskap("NOR"), opphold = getOppholdstillatelse(), folkeregisterpersonstatus = getListOfFolkeregisterpersonstatus("forsvunnet"), @@ -246,7 +253,8 @@ class ProcessPdlResultsTest : FreeSpec({ val logger = mockk(relaxed = true) val bosattPerson = getPerson( - foedsel = Foedsel("2000-01-01"), + foedselsdato = Foedselsdato("2000-01-01", 2000), + foedested = Foedested("NOR", "Oslo", "Oslo"), statsborgerskap = getStatsborgerskap("NOR"), opphold = getOppholdstillatelse(), folkeregisterpersonstatus = getListOfFolkeregisterpersonstatus("bosattEtterFolkeregisterloven"), @@ -367,7 +375,8 @@ class ProcessPdlResultsTest : FreeSpec({ val logger = mockk(relaxed = true) val validPerson = getPerson( - foedsel = Foedsel("2000-01-01"), + foedselsdato = Foedselsdato("2000-01-01", 2000), + foedested = Foedested("NOR", "Oslo", "Oslo"), statsborgerskap = getStatsborgerskap("NOR"), opphold = getOppholdstillatelse(), folkeregisterpersonstatus = getListOfFolkeregisterpersonstatus("bosatt"), diff --git a/apps/utgang-pdl/src/test/kotlin/no/nav/paw/arbeidssoekerregisteret/utgang/pdl/TestData.kt b/apps/utgang-pdl/src/test/kotlin/no/nav/paw/arbeidssoekerregisteret/utgang/pdl/TestData.kt index 49e83f87..51afd907 100644 --- a/apps/utgang-pdl/src/test/kotlin/no/nav/paw/arbeidssoekerregisteret/utgang/pdl/TestData.kt +++ b/apps/utgang-pdl/src/test/kotlin/no/nav/paw/arbeidssoekerregisteret/utgang/pdl/TestData.kt @@ -2,7 +2,8 @@ package no.nav.paw.arbeidssoekerregisteret.utgang.pdl import no.nav.paw.pdl.graphql.generated.enums.Oppholdstillatelse import no.nav.paw.pdl.graphql.generated.hentpersonbolk.Bostedsadresse -import no.nav.paw.pdl.graphql.generated.hentpersonbolk.Foedsel +import no.nav.paw.pdl.graphql.generated.hentpersonbolk.Foedselsdato +import no.nav.paw.pdl.graphql.generated.hentpersonbolk.Foedested import no.nav.paw.pdl.graphql.generated.hentpersonbolk.Folkeregisterpersonstatus import no.nav.paw.pdl.graphql.generated.hentpersonbolk.HentPersonBolkResult import no.nav.paw.pdl.graphql.generated.hentpersonbolk.Metadata @@ -34,7 +35,8 @@ fun getListOfFolkeregisterpersonstatus(vararg status: String) = status.map { get fun getBostedsadresse(angittFlyttedato: String? = null) = Bostedsadresse(angittFlyttedato) fun getPerson( - foedsel: Foedsel? = null, + foedselsdato: Foedselsdato? = null, + foedested: Foedested? = null, statsborgerskap: Statsborgerskap? = null, opphold: Opphold? = null, folkeregisterpersonstatus: List? = null, @@ -42,7 +44,8 @@ fun getPerson( innflyttingTilNorge: List = emptyList(), utflyttingFraNorge: List = emptyList() ): Person = Person( - foedsel = listOf(foedsel ?: Foedsel("2000-01-01")), + foedselsdato = listOf(foedselsdato ?: Foedselsdato("2000-01-01", 2000)), + foedested = listOf(foedested ?: Foedested("NOR", "Oslo", "Oslo")), statsborgerskap = listOf(statsborgerskap ?: getStatsborgerskap()), opphold = listOf(opphold ?: getOppholdstillatelse()), folkeregisterpersonstatus = folkeregisterpersonstatus ?: listOf(getFolkeregisterpersonstatus()), diff --git a/domain/arbeidssoeker-regler/src/main/kotlin/no/nav/paw/arbeidssokerregisteret/application/opplysninger/AlderOpplysning.kt b/domain/arbeidssoeker-regler/src/main/kotlin/no/nav/paw/arbeidssokerregisteret/application/opplysninger/AlderOpplysning.kt index 48176a74..bc430ab9 100644 --- a/domain/arbeidssoeker-regler/src/main/kotlin/no/nav/paw/arbeidssokerregisteret/application/opplysninger/AlderOpplysning.kt +++ b/domain/arbeidssoeker-regler/src/main/kotlin/no/nav/paw/arbeidssokerregisteret/application/opplysninger/AlderOpplysning.kt @@ -1,14 +1,14 @@ package no.nav.paw.arbeidssokerregisteret.application.opplysninger -import no.nav.paw.pdl.graphql.generated.hentperson.Foedsel +import no.nav.paw.pdl.graphql.generated.hentperson.Foedselsdato import no.nav.paw.arbeidssokerregisteret.application.opplysninger.DomeneOpplysning.* import java.time.LocalDate import java.time.Month -fun alderOpplysning(foedsel: Foedsel?): Set { - val dateOfBirth = foedsel?.foedselsdato?.let(LocalDate::parse) +fun alderOpplysning(foedselsdato: Foedselsdato?): Set { + val dateOfBirth = foedselsdato?.foedselsdato?.let(LocalDate::parse) val lastDayInYearOfBirth = - { foedsel?.foedselsaar?.let { foedselsAar -> LocalDate.of(foedselsAar, Month.DECEMBER, 31) } } + { foedselsdato?.foedselsaar?.let { foedselsAar -> LocalDate.of(foedselsAar, Month.DECEMBER, 31) } } val dob = dateOfBirth ?: lastDayInYearOfBirth() val preliminaryEvalResult = if (dateOfBirth != null) emptySet() else setOf(UkjentFoedselsdato) return if (dob != null) { diff --git a/lib/pdl-client/README.md b/lib/pdl-client/README.md index 3db91210..2133373c 100644 --- a/lib/pdl-client/README.md +++ b/lib/pdl-client/README.md @@ -1,6 +1,6 @@ # paw-pdl-client -Klient for å gjøre spørringer mot Persondataløsningen [PDL](https://pdldocs-navno.msappproxy.net/ekstern/index.html). +Klient for å gjøre spørringer mot Persondataløsningen [PDL](https://pdl-docs.ansatt.nav.no/ekstern/index.html). ### Bruk av paw-pdl-client diff --git a/lib/pdl-client/src/main/kotlin/no/nav/paw/pdl/HentFoedsel.kt b/lib/pdl-client/src/main/kotlin/no/nav/paw/pdl/HentFoedested.kt similarity index 61% rename from lib/pdl-client/src/main/kotlin/no/nav/paw/pdl/HentFoedsel.kt rename to lib/pdl-client/src/main/kotlin/no/nav/paw/pdl/HentFoedested.kt index de22aadd..c29c6cc8 100644 --- a/lib/pdl-client/src/main/kotlin/no/nav/paw/pdl/HentFoedsel.kt +++ b/lib/pdl-client/src/main/kotlin/no/nav/paw/pdl/HentFoedested.kt @@ -1,21 +1,21 @@ package no.nav.paw.pdl -import no.nav.paw.pdl.graphql.generated.HentFoedsel -import no.nav.paw.pdl.graphql.generated.hentfoedsel.Foedsel +import no.nav.paw.pdl.graphql.generated.HentFoedested +import no.nav.paw.pdl.graphql.generated.hentfoedested.Foedested -suspend fun PdlClient.hentFoedsel( +suspend fun PdlClient.hentFoedested( ident: String, callId: String?, traceparent: String? = null, navConsumerId: String?, behandlingsnummer: String, -): Foedsel? { +): Foedested? { val query = - HentFoedsel( - HentFoedsel.Variables(ident), + HentFoedested( + HentFoedested.Variables(ident), ) - logger.trace("Henter 'hentFoedsel' fra PDL") + logger.trace("Henter 'hentFoedested' fra PDL") val respons = execute( @@ -30,11 +30,11 @@ suspend fun PdlClient.hentFoedsel( throw PdlException("'hentPerson' feilet", it) } - logger.trace("Hentet 'hentFoedsel' fra PDL") + logger.trace("Hentet 'hentFoedested' fra PDL") return respons .data ?.hentPerson - ?.foedsel + ?.foedested ?.firstOrNull() -} +} \ No newline at end of file diff --git a/lib/pdl-client/src/main/kotlin/no/nav/paw/pdl/HentFoedselsdato.kt b/lib/pdl-client/src/main/kotlin/no/nav/paw/pdl/HentFoedselsdato.kt new file mode 100644 index 00000000..4bcb8fbe --- /dev/null +++ b/lib/pdl-client/src/main/kotlin/no/nav/paw/pdl/HentFoedselsdato.kt @@ -0,0 +1,40 @@ +package no.nav.paw.pdl + +import no.nav.paw.pdl.graphql.generated.hentfoedselsdato.Foedselsdato +import no.nav.paw.pdl.graphql.generated.HentFoedselsdato + +suspend fun PdlClient.hentFoedselsdato( + ident: String, + callId: String?, + traceparent: String? = null, + navConsumerId: String?, + behandlingsnummer: String, +): Foedselsdato? { + val query = + HentFoedselsdato( + HentFoedselsdato.Variables(ident), + ) + + logger.trace("Henter 'hentFoedselsdato' fra PDL") + + val respons = + execute( + query = query, + callId = callId, + navConsumerId = navConsumerId, + traceparent = traceparent, + behandlingsnummer = behandlingsnummer, + ) + + respons.errors?.let { + throw PdlException("'hentPerson' feilet", it) + } + + logger.trace("Hentet 'hentFoedselsdato' fra PDL") + + return respons + .data + ?.hentPerson + ?.foedselsdato + ?.firstOrNull() +} \ No newline at end of file diff --git a/lib/pdl-client/src/main/resources/hentFoedested.graphql b/lib/pdl-client/src/main/resources/hentFoedested.graphql new file mode 100644 index 00000000..7949fba3 --- /dev/null +++ b/lib/pdl-client/src/main/resources/hentFoedested.graphql @@ -0,0 +1,9 @@ +query($ident: ID!) { + hentPerson(ident: $ident) { + foedested { + foedeland + foedested + foedekommune + } + } +} \ No newline at end of file diff --git a/lib/pdl-client/src/main/resources/hentFoedsel.graphql b/lib/pdl-client/src/main/resources/hentFoedselsdato.graphql similarity index 83% rename from lib/pdl-client/src/main/resources/hentFoedsel.graphql rename to lib/pdl-client/src/main/resources/hentFoedselsdato.graphql index abd56026..9eb57fa9 100644 --- a/lib/pdl-client/src/main/resources/hentFoedsel.graphql +++ b/lib/pdl-client/src/main/resources/hentFoedselsdato.graphql @@ -1,6 +1,6 @@ query($ident: ID!) { hentPerson(ident: $ident) { - foedsel { + foedselsdato { foedselsdato foedselsaar } diff --git a/lib/pdl-client/src/main/resources/hentPerson.graphql b/lib/pdl-client/src/main/resources/hentPerson.graphql index 96d883e5..502864e9 100644 --- a/lib/pdl-client/src/main/resources/hentPerson.graphql +++ b/lib/pdl-client/src/main/resources/hentPerson.graphql @@ -1,9 +1,14 @@ query($ident: ID!, $historisk: Boolean) { hentPerson(ident: $ident) { - foedsel { + foedselsdato { foedselsdato foedselsaar } + foedested { + foedeland + foedested + foedekommune + } statsborgerskap(historikk: $historisk) { land metadata { diff --git a/lib/pdl-client/src/main/resources/hentPersonBolk.graphql b/lib/pdl-client/src/main/resources/hentPersonBolk.graphql index 7f50882c..008aaea2 100644 --- a/lib/pdl-client/src/main/resources/hentPersonBolk.graphql +++ b/lib/pdl-client/src/main/resources/hentPersonBolk.graphql @@ -2,10 +2,15 @@ query($identer: [ID!]!, $historisk: Boolean) { hentPersonBolk(identer: $identer) { ident person { - foedsel { + foedselsdato { foedselsdato foedselsaar } + foedested { + foedeland + foedested + foedekommune + } statsborgerskap(historikk: $historisk) { land metadata { diff --git a/lib/pdl-client/src/main/resources/pdl-schema.graphql b/lib/pdl-client/src/main/resources/pdl-schema.graphql index f44649a5..a9bb7876 100644 --- a/lib/pdl-client/src/main/resources/pdl-schema.graphql +++ b/lib/pdl-client/src/main/resources/pdl-schema.graphql @@ -9,902 +9,907 @@ scalar DateTime scalar Long schema { - query: Query + query: Query } type Query { - hentPerson(ident: ID!): Person - hentPersonBolk(identer: [ID!]!): [HentPersonBolkResult!]! - hentIdenter(ident: ID!, grupper: [IdentGruppe!], historikk: Boolean = false): Identliste - hentIdenterBolk(identer: [ID!]!, grupper: [IdentGruppe!], historikk: Boolean = false): [HentIdenterBolkResult!]! - hentGeografiskTilknytning(ident: ID!): GeografiskTilknytning - hentGeografiskTilknytningBolk(identer: [ID!]!): [hentGeografiskTilknytningBolkResult!]! - sokPerson(criteria:[Criterion], paging:Paging): PersonSearchResult - sokAdresse(criteria:[Criterion], paging:Paging): AdresseSearchResult - forslagAdresse(parameters:CompletionParameters): AdresseCompletionResult - hentAdresse(matrikkelId: ID!): KartverketAdresse + hentPerson(ident: ID!): Person + hentPersonBolk(identer: [ID!]!): [HentPersonBolkResult!]! + hentIdenter(ident: ID!, grupper: [IdentGruppe!], historikk: Boolean = false): Identliste + hentIdenterBolk(identer: [ID!]!, grupper: [IdentGruppe!], historikk: Boolean = false): [HentIdenterBolkResult!]! + hentGeografiskTilknytning(ident: ID!): GeografiskTilknytning + hentGeografiskTilknytningBolk(identer: [ID!]!): [hentGeografiskTilknytningBolkResult!]! + sokPerson(criteria:[Criterion], paging:Paging): PersonSearchResult + sokAdresse(criteria:[Criterion], paging:Paging): AdresseSearchResult + forslagAdresse(parameters:CompletionParameters): AdresseCompletionResult + hentAdresse(matrikkelId: ID!): KartverketAdresse } type KartverketAdresse { - id: Long! - vegadresse: KartverketVegadresse - matrikkeladresse: KartverketMatrikkeladresse + id: Long! + vegadresse: KartverketVegadresse + matrikkeladresse: KartverketMatrikkeladresse } type KartverketMatrikkeladresse { - undernummer: Int - representasjonspunkt: KartverketRepresentasjonspunkt - adressetilleggsnavn: String - kortnavn: String - postnummeromraade: KartverketPostnummeromraade - grunnkrets: KartverketGrunnkrets - bydel: KartverketBydel - matrikkelnummer: KartverketMatrikkelnummer + undernummer: Int + representasjonspunkt: KartverketRepresentasjonspunkt + adressetilleggsnavn: String + kortnavn: String + postnummeromraade: KartverketPostnummeromraade + grunnkrets: KartverketGrunnkrets + bydel: KartverketBydel + matrikkelnummer: KartverketMatrikkelnummer } type KartverketMatrikkelnummer { - kommunenummer: String - gaardsnummer: Int - bruksnummer: Int - festenummer: Int - seksjonsnummer: Int + kommunenummer: String + gaardsnummer: Int + bruksnummer: Int + festenummer: Int + seksjonsnummer: Int } type KartverketVegadresse { - nummer: Int - bokstav: String - representasjonspunkt: KartverketRepresentasjonspunkt - adressetilleggsnavn: String - kortnavn: String - postnummeromraade: KartverketPostnummeromraade - grunnkrets: KartverketGrunnkrets - veg: KartverketVeg - bydel: KartverketBydel + nummer: Int + bokstav: String + representasjonspunkt: KartverketRepresentasjonspunkt + adressetilleggsnavn: String + kortnavn: String + postnummeromraade: KartverketPostnummeromraade + grunnkrets: KartverketGrunnkrets + veg: KartverketVeg + bydel: KartverketBydel } type KartverketPostnummeromraade { - poststed: String - postnummer: String + poststed: String + postnummer: String } type KartverketGrunnkrets { - grunnkretsnavn: String - grunnkretsnummer: String + grunnkretsnavn: String + grunnkretsnummer: String } type KartverketRepresentasjonspunkt { - posisjonskvalitet: Int - x: Float - y: Float - z: Float + posisjonskvalitet: Int + x: Float + y: Float + z: Float } type KartverketBydel { - bydelsnavn: String - bydelsnummer: String + bydelsnavn: String + bydelsnummer: String } type KartverketVeg { - adressekode: Int - adressenavn: String - kortnavn: String - stedsnummer: String - kommune: KartverketKommune + adressekode: Int + adressenavn: String + kortnavn: String + stedsnummer: String + kommune: KartverketKommune } type KartverketKommune { - nummer: String - navn: String - fylke: KartverketFylke + nummer: String + navn: String + fylke: KartverketFylke } type KartverketFylke { - nummer: String - navn: String + nummer: String + navn: String } type Identliste { - identer: [IdentInformasjon!]! + identer: [IdentInformasjon!]! } type HentIdenterBolkResult { - ident: String! - identer: [IdentInformasjon!] - code: String! + ident: String! + identer: [IdentInformasjon!] + code: String! } type IdentInformasjon { - ident: String! - gruppe: IdentGruppe! - historisk: Boolean! + ident: String! + gruppe: IdentGruppe! + historisk: Boolean! } enum IdentGruppe { - AKTORID, - FOLKEREGISTERIDENT, - NPID + AKTORID, + FOLKEREGISTERIDENT, + NPID } type HentPersonBolkResult { - ident: String! - person: Person - code: String! + ident: String! + person: Person + code: String! } type Person { - adressebeskyttelse(historikk: Boolean = false): [Adressebeskyttelse!]! - bostedsadresse(historikk: Boolean = false): [Bostedsadresse!]! - deltBosted(historikk: Boolean = false): [DeltBosted!]! - doedfoedtBarn: [DoedfoedtBarn!]! - doedsfall: [Doedsfall!]! - falskIdentitet: FalskIdentitet - foedsel: [Foedsel!]! - foedselsdato: [Foedselsdato!]! - foedested: [Foedested!]! - folkeregisteridentifikator(historikk: Boolean = false): [Folkeregisteridentifikator!]! - folkeregisterpersonstatus(historikk: Boolean = false): [Folkeregisterpersonstatus!]! - forelderBarnRelasjon: [ForelderBarnRelasjon!]! - foreldreansvar(historikk: Boolean = false): [Foreldreansvar!]! - fullmakt(historikk: Boolean = false): [Fullmakt!]! - identitetsgrunnlag(historikk: Boolean = false): [Identitetsgrunnlag!]! - kjoenn(historikk: Boolean = false): [Kjoenn!]! - kontaktadresse(historikk: Boolean = false): [Kontaktadresse!]! - kontaktinformasjonForDoedsbo(historikk: Boolean = false): [KontaktinformasjonForDoedsbo!]! - navn(historikk: Boolean = false): [Navn!]! - opphold(historikk: Boolean = false):[Opphold!]! - oppholdsadresse(historikk: Boolean = false):[Oppholdsadresse!]! - sikkerhetstiltak:[Sikkerhetstiltak!]! - sivilstand(historikk: Boolean = false):[Sivilstand!]! - statsborgerskap(historikk: Boolean = false): [Statsborgerskap!]! - telefonnummer(historikk: Boolean = false): [Telefonnummer!]! - tilrettelagtKommunikasjon:[TilrettelagtKommunikasjon!]! - utenlandskIdentifikasjonsnummer(historikk: Boolean = false): [UtenlandskIdentifikasjonsnummer!]! - innflyttingTilNorge: [InnflyttingTilNorge!]! - utflyttingFraNorge: [UtflyttingFraNorge!]! - vergemaalEllerFremtidsfullmakt(historikk: Boolean = false): [VergemaalEllerFremtidsfullmakt!]! - rettsligHandleevne(historikk: Boolean = false): [RettsligHandleevne!]! + adressebeskyttelse(historikk: Boolean = false): [Adressebeskyttelse!]! + bostedsadresse(historikk: Boolean = false): [Bostedsadresse!]! + deltBosted(historikk: Boolean = false): [DeltBosted!]! + doedfoedtBarn: [DoedfoedtBarn!]! + doedsfall: [Doedsfall!]! + falskIdentitet: FalskIdentitet + foedsel: [Foedsel!]! @deprecated(reason: "Erstattet av foedselsdato & foedested") + foedselsdato: [Foedselsdato!]! + foedested: [Foedested!]! + navspersonidentifikator(historikk: Boolean = false): [Navspersonidentifikator!]! + folkeregisteridentifikator(historikk: Boolean = false): [Folkeregisteridentifikator!]! + folkeregisterpersonstatus(historikk: Boolean = false): [Folkeregisterpersonstatus!]! + forelderBarnRelasjon: [ForelderBarnRelasjon!]! + foreldreansvar(historikk: Boolean = false): [Foreldreansvar!]! + fullmakt(historikk: Boolean = false): [Fullmakt!]! + identitetsgrunnlag(historikk: Boolean = false): [Identitetsgrunnlag!]! + kjoenn(historikk: Boolean = false): [Kjoenn!]! + kontaktadresse(historikk: Boolean = false): [Kontaktadresse!]! + kontaktinformasjonForDoedsbo(historikk: Boolean = false): [KontaktinformasjonForDoedsbo!]! + navn(historikk: Boolean = false): [Navn!]! + opphold(historikk: Boolean = false):[Opphold!]! + oppholdsadresse(historikk: Boolean = false):[Oppholdsadresse!]! + sikkerhetstiltak:[Sikkerhetstiltak!]! + sivilstand(historikk: Boolean = false):[Sivilstand!]! + statsborgerskap(historikk: Boolean = false): [Statsborgerskap!]! + telefonnummer(historikk: Boolean = false): [Telefonnummer!]! + tilrettelagtKommunikasjon:[TilrettelagtKommunikasjon!]! + utenlandskIdentifikasjonsnummer(historikk: Boolean = false): [UtenlandskIdentifikasjonsnummer!]! + innflyttingTilNorge: [InnflyttingTilNorge!]! + utflyttingFraNorge: [UtflyttingFraNorge!]! + vergemaalEllerFremtidsfullmakt(historikk: Boolean = false): [VergemaalEllerFremtidsfullmakt!]! + rettsligHandleevne(historikk: Boolean = false): [RettsligHandleevne!]! } type DeltBosted { - startdatoForKontrakt: Date! - sluttdatoForKontrakt: Date + startdatoForKontrakt: Date! + sluttdatoForKontrakt: Date - coAdressenavn: String - vegadresse: Vegadresse - matrikkeladresse: Matrikkeladresse - utenlandskAdresse: UtenlandskAdresse - ukjentBosted: UkjentBosted + coAdressenavn: String + vegadresse: Vegadresse + matrikkeladresse: Matrikkeladresse + utenlandskAdresse: UtenlandskAdresse + ukjentBosted: UkjentBosted - folkeregistermetadata: Folkeregistermetadata! - metadata: Metadata! + folkeregistermetadata: Folkeregistermetadata! + metadata: Metadata! } type Bostedsadresse { - angittFlyttedato: Date - gyldigFraOgMed: DateTime - gyldigTilOgMed: DateTime + angittFlyttedato: Date + gyldigFraOgMed: DateTime + gyldigTilOgMed: DateTime - coAdressenavn: String - vegadresse: Vegadresse - matrikkeladresse: Matrikkeladresse - utenlandskAdresse: UtenlandskAdresse - ukjentBosted: UkjentBosted + coAdressenavn: String + vegadresse: Vegadresse + matrikkeladresse: Matrikkeladresse + utenlandskAdresse: UtenlandskAdresse + ukjentBosted: UkjentBosted - folkeregistermetadata: Folkeregistermetadata - metadata: Metadata! + folkeregistermetadata: Folkeregistermetadata + metadata: Metadata! } type Oppholdsadresse { - gyldigFraOgMed: DateTime - gyldigTilOgMed: DateTime + gyldigFraOgMed: DateTime + gyldigTilOgMed: DateTime - coAdressenavn: String - utenlandskAdresse: UtenlandskAdresse - vegadresse: Vegadresse - matrikkeladresse: Matrikkeladresse - oppholdAnnetSted: String + coAdressenavn: String + utenlandskAdresse: UtenlandskAdresse + vegadresse: Vegadresse + matrikkeladresse: Matrikkeladresse + oppholdAnnetSted: String - folkeregistermetadata: Folkeregistermetadata - metadata: Metadata! + folkeregistermetadata: Folkeregistermetadata + metadata: Metadata! } type Kontaktadresse { - gyldigFraOgMed: DateTime - gyldigTilOgMed: DateTime - type: KontaktadresseType! + gyldigFraOgMed: DateTime + gyldigTilOgMed: DateTime + type: KontaktadresseType! - coAdressenavn: String - postboksadresse: Postboksadresse - vegadresse: Vegadresse - postadresseIFrittFormat: PostadresseIFrittFormat - utenlandskAdresse: UtenlandskAdresse - utenlandskAdresseIFrittFormat: UtenlandskAdresseIFrittFormat + coAdressenavn: String + postboksadresse: Postboksadresse + vegadresse: Vegadresse + postadresseIFrittFormat: PostadresseIFrittFormat + utenlandskAdresse: UtenlandskAdresse + utenlandskAdresseIFrittFormat: UtenlandskAdresseIFrittFormat - folkeregistermetadata: Folkeregistermetadata - metadata: Metadata! + folkeregistermetadata: Folkeregistermetadata + metadata: Metadata! } enum KontaktadresseType { - Innland, - Utland + Innland, + Utland } type Vegadresse { - matrikkelId: Long - husnummer: String - husbokstav: String - bruksenhetsnummer: String - adressenavn: String - kommunenummer: String - bydelsnummer: String - tilleggsnavn: String - postnummer: String - koordinater: Koordinater + matrikkelId: Long + husnummer: String + husbokstav: String + bruksenhetsnummer: String + adressenavn: String + kommunenummer: String + bydelsnummer: String + tilleggsnavn: String + postnummer: String + koordinater: Koordinater } type Matrikkeladresse { - matrikkelId: Long - bruksenhetsnummer: String - tilleggsnavn: String - postnummer: String - kommunenummer: String - koordinater: Koordinater + matrikkelId: Long + bruksenhetsnummer: String + tilleggsnavn: String + postnummer: String + kommunenummer: String + koordinater: Koordinater } type UkjentBosted { - bostedskommune: String + bostedskommune: String } type UtenlandskAdresse { - adressenavnNummer: String - bygningEtasjeLeilighet: String - postboksNummerNavn: String - postkode: String - bySted: String - regionDistriktOmraade: String - landkode: String! + adressenavnNummer: String + bygningEtasjeLeilighet: String + postboksNummerNavn: String + postkode: String + bySted: String + regionDistriktOmraade: String + landkode: String! } type UtenlandskAdresseIFrittFormat { - adresselinje1: String - adresselinje2: String - adresselinje3: String - postkode: String - byEllerStedsnavn: String - landkode: String! + adresselinje1: String + adresselinje2: String + adresselinje3: String + postkode: String + byEllerStedsnavn: String + landkode: String! } type Postboksadresse { - postbokseier: String - postboks: String! - postnummer: String + postbokseier: String + postboks: String! + postnummer: String } type PostadresseIFrittFormat { - adresselinje1: String - adresselinje2: String - adresselinje3: String - postnummer: String + adresselinje1: String + adresselinje2: String + adresselinje3: String + postnummer: String } type Koordinater { - x: Float - y: Float - z: Float - kvalitet: Int + x: Float + y: Float + z: Float + kvalitet: Int } type FalskIdentitet { - erFalsk: Boolean! - rettIdentitetVedIdentifikasjonsnummer: String - rettIdentitetErUkjent: Boolean - rettIdentitetVedOpplysninger: FalskIdentitetIdentifiserendeInformasjon - folkeregistermetadata: Folkeregistermetadata - metadata: Metadata! + erFalsk: Boolean! + rettIdentitetVedIdentifikasjonsnummer: String + rettIdentitetErUkjent: Boolean + rettIdentitetVedOpplysninger: FalskIdentitetIdentifiserendeInformasjon + folkeregistermetadata: Folkeregistermetadata + metadata: Metadata! } type FalskIdentitetIdentifiserendeInformasjon { - personnavn: Personnavn! - foedselsdato: Date - statsborgerskap: [String!]! - kjoenn: KjoennType + personnavn: Personnavn! + foedselsdato: Date + statsborgerskap: [String!]! + kjoenn: KjoennType } type KontaktinformasjonForDoedsbo { - skifteform: KontaktinformasjonForDoedsboSkifteform! - attestutstedelsesdato: Date! - personSomKontakt: KontaktinformasjonForDoedsboPersonSomKontakt - advokatSomKontakt: KontaktinformasjonForDoedsboAdvokatSomKontakt - organisasjonSomKontakt: KontaktinformasjonForDoedsboOrganisasjonSomKontakt - adresse: KontaktinformasjonForDoedsboAdresse! - folkeregistermetadata: Folkeregistermetadata! - metadata: Metadata! + skifteform: KontaktinformasjonForDoedsboSkifteform! + attestutstedelsesdato: Date! + personSomKontakt: KontaktinformasjonForDoedsboPersonSomKontakt + advokatSomKontakt: KontaktinformasjonForDoedsboAdvokatSomKontakt + organisasjonSomKontakt: KontaktinformasjonForDoedsboOrganisasjonSomKontakt + adresse: KontaktinformasjonForDoedsboAdresse! + folkeregistermetadata: Folkeregistermetadata! + metadata: Metadata! } enum KontaktinformasjonForDoedsboSkifteform { - OFFENTLIG - ANNET + OFFENTLIG + ANNET } type KontaktinformasjonForDoedsboPersonSomKontakt { - foedselsdato: Date - personnavn: Personnavn - identifikasjonsnummer: String + foedselsdato: Date + personnavn: Personnavn + identifikasjonsnummer: String } type KontaktinformasjonForDoedsboAdvokatSomKontakt { - personnavn: Personnavn! - organisasjonsnavn: String - organisasjonsnummer: String + personnavn: Personnavn! + organisasjonsnavn: String + organisasjonsnummer: String } type KontaktinformasjonForDoedsboOrganisasjonSomKontakt { - kontaktperson: Personnavn - organisasjonsnavn: String! - organisasjonsnummer: String + kontaktperson: Personnavn + organisasjonsnavn: String! + organisasjonsnummer: String } type KontaktinformasjonForDoedsboAdresse { - adresselinje1: String! - adresselinje2: String - poststedsnavn: String! - postnummer: String! - landkode: String + adresselinje1: String! + adresselinje2: String + poststedsnavn: String! + postnummer: String! + landkode: String } type UtenlandskIdentifikasjonsnummer { - identifikasjonsnummer: String! - utstederland: String! - opphoert: Boolean! - folkeregistermetadata: Folkeregistermetadata - metadata: Metadata! + identifikasjonsnummer: String! + utstederland: String! + opphoert: Boolean! + folkeregistermetadata: Folkeregistermetadata + metadata: Metadata! } type Adressebeskyttelse { - gradering: AdressebeskyttelseGradering! - folkeregistermetadata: Folkeregistermetadata - metadata: Metadata! + gradering: AdressebeskyttelseGradering! + folkeregistermetadata: Folkeregistermetadata + metadata: Metadata! } enum AdressebeskyttelseGradering { - STRENGT_FORTROLIG_UTLAND, - STRENGT_FORTROLIG, - FORTROLIG, - UGRADERT + STRENGT_FORTROLIG_UTLAND, + STRENGT_FORTROLIG, + FORTROLIG, + UGRADERT } type Foedsel { - foedselsaar: Int - foedselsdato: Date - foedeland: String - foedested: String - foedekommune: String - folkeregistermetadata: Folkeregistermetadata - metadata: Metadata! + foedselsaar: Int + foedselsdato: Date + foedeland: String + foedested: String + foedekommune: String + folkeregistermetadata: Folkeregistermetadata + metadata: Metadata! } type Foedested { - foedeland: String - foedested: String - foedekommune: String - folkeregistermetadata: Folkeregistermetadata - metadata: Metadata! + foedeland: String + foedested: String + foedekommune: String + folkeregistermetadata: Folkeregistermetadata + metadata: Metadata! } type Foedselsdato { - foedselsdato: Date - foedselsaar: Int - folkeregistermetadata: Folkeregistermetadata - metadata: Metadata! + foedselsdato: Date + foedselsaar: Int + folkeregistermetadata: Folkeregistermetadata + metadata: Metadata! } type Kjoenn { - kjoenn: KjoennType - folkeregistermetadata: Folkeregistermetadata - metadata: Metadata! + kjoenn: KjoennType + folkeregistermetadata: Folkeregistermetadata + metadata: Metadata! } type Doedsfall { - doedsdato: Date - metadata: Metadata! - folkeregistermetadata: Folkeregistermetadata + doedsdato: Date + metadata: Metadata! + folkeregistermetadata: Folkeregistermetadata } type ForelderBarnRelasjon { - relatertPersonsIdent: String - relatertPersonsRolle: ForelderBarnRelasjonRolle! - minRolleForPerson: ForelderBarnRelasjonRolle - relatertPersonUtenFolkeregisteridentifikator: RelatertBiPerson - folkeregistermetadata: Folkeregistermetadata - metadata: Metadata! + relatertPersonsIdent: String + relatertPersonsRolle: ForelderBarnRelasjonRolle! + minRolleForPerson: ForelderBarnRelasjonRolle + relatertPersonUtenFolkeregisteridentifikator: RelatertBiPerson + folkeregistermetadata: Folkeregistermetadata + metadata: Metadata! } type DoedfoedtBarn { - dato: Date - folkeregistermetadata: Folkeregistermetadata! - metadata: Metadata! + dato: Date + folkeregistermetadata: Folkeregistermetadata! + metadata: Metadata! } enum Familierelasjonsrolle { - BARN, - MOR, - FAR, - MEDMOR + BARN, + MOR, + FAR, + MEDMOR } enum ForelderBarnRelasjonRolle { - BARN, - MOR, - FAR, - MEDMOR + BARN, + MOR, + FAR, + MEDMOR } type Folkeregisterpersonstatus { - status: String! - forenkletStatus: String! - folkeregistermetadata: Folkeregistermetadata! - metadata: Metadata! + status: String! + forenkletStatus: String! + folkeregistermetadata: Folkeregistermetadata! + metadata: Metadata! } type GeografiskTilknytning { - gtType: GtType! - gtKommune: String - gtBydel: String - gtLand: String - regel: String! + gtType: GtType! + gtKommune: String + gtBydel: String + gtLand: String + regel: String! } type hentGeografiskTilknytningBolkResult { - ident: String! - geografiskTilknytning: GeografiskTilknytning - code: String! + ident: String! + geografiskTilknytning: GeografiskTilknytning + code: String! } enum GtType { - KOMMUNE, - BYDEL, - UTLAND, - UDEFINERT + KOMMUNE, + BYDEL, + UTLAND, + UDEFINERT } type Navn { - fornavn: String! - mellomnavn: String - etternavn: String! - forkortetNavn: String @deprecated - originaltNavn: OriginaltNavn - gyldigFraOgMed: Date + fornavn: String! + mellomnavn: String + etternavn: String! + forkortetNavn: String @deprecated + originaltNavn: OriginaltNavn + gyldigFraOgMed: Date - folkeregistermetadata: Folkeregistermetadata - metadata: Metadata! + folkeregistermetadata: Folkeregistermetadata + metadata: Metadata! } type OriginaltNavn { - fornavn: String - mellomnavn: String - etternavn: String + fornavn: String + mellomnavn: String + etternavn: String } type Personnavn { - fornavn: String! - mellomnavn: String - etternavn: String! + fornavn: String! + mellomnavn: String + etternavn: String! } enum KjoennType { - MANN, KVINNE, UKJENT + MANN, KVINNE, UKJENT } type Identitetsgrunnlag { - status: Identitetsgrunnlagsstatus! - folkeregistermetadata: Folkeregistermetadata! - metadata: Metadata! + status: Identitetsgrunnlagsstatus! + folkeregistermetadata: Folkeregistermetadata! + metadata: Metadata! } enum Identitetsgrunnlagsstatus { - IKKE_KONTROLLERT - KONTROLLERT, - INGEN_STATUS + IKKE_KONTROLLERT + KONTROLLERT, + INGEN_STATUS } type Folkeregistermetadata { - ajourholdstidspunkt: DateTime - gyldighetstidspunkt: DateTime - opphoerstidspunkt: DateTime - kilde: String - aarsak: String - sekvens: Int + ajourholdstidspunkt: DateTime + gyldighetstidspunkt: DateTime + opphoerstidspunkt: DateTime + kilde: String + aarsak: String + sekvens: Int } type Telefonnummer { - landskode: String! - nummer: String! - prioritet: Int! - metadata: Metadata! + landskode: String! + nummer: String! + prioritet: Int! + metadata: Metadata! } type TilrettelagtKommunikasjon { - talespraaktolk: Tolk - tegnspraaktolk: Tolk - metadata: Metadata! + talespraaktolk: Tolk + tegnspraaktolk: Tolk + metadata: Metadata! } type Tolk { - spraak: String + spraak: String } enum FullmaktsRolle { - FULLMAKTSGIVER, - FULLMEKTIG + FULLMAKTSGIVER, + FULLMEKTIG } type Fullmakt { - motpartsPersonident: String! - motpartsRolle: FullmaktsRolle! - omraader: [String!]! - gyldigFraOgMed: Date! - gyldigTilOgMed: Date! - metadata: Metadata! + motpartsPersonident: String! + motpartsRolle: FullmaktsRolle! + omraader: [String!]! + gyldigFraOgMed: Date! + gyldigTilOgMed: Date! + metadata: Metadata! } type Folkeregisteridentifikator { - identifikasjonsnummer: String! - status: String! - type: String! - folkeregistermetadata: Folkeregistermetadata! - metadata: Metadata! + identifikasjonsnummer: String! + status: String! + type: String! + folkeregistermetadata: Folkeregistermetadata! + metadata: Metadata! +} +type Navspersonidentifikator { + identifikasjonsnummer: String! + metadata: Metadata! } type SikkerhetstiltakKontaktperson { - personident: String! - enhet: String! + personident: String! + enhet: String! } type Sikkerhetstiltak { - tiltakstype: String! - beskrivelse: String! - kontaktperson: SikkerhetstiltakKontaktperson - gyldigFraOgMed: Date! - gyldigTilOgMed: Date! - metadata: Metadata! + tiltakstype: String! + beskrivelse: String! + kontaktperson: SikkerhetstiltakKontaktperson + gyldigFraOgMed: Date! + gyldigTilOgMed: Date! + metadata: Metadata! } type Statsborgerskap { - land: String! - bekreftelsesdato: Date - gyldigFraOgMed: Date - gyldigTilOgMed: Date - folkeregistermetadata: Folkeregistermetadata - metadata: Metadata! + land: String! + bekreftelsesdato: Date + gyldigFraOgMed: Date + gyldigTilOgMed: Date + folkeregistermetadata: Folkeregistermetadata + metadata: Metadata! } type Opphold { - type: Oppholdstillatelse! - oppholdFra: Date - oppholdTil: Date - folkeregistermetadata: Folkeregistermetadata! - metadata: Metadata! + type: Oppholdstillatelse! + oppholdFra: Date + oppholdTil: Date + folkeregistermetadata: Folkeregistermetadata! + metadata: Metadata! } enum Oppholdstillatelse { - MIDLERTIDIG - PERMANENT - OPPLYSNING_MANGLER + MIDLERTIDIG + PERMANENT + OPPLYSNING_MANGLER } type Sivilstand { - type: Sivilstandstype! - gyldigFraOgMed: Date - relatertVedSivilstand: String - bekreftelsesdato: Date + type: Sivilstandstype! + gyldigFraOgMed: Date + relatertVedSivilstand: String + bekreftelsesdato: Date - folkeregistermetadata: Folkeregistermetadata - metadata: Metadata! + folkeregistermetadata: Folkeregistermetadata + metadata: Metadata! } enum Sivilstandstype { - UOPPGITT - UGIFT - GIFT - ENKE_ELLER_ENKEMANN - SKILT - SEPARERT - REGISTRERT_PARTNER - SEPARERT_PARTNER - SKILT_PARTNER - GJENLEVENDE_PARTNER + UOPPGITT + UGIFT + GIFT + ENKE_ELLER_ENKEMANN + SKILT + SEPARERT + REGISTRERT_PARTNER + SEPARERT_PARTNER + SKILT_PARTNER + GJENLEVENDE_PARTNER } type InnflyttingTilNorge { - fraflyttingsland: String - fraflyttingsstedIUtlandet: String - folkeregistermetadata: Folkeregistermetadata - metadata: Metadata! + fraflyttingsland: String + fraflyttingsstedIUtlandet: String + folkeregistermetadata: Folkeregistermetadata + metadata: Metadata! } type UtflyttingFraNorge { - tilflyttingsland: String - tilflyttingsstedIUtlandet: String - utflyttingsdato: Date - folkeregistermetadata: Folkeregistermetadata - metadata: Metadata! + tilflyttingsland: String + tilflyttingsstedIUtlandet: String + utflyttingsdato: Date + folkeregistermetadata: Folkeregistermetadata + metadata: Metadata! } type VergeEllerFullmektig { - navn: Personnavn @deprecated(reason:"Erstattes av navn iidentifiserendeInformasjon") - identifiserendeInformasjon: IdentifiserendeInformasjon - motpartsPersonident: String - omfang: String - omfangetErInnenPersonligOmraade: Boolean - tjenesteomraade:[Tjenesteomraade!] + navn: Personnavn @deprecated(reason:"Erstattes av navn iidentifiserendeInformasjon") + identifiserendeInformasjon: IdentifiserendeInformasjon + motpartsPersonident: String + omfang: String + omfangetErInnenPersonligOmraade: Boolean + tjenesteomraade:[Tjenesteomraade!] } type IdentifiserendeInformasjon { - navn: Personnavn - kjoenn: String - foedselsdato:Date - statsborgerskap: [String!] + navn: Personnavn + kjoenn: String + foedselsdato:Date + statsborgerskap: [String!] } type Tjenesteomraade { - tjenesteoppgave: String - tjenestevirksomhet: String + tjenesteoppgave: String + tjenestevirksomhet: String } type VergemaalEllerFremtidsfullmakt { - type: String - embete: String - vergeEllerFullmektig: VergeEllerFullmektig! + type: String + embete: String + vergeEllerFullmektig: VergeEllerFullmektig! - folkeregistermetadata: Folkeregistermetadata - metadata: Metadata! + folkeregistermetadata: Folkeregistermetadata + metadata: Metadata! } type RettsligHandleevne { - rettsligHandleevneomfang: String - folkeregistermetadata: Folkeregistermetadata - metadata: Metadata! + rettsligHandleevneomfang: String + folkeregistermetadata: Folkeregistermetadata + metadata: Metadata! } type Foreldreansvar { - ansvar: String - ansvarlig: String - ansvarssubjekt: String - ansvarligUtenIdentifikator: RelatertBiPerson + ansvar: String + ansvarlig: String + ansvarssubjekt: String + ansvarligUtenIdentifikator: RelatertBiPerson - folkeregistermetadata: Folkeregistermetadata - metadata: Metadata! + folkeregistermetadata: Folkeregistermetadata + metadata: Metadata! } type RelatertBiPerson { - navn: Personnavn - foedselsdato: Date - statsborgerskap: String - kjoenn: KjoennType + navn: Personnavn + foedselsdato: Date + statsborgerskap: String + kjoenn: KjoennType } type Metadata { - # I PDL så får alle forekomster av en opplysning en ID som representerer dens unike forekomst. - # F.eks, så vil en Opprett ha ID X, korriger ID Y (der hvor den spesifiserer at den korrigerer X). - # Dersom en opplysning ikke er lagret i PDL, så vil denne verdien ikke være utfylt. - opplysningsId: String + # I PDL så får alle forekomster av en opplysning en ID som representerer dens unike forekomst. + # F.eks, så vil en Opprett ha ID X, korriger ID Y (der hvor den spesifiserer at den korrigerer X). + # Dersom en opplysning ikke er lagret i PDL, så vil denne verdien ikke være utfylt. + opplysningsId: String - # Master refererer til hvem som eier opplysningen, f.eks så har PDL en kopi av Folkeregisteret, da vil master være FREG og eventuelle endringer på dette må gå via Folkeregisteret (API mot dem eller andre rutiner). - master: String! + # Master refererer til hvem som eier opplysningen, f.eks så har PDL en kopi av Folkeregisteret, da vil master være FREG og eventuelle endringer på dette må gå via Folkeregisteret (API mot dem eller andre rutiner). + master: String! - # En liste over alle endringer som har blitt utført over tid. - # Vær obs på at denne kan endre seg og man burde takle at det finnes flere korrigeringer i listen, så dersom man ønsker å kun vise den siste, så må man selv filtrere ut dette. - # Det kan også ved svært få tilfeller skje at opprett blir fjernet. F.eks ved splitt tilfeller av identer. Dette skal skje i svært få tilfeller. Dersom man ønsker å presentere opprettet tidspunktet, så blir det tidspunktet på den første endringen. - endringer: [Endring!]! + # En liste over alle endringer som har blitt utført over tid. + # Vær obs på at denne kan endre seg og man burde takle at det finnes flere korrigeringer i listen, så dersom man ønsker å kun vise den siste, så må man selv filtrere ut dette. + # Det kan også ved svært få tilfeller skje at opprett blir fjernet. F.eks ved splitt tilfeller av identer. Dette skal skje i svært få tilfeller. Dersom man ønsker å presentere opprettet tidspunktet, så blir det tidspunktet på den første endringen. + endringer: [Endring!]! - # Feltet betegner hvorvidt dette er en funksjonelt historisk opplysning, for eksempel en tidligere fraflyttet adresse eller et foreldreansvar som er utløpt fordi barnet har fylt 18 år. - # I de fleste tilfeller kan dette utledes ved å se på de andre feltene i opplysningen. Dette er imidlertid ikke alltid tilfellet, blant annet for foreldreansvar. - # Feltet bør brukes av konsumenter som henter informasjon fra GraphQL med historikk, men som også trenger å utlede gjeldende informasjon. - historisk: Boolean! + # Feltet betegner hvorvidt dette er en funksjonelt historisk opplysning, for eksempel en tidligere fraflyttet adresse eller et foreldreansvar som er utløpt fordi barnet har fylt 18 år. + # I de fleste tilfeller kan dette utledes ved å se på de andre feltene i opplysningen. Dette er imidlertid ikke alltid tilfellet, blant annet for foreldreansvar. + # Feltet bør brukes av konsumenter som henter informasjon fra GraphQL med historikk, men som også trenger å utlede gjeldende informasjon. + historisk: Boolean! } # Endring som har blitt utført på opplysningen. F.eks: Opprett -> Korriger -> Korriger type Endring { - # Hvilke type endring som har blitt utført. - type: Endringstype! - # Tidspunktet for registrering. - registrert: DateTime! - # Hvem endringen har blitt utført av, ofte saksbehandler (f.eks Z990200), men kan også være system (f.eks srvXXXX). Denne blir satt til "Folkeregisteret" for det vi får fra dem. - registrertAv: String! - # Hvilke system endringen har kommet fra (f.eks srvXXX). Denne blir satt til "FREG" for det vi får fra Folkeregisteret. - systemkilde: String! - # Opphavet til informasjonen. I NAV blir dette satt i forbindelse med registrering (f.eks: Sykehuskassan). - # Fra Folkeregisteret får vi opphaven til dems opplysning, altså NAV, UDI, Politiet, Skatteetaten o.l.. Fra Folkeregisteret kan det også være tekniske navn som: DSF_MIGRERING, m.m.. - kilde: String! + # Hvilke type endring som har blitt utført. + type: Endringstype! + # Tidspunktet for registrering. + registrert: DateTime! + # Hvem endringen har blitt utført av, ofte saksbehandler (f.eks Z990200), men kan også være system (f.eks srvXXXX). Denne blir satt til "Folkeregisteret" for det vi får fra dem. + registrertAv: String! + # Hvilke system endringen har kommet fra (f.eks srvXXX). Denne blir satt til "FREG" for det vi får fra Folkeregisteret. + systemkilde: String! + # Opphavet til informasjonen. I NAV blir dette satt i forbindelse med registrering (f.eks: Sykehuskassan). + # Fra Folkeregisteret får vi opphaven til dems opplysning, altså NAV, UDI, Politiet, Skatteetaten o.l.. Fra Folkeregisteret kan det også være tekniske navn som: DSF_MIGRERING, m.m.. + kilde: String! - hendelseId:String! + hendelseId:String! } enum Endringstype { - OPPRETT - KORRIGER - OPPHOER + OPPRETT + KORRIGER + OPPHOER } input Criterion { - # Feltnavn inkludert sti til ønsket felt (Eksempel: person.navn.fornavn) - fieldName:String + # Feltnavn inkludert sti til ønsket felt (Eksempel: person.navn.fornavn) + fieldName:String - and:[Criterion] - or:[Criterion] - not:[Criterion] + and:[Criterion] + or:[Criterion] + not:[Criterion] - searchRule:SearchRule - # Søk i historiske data - # true = søker kun i historiske data. - # false = søker kun i gjeldende data. - # null = søke i både historiske og gjeldende data. - searchHistorical:Boolean + searchRule:SearchRule + # Søk i historiske data + # true = søker kun i historiske data. + # false = søker kun i gjeldende data. + # null = søke i både historiske og gjeldende data. + searchHistorical:Boolean } input SearchRule { - # Sjekker om feltet finnes / at det ikke har en null verdi. - exists:String - # Filtrerer bort treff hvor felt inneholder input verdi - notEquals:String - # Begrenser treff til kun de hvor felt har input verdi - equals:String - # Gir treff når opgitt felt inneholder en eller flere ord fra input verdien. - contains:String - # 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 - # 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. - startsWith:String - # Regex søk for spesielle situasjoner (Dette er en treg opprasjon og bør ikke brukes) - regex:String - # Brukes til søke etter datoer som kommer etter opgitt dato. - after:String - # Brukes til søke etter datoer som kommer før opgitt dato. - before:String - # Brukes til å søke i tall og finner verdier som er mindre en input verdi. - lessThan:String - # Brukes til å søke i tall og finner verdier som er størren en input verdi. - greaterThan:String - # Søk fra og med (se fromExcluding for bare fra men ikke med) - # kan benyttes på tall og dato - from:String - # Søk til og med (se toExcluding for bare til men ikke med) - # kan benyttes på tall og dato - to:String - # Søk fra men ikke med oppgitt verdi - # kan benyttes på tall og dato - fromExcluding:String, - # Søk til men ikke med oppgitt verdi - # kan benyttes på tall og dato - toExcluding:String - - # [Flag] Kan brukes til å overstyre standard oppførsellen for søk i felter (standard er case insensitive) - caseSensitive:Boolean - # [Flag] Brukes til å deaktivere fonetisk søk feltene som har dette som standard (Navn) - disablePhonetic:Boolean - # Boost brukes til å gi ett søkekriterie høyere eller lavere vektlegging en de andre søke kriteriene. - boost:Float + # Sjekker om feltet finnes / at det ikke har en null verdi. + exists:Boolean + # Filtrerer bort treff hvor felt inneholder input verdi + notEquals:String + # Begrenser treff til kun de hvor felt har input verdi + equals:String + # Gir treff når opgitt felt inneholder en eller flere ord fra input verdien. + contains:String + # 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: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. + startsWith:String + # Regex søk for spesielle situasjoner (Dette er en treg opprasjon og bør ikke brukes) + regex:String + # Brukes til søke etter datoer som kommer etter opgitt dato. + after:String + # Brukes til søke etter datoer som kommer før opgitt dato. + before:String + # Brukes til å søke i tall og finner verdier som er mindre en input verdi. + lessThan:String + # Brukes til å søke i tall og finner verdier som er størren en input verdi. + greaterThan:String + # Søk fra og med (se fromExcluding for bare fra men ikke med) + # kan benyttes på tall og dato + from:String + # Søk til og med (se toExcluding for bare til men ikke med) + # kan benyttes på tall og dato + to:String + # Søk fra men ikke med oppgitt verdi + # kan benyttes på tall og dato + fromExcluding:String, + # Søk til men ikke med oppgitt verdi + # kan benyttes på tall og dato + toExcluding:String + + # [Flag] Kan brukes til å overstyre standard oppførsellen for søk i felter (standard er case insensitive) + caseSensitive:Boolean + # [Flag] Brukes til å deaktivere fonetisk søk feltene som har dette som standard (Navn) + disablePhonetic:Boolean + # Boost brukes til å gi ett søkekriterie høyere eller lavere vektlegging en de andre søke kriteriene. + boost:Float } input Paging { - # Hvilken side i resultatsettet man ønsker vist. - pageNumber:Int = 1 - # antall treff per side (maks 100) - resultsPerPage:Int = 10 - # Liste over felter man ønsker resultatene sortert etter - # Standard er "score". Score er poengsummen Elasticsearch tildeler hvert resultat. - sortBy:[SearchSorting] + # Hvilken side i resultatsettet man ønsker vist. + pageNumber:Int = 1 + # antall treff per side (maks 100) + resultsPerPage:Int = 10 + # Liste over felter man ønsker resultatene sortert etter + # Standard er "score". Score er poengsummen Elasticsearch tildeler hvert resultat. + sortBy:[SearchSorting] } input SearchSorting { - # Feltnavn ikludert sti til ønsket felt (eksepmel: person.navn.fornavn) - fieldName:String! - direction:Direction! + # Feltnavn ikludert sti til ønsket felt (eksepmel: person.navn.fornavn) + fieldName:String! + direction:Direction! } enum Direction { - ASC, - DESC + ASC, + DESC } type PersonSearchResult { - # treff liste - hits : [PersonSearchHit!]! - # Side nummer for siden som vises - pageNumber:Int - # Totalt antall sider - totalPages:Int - # Totalt antall treff (øvre grense er satt til 10 000) - totalHits:Int + # treff liste + hits : [PersonSearchHit!]! + # Side nummer for siden som vises + pageNumber:Int + # Totalt antall sider + totalPages:Int + # Totalt antall treff (øvre grense er satt til 10 000) + totalHits:Int } type PersonSearchHit { - # forespurte data - person :Person - # forespurte data - identer(historikk: Boolean = false): [IdentInformasjon!]! - # Poengsummen elasticsearch har gitt dette resultatet (brukt til feilsøking, og tuning av søk) - score :Float - # Infromasjon om hva som ga treff i søke resultatet. - highlights:[PersonSearchHighlight] + # forespurte data + person :Person + # forespurte data + identer(historikk: Boolean = false): [IdentInformasjon!]! + # Poengsummen elasticsearch har gitt dette resultatet (brukt til feilsøking, og tuning av søk) + score :Float + # Infromasjon om hva som ga treff i søke resultatet. + highlights:[PersonSearchHighlight] } type PersonSearchHighlight { - # Navn/Sti til opplysningen som ga treff. Merk at dette ikke er feltet som ga treff men opplysningen. - # F.eks. hvis du søker på person.navn.fornavn så vil opplysingen være person.navn. - opplysning:String - # Gitt att opplysningen som ga treff har en opplysningsId så vil den returneres her. - # alle søk under person skal ha opplysningsId, men søk i identer vil kunne returnere treff uten opplysningsId. - opplysningsId: String - # Forteller hvorvidt opplysningen som ga treff er markert som historisk. - historisk: Boolean - # liste med feltene og verdiene som ga treff. - # Merk at for fritekst søk så vil disse kunne referere til hjelpe felter som ikke er synelig i resultatene. - matches:[SearchMatch] + # Navn/Sti til opplysningen som ga treff. Merk at dette ikke er feltet som ga treff men opplysningen. + # F.eks. hvis du søker på person.navn.fornavn så vil opplysingen være person.navn. + opplysning:String + # Gitt att opplysningen som ga treff har en opplysningsId så vil den returneres her. + # alle søk under person skal ha opplysningsId, men søk i identer vil kunne returnere treff uten opplysningsId. + opplysningsId: String + # Forteller hvorvidt opplysningen som ga treff er markert som historisk. + historisk: Boolean + # liste med feltene og verdiene som ga treff. + # Merk at for fritekst søk så vil disse kunne referere til hjelpe felter som ikke er synelig i resultatene. + matches:[SearchMatch] } type SearchMatch { - # feltnavn med sti til feltet so ga treff. - field:String! - type: String - # Verdien som ga treff - fragments: [String] + # feltnavn med sti til feltet so ga treff. + field:String! + type: String + # Verdien som ga treff + fragments: [String] } type AdresseSearchResult { - hits : [AdresseSearchHit!]! - pageNumber:Int, - totalPages:Int - totalHits:Int + hits : [AdresseSearchHit!]! + pageNumber:Int, + totalPages:Int + totalHits:Int } type AdresseSearchHit { - vegadresse : VegadresseResult - matrikkeladresse : MatrikkeladresseResult - score :Float + vegadresse : VegadresseResult + matrikkeladresse : MatrikkeladresseResult + score :Float } type VegadresseResult { - matrikkelId:String - husnummer:Int - husbokstav:String - adressenavn:String - adressekode:String - tilleggsnavn:String - fylkesnavn:String - fylkesnummer:String - kommunenavn:String - kommunenummer:String - postnummer:String - poststed:String - bydelsnavn:String - bydelsnummer:String + matrikkelId:String + husnummer:Int + husbokstav:String + adressenavn:String + adressekode:String + tilleggsnavn:String + fylkesnavn:String + fylkesnummer:String + kommunenavn:String + kommunenummer:String + postnummer:String + poststed:String + bydelsnavn:String + bydelsnummer:String } type MatrikkeladresseResult { - matrikkelId:String - tilleggsnavn:String - kommunenummer:String - gaardsnummer:String - bruksnummer:String - postnummer:String - poststed:String + matrikkelId:String + tilleggsnavn:String + kommunenummer:String + gaardsnummer:String + bruksnummer:String + postnummer:String + poststed:String } type AdresseCompletionResult { - suggestions: [String!]! - addressFound : CompletionAdresse + suggestions: [String!]! + addressFound : CompletionAdresse } type CompletionAdresse { - vegadresse : VegadresseResult - matrikkeladresse : MatrikkeladresseResult + vegadresse : VegadresseResult + matrikkeladresse : MatrikkeladresseResult } input CompletionParameters { - completionField: String! - maxSuggestions: Int - fieldValues: [CompletionFieldValue]! + completionField: String! + maxSuggestions: Int + fieldValues: [CompletionFieldValue]! } input CompletionFieldValue { - fieldName: String! - fieldValue: String + fieldName: String! + fieldValue: String } \ No newline at end of file diff --git a/lib/pdl-client/src/test/kotlin/no/nav/paw/pdl/PdlClientTest.kt b/lib/pdl-client/src/test/kotlin/no/nav/paw/pdl/PdlClientTest.kt index 7725b0b7..99f35ca1 100644 --- a/lib/pdl-client/src/test/kotlin/no/nav/paw/pdl/PdlClientTest.kt +++ b/lib/pdl-client/src/test/kotlin/no/nav/paw/pdl/PdlClientTest.kt @@ -137,6 +137,30 @@ class PdlClientTest : FreeSpec({ resultat!!.first().person!!.folkeregisterpersonstatus.map { it.forenkletStatus } shouldContain forventet } + + "Forventer gyldig respons fra hentFoedested" { + val respons = readResource("hentFoedested-response.json") + val pdlClient = mockPdlClient(respons) + + val resultat = runBlocking { + pdlClient.hentFoedested("2649500819544", callId, null, navConsumerId, "B123") + } + val forventet = "NOR" + + resultat!!.foedeland shouldBe forventet + } + + "Forventer gyldig respons fra hentFoedselsdato" { + val respons = readResource("hentFoedselsdato-response.json") + val pdlClient = mockPdlClient(respons) + + val resultat = runBlocking { + pdlClient.hentFoedselsdato("2649500819544", callId, null, navConsumerId, "B123") + } + val forventet = "1986-11-26" + + resultat!!.foedselsdato shouldBe forventet + } }) private fun readResource(filename: String) = ClassLoader.getSystemResource(filename).readText() diff --git a/lib/pdl-client/src/test/resources/hentFoedested-response.json b/lib/pdl-client/src/test/resources/hentFoedested-response.json new file mode 100644 index 00000000..352f9dfd --- /dev/null +++ b/lib/pdl-client/src/test/resources/hentFoedested-response.json @@ -0,0 +1,13 @@ +{ + "data": { + "hentPerson": { + "foedested": [ + { + "foedeland": "NOR", + "foedested": "Oslo", + "foedekommune": "Oslo" + } + ] + } + } +} \ No newline at end of file diff --git a/lib/pdl-client/src/test/resources/hentFoedselsdato-response.json b/lib/pdl-client/src/test/resources/hentFoedselsdato-response.json new file mode 100644 index 00000000..9ecea416 --- /dev/null +++ b/lib/pdl-client/src/test/resources/hentFoedselsdato-response.json @@ -0,0 +1,12 @@ +{ + "data": { + "hentPerson": { + "foedselsdato": [ + { + "foedselsdato": "1986-11-26", + "foedselsaar": 1986 + } + ] + } + } +} \ No newline at end of file diff --git a/lib/pdl-client/src/test/resources/hentFullPerson-response.json b/lib/pdl-client/src/test/resources/hentFullPerson-response.json index 8dd9be41..908f05d1 100644 --- a/lib/pdl-client/src/test/resources/hentFullPerson-response.json +++ b/lib/pdl-client/src/test/resources/hentFullPerson-response.json @@ -80,9 +80,17 @@ "land": "NOR" } ], - "foedsel": [ + "foedselsdato": [ { - "foedselsdato": "1984-01-31" + "foedselsdato": "1986-11-26", + "foedselsaar": 1986 + } + ], + "foedested": [ + { + "foedeland": "NOR", + "foedested": "Oslo", + "foedekommune": "Oslo" } ], "doedsfall": [], diff --git a/lib/pdl-client/src/test/resources/hentPerson-response.json b/lib/pdl-client/src/test/resources/hentPerson-response.json index 11ca6176..d7fcb5de 100644 --- a/lib/pdl-client/src/test/resources/hentPerson-response.json +++ b/lib/pdl-client/src/test/resources/hentPerson-response.json @@ -13,12 +13,19 @@ } } ], - "foedsel": [ + "foedselsdato": [ { "foedselsdato": "1986-11-26", "foedselsaar": "1986" } ], + "foedested": [ + { + "foedeland": "NOR", + "foedested": "Oslo", + "foedekommune": "Oslo" + } + ], "opphold": [ { "oppholdFra": "2010-01-20", diff --git a/lib/pdl-client/src/test/resources/hentPersonBolk-response.json b/lib/pdl-client/src/test/resources/hentPersonBolk-response.json index 815e2f77..db2ee56a 100644 --- a/lib/pdl-client/src/test/resources/hentPersonBolk-response.json +++ b/lib/pdl-client/src/test/resources/hentPersonBolk-response.json @@ -16,12 +16,19 @@ } } ], - "foedsel": [ + "foedselsdato": [ { "foedselsdato": "1986-11-26", "foedselsaar": "1986" } ], + "foedested": [ + { + "foedeland": "NOR", + "foedested": "Oslo", + "foedekommune": "Oslo" + } + ], "opphold": [ { "oppholdFra": "2010-01-20",