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 96c9b5b5..bd98ffcf 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 @@ -57,6 +57,7 @@ class RequestValidator( adreseOpplysning(person.bostedsadresse.firstOrNull()) + euEoesStatsborgerOpplysning(person.statsborgerskap) + gbrStatsborgerOpplysning(person.statsborgerskap) + + norskStatsborgerOpplysning(person.statsborgerskap) + forenkletFregOpplysning(person.folkeregisterpersonstatus) + oppholdstillatelseOpplysning(person.opphold.firstOrNull()) + utflyttingOpplysning(person.innflyttingTilNorge, person.utflyttingFraNorge) diff --git a/apps/api-start-stopp-perioder/src/main/kotlin/no/nav/paw/arbeidssokerregisteret/routes/StartStoppResultatMapping.kt b/apps/api-start-stopp-perioder/src/main/kotlin/no/nav/paw/arbeidssokerregisteret/routes/StartStoppResultatMapping.kt index 283168fa..1b9a2729 100644 --- a/apps/api-start-stopp-perioder/src/main/kotlin/no/nav/paw/arbeidssokerregisteret/routes/StartStoppResultatMapping.kt +++ b/apps/api-start-stopp-perioder/src/main/kotlin/no/nav/paw/arbeidssokerregisteret/routes/StartStoppResultatMapping.kt @@ -69,6 +69,7 @@ fun opplysningTilApiOpplysning(opplysning: Opplysning): ApiOpplysning = DomeneOpplysning.UkjentFoedselsdato -> ApiOpplysning.UKJENT_FOEDSELSDATO DomeneOpplysning.UkjentForenkletFregStatus -> ApiOpplysning.UKJENT_FORENKLET_FREG_STATUS DomeneOpplysning.UkjentStatusForOppholdstillatelse -> ApiOpplysning.UKJENT_STATUS_FOR_OPPHOLDSTILLATELSE + DomeneOpplysning.ErNorskStatsborger -> ApiOpplysning.ER_NORSK_STATSBORGER } is AuthOpplysning -> when (opplysning) { AuthOpplysning.IkkeSammeSomInnloggerBruker -> ApiOpplysning.IKKE_SAMME_SOM_INNLOGGER_BRUKER diff --git a/apps/api-start-stopp-perioder/src/main/resources/openapi/startstopp.yaml b/apps/api-start-stopp-perioder/src/main/resources/openapi/startstopp.yaml index fdb5007b..b8c20faa 100644 --- a/apps/api-start-stopp-perioder/src/main/resources/openapi/startstopp.yaml +++ b/apps/api-start-stopp-perioder/src/main/resources/openapi/startstopp.yaml @@ -223,6 +223,7 @@ components: - "INGEN_FLYTTE_INFORMASJON" - "ER_GBR_STATSBORGER" - "ER_EU_EOES_STATSBORGER" + - "ER_NORSK_STATSBORGER" - "UKJENT_OPPLYSNING" ApiRegelId: type: "string" 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 34e83e0a..f941b49e 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 @@ -64,7 +64,8 @@ data object NorskBrukerBosattINorge: TestCase { Opplysning.SISTE_FLYTTING_VAR_INN_TIL_NORGE, Opplysning.IKKE_ANSATT, Opplysning.SAMME_SOM_INNLOGGET_BRUKER, - Opplysning.INGEN_INFORMASJON_OM_OPPHOLDSTILLATELSE + Opplysning.INGEN_INFORMASJON_OM_OPPHOLDSTILLATELSE, + Opplysning.ER_NORSK_STATSBORGER ) ) ) diff --git a/domain/arbeidssoeker-regler/src/main/kotlin/no/nav/paw/arbeidssokerregisteret/application/RegelExtensions.kt b/domain/arbeidssoeker-regler/src/main/kotlin/no/nav/paw/arbeidssokerregisteret/application/RegelExtensions.kt index 01f46c66..297ef84d 100644 --- a/domain/arbeidssoeker-regler/src/main/kotlin/no/nav/paw/arbeidssokerregisteret/application/RegelExtensions.kt +++ b/domain/arbeidssoeker-regler/src/main/kotlin/no/nav/paw/arbeidssokerregisteret/application/RegelExtensions.kt @@ -54,4 +54,5 @@ fun domeneOpplysningTilHendelseOpplysning(opplysning: DomeneOpplysning): Hendels DomeneOpplysning.UkjentFoedselsdato -> HendelseOpplysning.UKJENT_FOEDSELSDATO DomeneOpplysning.UkjentForenkletFregStatus -> HendelseOpplysning.UKJENT_FORENKLET_FREG_STATUS DomeneOpplysning.UkjentStatusForOppholdstillatelse -> HendelseOpplysning.UKJENT_STATUS_FOR_OPPHOLDSTILLATELSE + DomeneOpplysning.ErNorskStatsborger -> HendelseOpplysning.ER_NORSK_STATSBORGER } diff --git a/domain/arbeidssoeker-regler/src/main/kotlin/no/nav/paw/arbeidssokerregisteret/application/opplysninger/GbrStatsborgerOpplysning.kt b/domain/arbeidssoeker-regler/src/main/kotlin/no/nav/paw/arbeidssokerregisteret/application/opplysninger/GbrStatsborgerOpplysning.kt deleted file mode 100644 index fdc6a7f3..00000000 --- a/domain/arbeidssoeker-regler/src/main/kotlin/no/nav/paw/arbeidssokerregisteret/application/opplysninger/GbrStatsborgerOpplysning.kt +++ /dev/null @@ -1,10 +0,0 @@ -package no.nav.paw.arbeidssokerregisteret.application.opplysninger - -import no.nav.paw.pdl.graphql.generated.hentperson.Statsborgerskap -import no.nav.paw.arbeidssokerregisteret.application.opplysninger.DomeneOpplysning.* - -fun gbrStatsborgerOpplysning(statsborgerskap: List): Set = - statsborgerskap.map { it.land.uppercase() } - .any { it == "GBR" } - .let { return if (it) setOf(ErGbrStatsborger) else emptySet() } - diff --git a/domain/arbeidssoeker-regler/src/main/kotlin/no/nav/paw/arbeidssokerregisteret/application/opplysninger/Opplysninger.kt b/domain/arbeidssoeker-regler/src/main/kotlin/no/nav/paw/arbeidssokerregisteret/application/opplysninger/Opplysninger.kt index 2b4cd132..76859115 100644 --- a/domain/arbeidssoeker-regler/src/main/kotlin/no/nav/paw/arbeidssokerregisteret/application/opplysninger/Opplysninger.kt +++ b/domain/arbeidssoeker-regler/src/main/kotlin/no/nav/paw/arbeidssokerregisteret/application/opplysninger/Opplysninger.kt @@ -34,6 +34,11 @@ sealed interface DomeneOpplysning: Opplysning { override val beskrivelse = "Personen start/stopp av periode utføres på er britisk statsborger" } + data object ErNorskStatsborger: DomeneOpplysning, Effect.Positive { + override val id = "ER_NORSK_STATSBORGER" + override val beskrivelse = "Personen start/stopp av periode utføres på er norsk statsborger" + } + data object UkjentFoedselsdato : DomeneOpplysning, Effect.Negative { override val id = "UKJENT_FOEDSELSDATO" override val beskrivelse = "Personen start/stopp av periode utføres på har ukjent fødselsdato" diff --git a/domain/arbeidssoeker-regler/src/main/kotlin/no/nav/paw/arbeidssokerregisteret/application/opplysninger/EuEoesStatsborgerOpplysning.kt b/domain/arbeidssoeker-regler/src/main/kotlin/no/nav/paw/arbeidssokerregisteret/application/opplysninger/StatsborgerOpplysninger.kt similarity index 63% rename from domain/arbeidssoeker-regler/src/main/kotlin/no/nav/paw/arbeidssokerregisteret/application/opplysninger/EuEoesStatsborgerOpplysning.kt rename to domain/arbeidssoeker-regler/src/main/kotlin/no/nav/paw/arbeidssokerregisteret/application/opplysninger/StatsborgerOpplysninger.kt index 713c7532..a0eb2c8d 100644 --- a/domain/arbeidssoeker-regler/src/main/kotlin/no/nav/paw/arbeidssokerregisteret/application/opplysninger/EuEoesStatsborgerOpplysning.kt +++ b/domain/arbeidssoeker-regler/src/main/kotlin/no/nav/paw/arbeidssokerregisteret/application/opplysninger/StatsborgerOpplysninger.kt @@ -3,6 +3,16 @@ package no.nav.paw.arbeidssokerregisteret.application.opplysninger import no.nav.paw.pdl.graphql.generated.hentperson.Statsborgerskap import no.nav.paw.arbeidssokerregisteret.application.opplysninger.DomeneOpplysning.* +fun gbrStatsborgerOpplysning(statsborgerskap: List): Set = + statsborgerskap.map { it.land.uppercase() } + .any { it == "GBR" } + .let { return if (it) setOf(ErGbrStatsborger) else emptySet() } + +fun norskStatsborgerOpplysning(statsborgerskap: List): Set = + statsborgerskap.map { it.land.uppercase() } + .any { it == "NOR" } + .let { return if (it) setOf(ErNorskStatsborger) else emptySet() } + fun euEoesStatsborgerOpplysning(statsborgerskap: List): Set = statsborgerskap.map { it.land.uppercase() } .any { it in eea } diff --git a/domain/arbeidssoeker-regler/src/test/kotlin/no/nav/paw/arbeidssokerregisteret/application/NorskStatsborgerTest.kt b/domain/arbeidssoeker-regler/src/test/kotlin/no/nav/paw/arbeidssokerregisteret/application/NorskStatsborgerTest.kt new file mode 100644 index 00000000..fe33091c --- /dev/null +++ b/domain/arbeidssoeker-regler/src/test/kotlin/no/nav/paw/arbeidssokerregisteret/application/NorskStatsborgerTest.kt @@ -0,0 +1,35 @@ +package no.nav.paw.arbeidssokerregisteret.application + +import io.kotest.core.spec.style.FreeSpec +import io.kotest.matchers.collections.shouldContain +import no.nav.paw.arbeidssokerregisteret.application.opplysninger.DomeneOpplysning.ErNorskStatsborger +import no.nav.paw.arbeidssokerregisteret.application.opplysninger.norskStatsborgerOpplysning +import no.nav.paw.pdl.graphql.generated.hentperson.Metadata +import no.nav.paw.pdl.graphql.generated.hentperson.Statsborgerskap + +class NorskStatsborgerTest : FreeSpec({ + "Test for NOR statsborgere" - { + "bare et statsborgerskap" { + val statsborgerskap = Statsborgerskap("NOR", Metadata(emptyList())) + norskStatsborgerOpplysning(listOf(statsborgerskap)) shouldContain ErNorskStatsborger + } + "flere statsborgerskap" { + val statsborgerskap0 = Statsborgerskap("GBR", Metadata(emptyList())) + val statsborgerskap1 = Statsborgerskap("NOR", Metadata(emptyList())) + val statsborgerskap2 = Statsborgerskap("USA", Metadata(emptyList())) + norskStatsborgerOpplysning( + listOf( + statsborgerskap0, + statsborgerskap1, + statsborgerskap2 + ) + ) shouldContain ErNorskStatsborger + } + } + "Test for ikke NOR statsborgere" - { + val statsborgerskap = Statsborgerskap("NOR", Metadata(emptyList())) + "Statsborgerskap: ${statsborgerskap.land} er ikke NOR" { + norskStatsborgerOpplysning(listOf(statsborgerskap)).isEmpty() + } + } +}) diff --git a/domain/interne-hendelser/src/main/kotlin/no/nav/paw/arbeidssokerregisteret/intern/v1/vo/Opplysning.kt b/domain/interne-hendelser/src/main/kotlin/no/nav/paw/arbeidssokerregisteret/intern/v1/vo/Opplysning.kt index 98fe8d39..6f7caae6 100644 --- a/domain/interne-hendelser/src/main/kotlin/no/nav/paw/arbeidssokerregisteret/intern/v1/vo/Opplysning.kt +++ b/domain/interne-hendelser/src/main/kotlin/no/nav/paw/arbeidssokerregisteret/intern/v1/vo/Opplysning.kt @@ -36,6 +36,7 @@ enum class Opplysning { INGEN_FLYTTE_INFORMASJON, ER_EU_EOES_STATSBORGER, ER_GBR_STATSBORGER, + ER_NORSK_STATSBORGER, @JsonEnumDefaultValue UKJENT_OPPLYSNING } \ No newline at end of file