From 6022decbc74325065e5d44a5cabf7c3726e8d47c Mon Sep 17 00:00:00 2001 From: Ramin Esfandiari Date: Thu, 19 Sep 2024 12:44:12 +0200 Subject: [PATCH 1/5] =?UTF-8?q?St=C3=B8tter=20journalf=C3=B8ring=20av=20s?= =?UTF-8?q?=C3=B8knad=20om=20ungdomsytelse.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit De nye endepunktene er togglet av i prod. Se prod-gcp.json. Diverse refaktoreringer: - Flytter urlPath på endepunktene inn i enum Søknadstype. - Erstatter manuelle tester med ParameterizedTest og MethodSource for å automatiske teste hver Søknadstype. --- build.gradle.kts | 2 + nais/prod-gcp.json | 4 +- .../journalforing/api/JournalforingApis.kt | 44 ++-- .../helse/journalforing/v1/JournalpostInfo.kt | 13 + .../nav/helse/journalforing/v1/MetadataV1.kt | 45 ++-- .../nav/helse/DokarkivResponseTransformer.kt | 2 + src/test/kotlin/no/nav/helse/K9JoarkTest.kt | 232 ++++-------------- .../no/nav/helse/S\303\270knadstypeTest.kt" | 2 + .../journalforing/v1/BrevkodeTittelOgTema.kt | 19 +- .../journalforing/v1/JournalpostinfoTest.kt | 4 +- 10 files changed, 140 insertions(+), 227 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 27a32dd..e4d7e78 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -9,6 +9,7 @@ val jsonassertVersion = "1.5.3" val fuelVersion = "2.3.1" val tokenSupportVersion = "5.0.3" val mockOauth2ServerVersion = "2.1.9" +val junitVersion = "5.9.3" val mainClass = "no.nav.helse.K9JoarkKt" @@ -49,6 +50,7 @@ dependencies { exclude(group = "org.jetbrains.kotlinx", module = "kotlinx-coroutines-core") } testImplementation("org.jetbrains.kotlin:kotlin-test-junit5") + testImplementation("org.junit.jupiter:junit-jupiter-params:$junitVersion") testImplementation("org.skyscreamer:jsonassert:$jsonassertVersion") testImplementation("no.nav.security:mock-oauth2-server:$mockOauth2ServerVersion") } diff --git a/nais/prod-gcp.json b/nais/prod-gcp.json index 3266db6..303d2fc 100644 --- a/nais/prod-gcp.json +++ b/nais/prod-gcp.json @@ -19,7 +19,9 @@ "ENABLE_OMSORGSPENGESKNAD_UTBETALING_FRILANSER_SELVSTENDIG": "true", "ENABLE_OMSORGSPENGESKNAD_UTBETALING_ARBEIDSTAKER": "true", "ENABLE_OMSORGSPENGESKNAD_MIDLERTIDIG_ALENE": "true", - "ENABLE_OPPLRINGSPENGESKNAD": "false" + "ENABLE_OPPLRINGSPENGESKNAD": "false", + "ENABLE_UNGDOMSYTELSE_SØKNAD": "false", + "ENABLE_UNGDOMSYTELSE_ENDRINGSSØKNAD": "false" }, "slack-channel": "sif-alerts", "slack-notify-type": " | k9-joark | ", diff --git a/src/main/kotlin/no/nav/helse/journalforing/api/JournalforingApis.kt b/src/main/kotlin/no/nav/helse/journalforing/api/JournalforingApis.kt index 118dbeb..1bfec3b 100644 --- a/src/main/kotlin/no/nav/helse/journalforing/api/JournalforingApis.kt +++ b/src/main/kotlin/no/nav/helse/journalforing/api/JournalforingApis.kt @@ -38,44 +38,44 @@ fun Route.journalforingApis(journalforingV1Service: JournalforingV1Service) { } } - post("/v1/pleiepenge/journalforing") { + post(PLEIEPENGESØKNAD.urlPath) { val melding = call.receive() val metadata = call.genererMetadata(PLEIEPENGESØKNAD) journalfør(melding, metadata) } - post("/v1/pleiepenge/endringsmelding/journalforing") { + post(PLEIEPENGESØKNAD_ENDRINGSMELDING.urlPath) { val melding = call.receive() val metadata = call.genererMetadata(PLEIEPENGESØKNAD_ENDRINGSMELDING) journalfør(melding, metadata) } - post("/v1/pleiepenge/ettersending/journalforing") { + post(PLEIEPENGESØKNAD_ETTERSENDING.urlPath) { val melding = call.receive() val metadata = call.genererMetadata(PLEIEPENGESØKNAD_ETTERSENDING) journalfør(melding, metadata) } - post("/v1/pleiepenge/livets-sluttfase/journalforing") { + post(PLEIEPENGESØKNAD_LIVETS_SLUTTFASE.urlPath) { val melding = call.receive() val metadata = call.genererMetadata(PLEIEPENGESØKNAD_LIVETS_SLUTTFASE) journalfør(melding, metadata) } - post("/v1/pleiepenge/livets-sluttfase/ettersending/journalforing") { + post(PLEIEPENGESØKNAD_LIVETS_SLUTTFASE_ETTERSENDING.urlPath) { val melding = call.receive() val metadata = call.genererMetadata(PLEIEPENGESØKNAD_LIVETS_SLUTTFASE_ETTERSENDING) journalfør(melding, metadata) } - post("/v1/omsorgspenge/journalforing") { + post(OMSORGSPENGESØKNAD.urlPath) { val melding = call.receive() val metadata = call.genererMetadata(OMSORGSPENGESØKNAD) journalfør(melding, metadata) } - post("/v1/omsorgspenge/ettersending/journalforing") { + post(OMSORGSPENGESØKNAD_ETTERSENDING.urlPath) { val melding = call.receive() val metadata = call.genererMetadata(OMSORGSPENGESØKNAD_ETTERSENDING) journalfør(melding, metadata) @@ -113,59 +113,71 @@ fun Route.journalforingApis(journalforingV1Service: JournalforingV1Service) { } } - post("/v1/omsorgsdageroverforing/journalforing") { + post(OMSORGSPENGESØKNAD_OVERFØRING_AV_DAGER.urlPath) { val melding = call.receive() val metadata = call.genererMetadata(OMSORGSPENGESØKNAD_OVERFØRING_AV_DAGER) journalfør(melding, metadata) } - post("/v1/omsorgsdagerdeling/journalforing") { + post(OMSORGSPENGEMELDING_DELING_AV_DAGER.urlPath) { val melding = call.receive() val metadata = call.genererMetadata(OMSORGSPENGEMELDING_DELING_AV_DAGER) journalfør(melding, metadata) } - post("/v1/omsorgsdagerdeling/ettersending/journalforing") { + post(OMSORGSPENGEMELDING_DELING_AV_DAGER_ETTERSENDING.urlPath) { val melding = call.receive() val metadata = call.genererMetadata(OMSORGSPENGEMELDING_DELING_AV_DAGER_ETTERSENDING) journalfør(melding, metadata) } - post("/v1/opplæringspenge/journalforing") { + post(OPPLÆRINGSPENGESØKNAD.urlPath) { val melding = call.receive() val metadata = call.genererMetadata(OPPLÆRINGSPENGESØKNAD) journalfør(melding, metadata) } - post("/v1/frisinn/journalforing") { + post(FRISINNSØKNAD.urlPath) { val melding = call.receive() val metadata = call.genererMetadata(FRISINNSØKNAD) journalfør(melding, metadata) } - post("/v1/omsorgspenger/midlertidig-alene/journalforing") { + post(OMSORGSPENGESØKNAD_MIDLERTIDIG_ALENE.urlPath) { val melding = call.receive() val metadata = call.genererMetadata(OMSORGSPENGESØKNAD_MIDLERTIDIG_ALENE) journalfør(melding, metadata) } - post("/v1/omsorgspenger/midlertidig-alene/ettersending/journalforing") { + post(OMSORGSPENGESØKNAD_MIDLERTIDIG_ALENE_ETTERSENDING.urlPath) { val melding = call.receive() val metadata = call.genererMetadata(OMSORGSPENGESØKNAD_MIDLERTIDIG_ALENE_ETTERSENDING) journalfør(melding, metadata) } - post("/v1/omsorgsdager/aleneomsorg/journalforing") { + post(OMSORGSDAGER_ALENEOMSORG.urlPath) { val melding = call.receive() val metadata = call.genererMetadata(OMSORGSDAGER_ALENEOMSORG) journalfør(melding, metadata) } - post("/v1/omsorgsdager/aleneomsorg/ettersending/journalforing") { + post(OMSORGSDAGER_ALENEOMSORG_ETTERSENDING.urlPath) { val melding = call.receive() val metadata = call.genererMetadata(OMSORGSDAGER_ALENEOMSORG_ETTERSENDING) journalfør(melding, metadata) } + + post(UNGDOMSYTELSE_SØKNAD.urlPath) { + val melding = call.receive() + val metadata = call.genererMetadata(UNGDOMSYTELSE_SØKNAD) + journalfør(melding, metadata) + } + + post(UNGDOMSYTELSE_ENDRINGSSØKNAD.urlPath) { + val melding = call.receive() + val metadata = call.genererMetadata(UNGDOMSYTELSE_ENDRINGSSØKNAD) + journalfør(melding, metadata) + } } private fun ApplicationCall.genererMetadata(søknadstype: Søknadstype, version: Int = 1) = MetadataV1( diff --git a/src/main/kotlin/no/nav/helse/journalforing/v1/JournalpostInfo.kt b/src/main/kotlin/no/nav/helse/journalforing/v1/JournalpostInfo.kt index 4ad620f..348a19e 100644 --- a/src/main/kotlin/no/nav/helse/journalforing/v1/JournalpostInfo.kt +++ b/src/main/kotlin/no/nav/helse/journalforing/v1/JournalpostInfo.kt @@ -31,6 +31,7 @@ internal data class Journalpostinfo( internal companion object { private val Kapittel9Ytelse = Tema("OMS") private val FrilansereOgSelvstendigNæringdrivendesInntektskompensasjon = Tema("FRI") + private val Ungdomsytelse = Tema("UNG") private val journalpostinfo = mapOf( Søknadstype.PLEIEPENGESØKNAD to Journalpostinfo( @@ -152,6 +153,18 @@ internal data class Journalpostinfo( tittel = "Søknad om inntektskompensasjon for frilansere og selvstendig næringdrivende - NAV 00-03.02", tema = FrilansereOgSelvstendigNæringdrivendesInntektskompensasjon, innsendingstype = Innsendingstype.SØKNAD + ), + Søknadstype.UNGDOMSYTELSE_SØKNAD to Journalpostinfo( + brevkode = BrevKode(brevKode = "UNG Søknad", dokumentKategori = "SOK"), + tittel = "Søknad om ungdomsytelse - UNG Søknad", + tema = Ungdomsytelse, + innsendingstype = Innsendingstype.SØKNAD + ), + Søknadstype.UNGDOMSYTELSE_ENDRINGSSØKNAD to Journalpostinfo( + brevkode = BrevKode(brevKode = "UNG Endringssøknad", dokumentKategori = "SOK"), + tittel = "Endringssøknad for ungdomsytelsen - UNG Endringssøknad", + tema = Ungdomsytelse, + innsendingstype = Innsendingstype.SØKNAD ) ) internal fun Søknadstype.somJournalpostinfo() = journalpostinfo[this] diff --git a/src/main/kotlin/no/nav/helse/journalforing/v1/MetadataV1.kt b/src/main/kotlin/no/nav/helse/journalforing/v1/MetadataV1.kt index ed842ff..cd99eba 100644 --- a/src/main/kotlin/no/nav/helse/journalforing/v1/MetadataV1.kt +++ b/src/main/kotlin/no/nav/helse/journalforing/v1/MetadataV1.kt @@ -7,27 +7,30 @@ data class MetadataV1( val søknadstype : Søknadstype ) -enum class Søknadstype { - PLEIEPENGESØKNAD, - PLEIEPENGESØKNAD_ENDRINGSMELDING, - PLEIEPENGESØKNAD_ETTERSENDING, - PLEIEPENGESØKNAD_LIVETS_SLUTTFASE, - PLEIEPENGESØKNAD_LIVETS_SLUTTFASE_ETTERSENDING, - OMSORGSPENGESØKNAD, - OMSORGSPENGESØKNAD_ETTERSENDING, - OMSORGSPENGESØKNAD_UTBETALING_FRILANSER_SELVSTENDIG, - OMSORGSPENGESØKNAD_UTBETALING_FRILANSER_SELVSTENDIG_ETTERSENDING, - OMSORGSPENGESØKNAD_UTBETALING_ARBEIDSTAKER_ETTERSENDING, - OMSORGSPENGESØKNAD_UTBETALING_ARBEIDSTAKER, - OMSORGSPENGESØKNAD_OVERFØRING_AV_DAGER, - OMSORGSPENGEMELDING_DELING_AV_DAGER, - OMSORGSPENGEMELDING_DELING_AV_DAGER_ETTERSENDING, - OMSORGSPENGESØKNAD_MIDLERTIDIG_ALENE, - OMSORGSPENGESØKNAD_MIDLERTIDIG_ALENE_ETTERSENDING, - OMSORGSDAGER_ALENEOMSORG, - OMSORGSDAGER_ALENEOMSORG_ETTERSENDING, - OPPLÆRINGSPENGESØKNAD, - FRISINNSØKNAD; +enum class Søknadstype(val urlPath: String) { + PLEIEPENGESØKNAD("/v1/pleiepenge/journalforing"), + PLEIEPENGESØKNAD_ENDRINGSMELDING("/v1/pleiepenge/endringsmelding/journalforing"), + PLEIEPENGESØKNAD_ETTERSENDING("/v1/pleiepenge/ettersending/journalforing"), + PLEIEPENGESØKNAD_LIVETS_SLUTTFASE("/v1/pleiepenge/livets-sluttfase/journalforing"), + PLEIEPENGESØKNAD_LIVETS_SLUTTFASE_ETTERSENDING("/v1/pleiepenge/livets-sluttfase/ettersending/journalforing"), + OMSORGSPENGESØKNAD("/v1/omsorgspenge/journalforing"), + OMSORGSPENGESØKNAD_ETTERSENDING("/v1/omsorgspenge/ettersending/journalforing"), + OMSORGSPENGESØKNAD_UTBETALING_FRILANSER_SELVSTENDIG("/v1/omsorgspengeutbetaling/journalforing"), + OMSORGSPENGESØKNAD_UTBETALING_FRILANSER_SELVSTENDIG_ETTERSENDING("/v1/omsorgspengeutbetaling/ettersending/journalforing"), + OMSORGSPENGESØKNAD_UTBETALING_ARBEIDSTAKER("/v1/omsorgspengeutbetaling/journalforing"), + OMSORGSPENGESØKNAD_UTBETALING_ARBEIDSTAKER_ETTERSENDING("/v1/omsorgspengeutbetaling/ettersending/journalforing"), + OMSORGSPENGESØKNAD_OVERFØRING_AV_DAGER("/v1/omsorgsdageroverforing/journalforing"), + OMSORGSPENGEMELDING_DELING_AV_DAGER("/v1/omsorgsdagerdeling/journalforing"), + OMSORGSPENGEMELDING_DELING_AV_DAGER_ETTERSENDING("/v1/omsorgsdagerdeling/ettersending/journalforing"), + OMSORGSPENGESØKNAD_MIDLERTIDIG_ALENE("/v1/omsorgspenger/midlertidig-alene/journalforing"), + OMSORGSPENGESØKNAD_MIDLERTIDIG_ALENE_ETTERSENDING("/v1/omsorgspenger/midlertidig-alene/ettersending/journalforing"), + OMSORGSDAGER_ALENEOMSORG("/v1/omsorgsdager/aleneomsorg/journalforing"), + OMSORGSDAGER_ALENEOMSORG_ETTERSENDING("/v1/omsorgsdager/aleneomsorg/ettersending/journalforing"), + OPPLÆRINGSPENGESØKNAD("/v1/opplæringspenge/journalforing"), + FRISINNSØKNAD("/v1/frisinn/journalforing"), + UNGDOMSYTELSE_SØKNAD("/v1/ungdomsytelse/soknad/journalforing"), + UNGDOMSYTELSE_ENDRINGSSØKNAD("/v1/ungdomsytelse/endringssoknad/journalforing") + ; internal companion object { private val norskeBokstaver = "[ÆØÅ]".toRegex() diff --git a/src/test/kotlin/no/nav/helse/DokarkivResponseTransformer.kt b/src/test/kotlin/no/nav/helse/DokarkivResponseTransformer.kt index bf8278f..2364e90 100644 --- a/src/test/kotlin/no/nav/helse/DokarkivResponseTransformer.kt +++ b/src/test/kotlin/no/nav/helse/DokarkivResponseTransformer.kt @@ -33,6 +33,8 @@ internal class DokarkivResponseTransformer : ResponseTransformerV2 { requestEntity.contains("NAV 09-12.05") && "OMS" == tema -> "16" requestEntity.contains("NAVe 09-12.05") && "OMS" == tema -> "17" requestEntity.contains("NAVe 09-06.10") && "OMS" == tema -> "18" + requestEntity.contains("UNG Søknad") && "UNG" == tema -> "19" + requestEntity.contains("UNG Endringssøknad") && "UNG" == tema -> "20" else -> throw IllegalArgumentException("Ikke støttet brevkode.") } diff --git a/src/test/kotlin/no/nav/helse/K9JoarkTest.kt b/src/test/kotlin/no/nav/helse/K9JoarkTest.kt index dabe518..7231369 100644 --- a/src/test/kotlin/no/nav/helse/K9JoarkTest.kt +++ b/src/test/kotlin/no/nav/helse/K9JoarkTest.kt @@ -9,9 +9,12 @@ import io.ktor.server.testing.* import no.nav.helse.dusseldorf.testsupport.wiremock.WireMockBuilder import no.nav.helse.journalforing.v1.MeldingV1 import no.nav.helse.journalforing.v1.Navn +import no.nav.helse.journalforing.v1.Søknadstype import no.nav.security.mock.oauth2.MockOAuth2Server import org.junit.jupiter.api.AfterAll import org.junit.jupiter.api.BeforeAll +import org.junit.jupiter.params.ParameterizedTest +import org.junit.jupiter.params.provider.MethodSource import org.skyscreamer.jsonassert.JSONAssert import org.slf4j.Logger import org.slf4j.LoggerFactory @@ -21,7 +24,7 @@ import kotlin.test.assertEquals class K9JoarkTest { - private companion object { + companion object { private val logger: Logger = LoggerFactory.getLogger(K9JoarkTest::class.java) private val mockOAuth2Server = MockOAuth2Server().apply { start() } private val wireMockServer: WireMockServer = WireMockBuilder() @@ -74,6 +77,44 @@ class K9JoarkTest { mockOAuth2Server.shutdown() logger.info("Tear down complete") } + + @JvmStatic + fun søknaderForJournalføring(): List { + return Søknadstype.entries.map { + // Id må matche med no/nav/helse/DokarkivResponseTransformer.kt:17 + val (urlPath, forventetJournalpostId) = when (it) { + Søknadstype.PLEIEPENGESØKNAD -> it.urlPath to "1" + Søknadstype.PLEIEPENGESØKNAD_ENDRINGSMELDING -> it.urlPath to "1" + Søknadstype.OMSORGSPENGESØKNAD -> it.urlPath to "2" + Søknadstype.OMSORGSPENGESØKNAD_UTBETALING_FRILANSER_SELVSTENDIG -> it.urlPath + "?arbeidstype=frilanser&arbeidstype=selvstendig-naeringsdrivende" to "3" + Søknadstype.OMSORGSPENGESØKNAD_UTBETALING_ARBEIDSTAKER -> it.urlPath + "?arbeidstype=arbeidstaker" to "4" + Søknadstype.OMSORGSPENGESØKNAD_OVERFØRING_AV_DAGER -> it.urlPath to "5" + Søknadstype.OMSORGSPENGEMELDING_DELING_AV_DAGER -> it.urlPath to "5" + Søknadstype.OPPLÆRINGSPENGESØKNAD -> it.urlPath to "6" + Søknadstype.FRISINNSØKNAD -> it.urlPath to "7" + Søknadstype.OMSORGSPENGESØKNAD_MIDLERTIDIG_ALENE -> it.urlPath to "8" + Søknadstype.PLEIEPENGESØKNAD_ETTERSENDING -> it.urlPath to "9" + Søknadstype.OMSORGSPENGESØKNAD_ETTERSENDING -> it.urlPath to "10" + Søknadstype.OMSORGSPENGESØKNAD_UTBETALING_FRILANSER_SELVSTENDIG_ETTERSENDING -> it.urlPath + "?arbeidstype=frilanser&arbeidstype=selvstendig-naeringsdrivende" to "11" + Søknadstype.OMSORGSPENGESØKNAD_UTBETALING_ARBEIDSTAKER_ETTERSENDING -> it.urlPath + "?arbeidstype=arbeidstaker" to "12" + Søknadstype.OMSORGSPENGESØKNAD_MIDLERTIDIG_ALENE_ETTERSENDING -> it.urlPath to "13" + Søknadstype.OMSORGSPENGEMELDING_DELING_AV_DAGER_ETTERSENDING -> it.urlPath to "14" + Søknadstype.OMSORGSDAGER_ALENEOMSORG -> it.urlPath to "15" + Søknadstype.PLEIEPENGESØKNAD_LIVETS_SLUTTFASE -> it.urlPath to "16" + Søknadstype.PLEIEPENGESØKNAD_LIVETS_SLUTTFASE_ETTERSENDING -> it.urlPath to "17" + Søknadstype.OMSORGSDAGER_ALENEOMSORG_ETTERSENDING -> it.urlPath to "18" + Søknadstype.UNGDOMSYTELSE_SØKNAD -> it.urlPath to "19" + Søknadstype.UNGDOMSYTELSE_ENDRINGSSØKNAD -> it.urlPath to "20" + } + + Journalføring(urlPath, forventetJournalpostId) + } + } + + data class Journalføring( + val urlPath: String, + val forventetJournalpostId: String + ) } @Test @@ -94,15 +135,6 @@ class K9JoarkTest { } } - @Test - fun `Journalpost for pleiepengesøknad`() { - requestAndAssert( - request = meldingForJournalføring(), - expectedResponse = """{"journal_post_id":"1"}""".trimIndent(), - expectedCode = HttpStatusCode.Created - ) - } - @Test fun `Journalpost for pleiepengesøknad med 409 conflict skal ikke feile`() { wireMockServer.stubMottaInngaaendeForsendelseOk(409) @@ -114,184 +146,14 @@ class K9JoarkTest { wireMockServer.stubMottaInngaaendeForsendelseOk() } - - @Test - fun `Journalpost for endringsmelding pleiepengesøknad`() { - requestAndAssert( - request = meldingForJournalføring(), - expectedResponse = """{"journal_post_id":"1"}""".trimIndent(), - expectedCode = HttpStatusCode.Created, - uri = "/v1/pleiepenge/endringsmelding/journalforing" - ) - } - - @Test - fun `Journalpost for pleiepenger livets sluttfase`() { - requestAndAssert( - request = meldingForJournalføring(), - expectedResponse = """{"journal_post_id":"16"}""".trimIndent(), - expectedCode = HttpStatusCode.Created, - uri = "/v1/pleiepenge/livets-sluttfase/journalforing" - ) - } - - @Test - fun `Journalpost for pleiepenger livets sluttfase ettersending`() { - requestAndAssert( - request = meldingForJournalføring(), - expectedResponse = """{"journal_post_id":"17"}""".trimIndent(), - expectedCode = HttpStatusCode.Created, - uri = "/v1/pleiepenge/livets-sluttfase/ettersending/journalforing" - ) - } - - @Test - fun `Journalpost for pleiepengesøknad ettersending`() { - requestAndAssert( - request = meldingForJournalføring(), - expectedResponse = """{"journal_post_id":"9"}""".trimIndent(), - expectedCode = HttpStatusCode.Created, - uri = "/v1/pleiepenge/ettersending/journalforing" - ) - } - - @Test - fun `Journalpost for omsorgpengesøknad`() { - requestAndAssert( - request = meldingForJournalføring(), - expectedResponse = """{"journal_post_id":"2"}""".trimIndent(), - expectedCode = HttpStatusCode.Created, - uri = "/v1/omsorgspenge/journalforing" - ) - } - - @Test - fun `Journalpost for omsorgpengesøknad ettersending`() { - requestAndAssert( - request = meldingForJournalføring(), - expectedResponse = """{"journal_post_id":"10"}""".trimIndent(), - expectedCode = HttpStatusCode.Created, - uri = "/v1/omsorgspenge/ettersending/journalforing" - ) - } - - @Test - fun `Journalpost for omsorgspengeutbetaling for frilansere og selvstendig næringsdrivende`() { - requestAndAssert( - request = meldingForJournalføring(), - expectedResponse = """{"journal_post_id":"3"}""".trimIndent(), - expectedCode = HttpStatusCode.Created, - uri = "/v1/omsorgspengeutbetaling/journalforing?arbeidstype=frilanser&arbeidstype=selvstendig-naeringsdrivende" - ) - } - - @Test - fun `Journalpost for omsorgspengeutbetaling ettersending for frilansere og selvstendig næringsdrivende`() { - requestAndAssert( - request = meldingForJournalføring(), - expectedResponse = """{"journal_post_id":"11"}""".trimIndent(), - expectedCode = HttpStatusCode.Created, - uri = "/v1/omsorgspengeutbetaling/ettersending/journalforing?arbeidstype=frilanser&arbeidstype=selvstendig-naeringsdrivende" - ) - } - - @Test - fun `Journalpost for omsorgpengesøknad for overføring av dager`() { - requestAndAssert( - request = meldingForJournalføring(), - expectedResponse = """{"journal_post_id":"5"}""".trimIndent(), - expectedCode = HttpStatusCode.Created, - uri = "/v1/omsorgsdageroverforing/journalforing" - ) - } - - @Test - fun `Journalpost for omsorgspengemelding for deling av dager`() { - requestAndAssert( - request = meldingForJournalføring(), - expectedResponse = """{"journal_post_id":"5"}""".trimIndent(), - expectedCode = HttpStatusCode.Created, - uri = "/v1/omsorgsdagerdeling/journalforing" - ) - } - - @Test - fun `Journalpost for omsorgspengemelding ettersending for deling av dager`() { - requestAndAssert( - request = meldingForJournalføring(), - expectedResponse = """{"journal_post_id":"14"}""".trimIndent(), - expectedCode = HttpStatusCode.Created, - uri = "/v1/omsorgsdagerdeling/ettersending/journalforing" - ) - } - - @Test - fun `Journalpost for omsorgspengeutbetaling for arbeidstakere`() { - requestAndAssert( - request = meldingForJournalføring(), - expectedResponse = """{"journal_post_id":"4"}""".trimIndent(), - expectedCode = HttpStatusCode.Created, - uri = "/v1/omsorgspengeutbetaling/journalforing?arbeidstype=arbeidstaker" - ) - } - - @Test - fun `Journalpost for omsorgspengeutbetaling ettersending for arbeidstakere`() { - requestAndAssert( - request = meldingForJournalføring(), - expectedResponse = """{"journal_post_id":"12"}""".trimIndent(), - expectedCode = HttpStatusCode.Created, - uri = "/v1/omsorgspengeutbetaling/ettersending/journalforing?arbeidstype=arbeidstaker" - ) - } - - @Test - fun `Journalpost for opplæringspengesøknad`() { - requestAndAssert( - request = meldingForJournalføring(), - expectedResponse = """{"journal_post_id":"6"}""".trimIndent(), - expectedCode = HttpStatusCode.Created, - uri = "/v1/opplæringspenge/journalforing" - ) - } - - @Test - fun `Journalpost for omsorgspenger - midlertidig alene`() { - requestAndAssert( - request = meldingForJournalføring(), - expectedResponse = """{"journal_post_id":"8"}""".trimIndent(), - expectedCode = HttpStatusCode.Created, - uri = "/v1/omsorgspenger/midlertidig-alene/journalforing" - ) - } - - @Test - fun `Journalpost for omsorgspenger ettersending - midlertidig alene`() { - requestAndAssert( - request = meldingForJournalføring(), - expectedResponse = """{"journal_post_id":"13"}""".trimIndent(), - expectedCode = HttpStatusCode.Created, - uri = "/v1/omsorgspenger/midlertidig-alene/ettersending/journalforing" - ) - } - - @Test - fun `Journalpost for omsorgsdager aleneomsorg`() { - requestAndAssert( - request = meldingForJournalføring(), - expectedResponse = """{"journal_post_id":"15"}""".trimIndent(), - expectedCode = HttpStatusCode.Created, - uri = "/v1/omsorgsdager/aleneomsorg/journalforing" - ) - } - - @Test - fun `Journalpost for omsorgsdager aleneomsorg ettersending`() { + @ParameterizedTest + @MethodSource("søknaderForJournalføring") + fun `Journalføring fungerer som forventet`(journalføring: Journalføring) { requestAndAssert( request = meldingForJournalføring(), - expectedResponse = """{"journal_post_id":"18"}""".trimIndent(), + expectedResponse = """{"journal_post_id":"${journalføring.forventetJournalpostId}"}""".trimIndent(), expectedCode = HttpStatusCode.Created, - uri = "/v1/omsorgsdager/aleneomsorg/ettersending/journalforing" + uri = journalføring.urlPath ) } diff --git "a/src/test/kotlin/no/nav/helse/S\303\270knadstypeTest.kt" "b/src/test/kotlin/no/nav/helse/S\303\270knadstypeTest.kt" index 1fd6e37..525ac43 100644 --- "a/src/test/kotlin/no/nav/helse/S\303\270knadstypeTest.kt" +++ "b/src/test/kotlin/no/nav/helse/S\303\270knadstypeTest.kt" @@ -48,6 +48,8 @@ internal class SøknadstypeTest { "ENABLE_FRISINNSKNAD" to "false", "ENABLE_OMSORGSDAGER_ALENEOMSORG" to "false", "ENABLE_OMSORGSDAGER_ALENEOMSORG_ETTERSENDING" to "false", + "ENABLE_UNGDOMSYTELSE_SØKNAD" to "false", + "ENABLE_UNGDOMSYTELSE_ENDRINGSSØKNAD" to "false", )) assertTrue(enabled.keys.toSet().containsAll(Søknadstype.entries.toSet())) assertTrue(enabled.values.none { it }) diff --git a/src/test/kotlin/no/nav/helse/journalforing/v1/BrevkodeTittelOgTema.kt b/src/test/kotlin/no/nav/helse/journalforing/v1/BrevkodeTittelOgTema.kt index 99043a9..83f4c6c 100644 --- a/src/test/kotlin/no/nav/helse/journalforing/v1/BrevkodeTittelOgTema.kt +++ b/src/test/kotlin/no/nav/helse/journalforing/v1/BrevkodeTittelOgTema.kt @@ -9,6 +9,7 @@ import no.nav.helse.journalforing.Tema internal object BrevkodeTittelOgTema { private val Kapittel9Ytelse = Tema("OMS") private val FrilansereOgSelvstendigNæringdrivendesInntektskompensasjon = Tema("FRI") + private val Ungomsytelse = Tema("UNG") private val PLEIEPENGER_BARN = Triple( BrevKode(brevKode = "NAV 09-11.05", dokumentKategori = "SOK"), @@ -53,7 +54,7 @@ internal object BrevkodeTittelOgTema { ) private val OMSORGSPENGER_UTBETALING_FRILANSER_OG_SELVSTENDIG_ETTERSENDING = Triple( - BrevKode(brevKode = "NAVe 09-35.01", dokumentKategori = "SOK"), + BrevKode(brevKode = "NAVe 09-35.02", dokumentKategori = "SOK"), "Søknad om utbetaling av omsorgsdager frilanser/selvstendig - NAVe 09-35.01", Kapittel9Ytelse ) @@ -124,7 +125,19 @@ internal object BrevkodeTittelOgTema { FrilansereOgSelvstendigNæringdrivendesInntektskompensasjon ) - internal fun hentFor(søknadstype: Søknadstype) = when (søknadstype) { + private val UNNGOMSYTELSE_SØKNAD = Triple( + BrevKode(brevKode = "UNG Søknad", dokumentKategori = "SOK"), + "Søknad om ungdomsytelse - Ung Søknad", + Ungomsytelse + ) + + private val UNNGOMSYTELSE_ENDRINGSSØKNAD = Triple( + BrevKode(brevKode = "UNG Endringssøknad", dokumentKategori = "SOK"), + "Endringssøknad for ungdomsytelsen - Ung Endringssøknad", + Ungomsytelse + ) + + internal fun hentFor(søknadstype: Søknadstype): Triple = when (søknadstype) { Søknadstype.PLEIEPENGESØKNAD, Søknadstype.PLEIEPENGESØKNAD_ENDRINGSMELDING -> PLEIEPENGER_BARN Søknadstype.PLEIEPENGESØKNAD_ETTERSENDING -> PLEIEPENGER_BARN_ETTERSENDING Søknadstype.PLEIEPENGESØKNAD_LIVETS_SLUTTFASE -> PLEIEPENGER_LIVETS_SLUTTFASE @@ -144,5 +157,7 @@ internal object BrevkodeTittelOgTema { Søknadstype.OMSORGSDAGER_ALENEOMSORG_ETTERSENDING -> OMSORGSDAGER_ALENEOMSORG_ETTERSENDING Søknadstype.OPPLÆRINGSPENGESØKNAD -> OPPLÆRINGSPENGER Søknadstype.FRISINNSØKNAD -> FRISINN + Søknadstype.UNGDOMSYTELSE_SØKNAD -> UNNGOMSYTELSE_SØKNAD + Søknadstype.UNGDOMSYTELSE_ENDRINGSSØKNAD -> UNNGOMSYTELSE_ENDRINGSSØKNAD } } diff --git a/src/test/kotlin/no/nav/helse/journalforing/v1/JournalpostinfoTest.kt b/src/test/kotlin/no/nav/helse/journalforing/v1/JournalpostinfoTest.kt index 52db44c..3b98693 100644 --- a/src/test/kotlin/no/nav/helse/journalforing/v1/JournalpostinfoTest.kt +++ b/src/test/kotlin/no/nav/helse/journalforing/v1/JournalpostinfoTest.kt @@ -8,7 +8,7 @@ internal class JournalpostinfoTest { @Test internal fun `journalpostinfo fra søknadstype`() { - Søknadstype.values().forEach { søknadstype -> + Søknadstype.entries.forEach { søknadstype -> val (brevkode, tittel, tema) = BrevkodeTittelOgTema.hentFor(søknadstype) val journalpostinfo = søknadstype.somJournalpostinfo() // Sjekker at mappingen er som før @@ -17,4 +17,4 @@ internal class JournalpostinfoTest { assertEquals(tema, journalpostinfo.tema) } } -} \ No newline at end of file +} From a0a8fcd1f327289322352a018970e2d5db39bda4 Mon Sep 17 00:00:00 2001 From: Ramin Esfandiari Date: Thu, 19 Sep 2024 13:05:58 +0200 Subject: [PATCH 2/5] Fikser feilende tester --- nais/prod-gcp.json | 4 ++-- .../kotlin/no/nav/helse/S\303\270knadstypeTest.kt" | 13 +++++++++---- .../helse/journalforing/v1/BrevkodeTittelOgTema.kt | 6 +++--- 3 files changed, 14 insertions(+), 9 deletions(-) diff --git a/nais/prod-gcp.json b/nais/prod-gcp.json index 303d2fc..821c9d5 100644 --- a/nais/prod-gcp.json +++ b/nais/prod-gcp.json @@ -20,8 +20,8 @@ "ENABLE_OMSORGSPENGESKNAD_UTBETALING_ARBEIDSTAKER": "true", "ENABLE_OMSORGSPENGESKNAD_MIDLERTIDIG_ALENE": "true", "ENABLE_OPPLRINGSPENGESKNAD": "false", - "ENABLE_UNGDOMSYTELSE_SØKNAD": "false", - "ENABLE_UNGDOMSYTELSE_ENDRINGSSØKNAD": "false" + "ENABLE_UNGDOMSYTELSE_SKNAD": "false", + "ENABLE_UNGDOMSYTELSE_ENDRINGSSKNAD": "false" }, "slack-channel": "sif-alerts", "slack-notify-type": " | k9-joark | ", diff --git "a/src/test/kotlin/no/nav/helse/S\303\270knadstypeTest.kt" "b/src/test/kotlin/no/nav/helse/S\303\270knadstypeTest.kt" index 525ac43..806f7f5 100644 --- "a/src/test/kotlin/no/nav/helse/S\303\270knadstypeTest.kt" +++ "b/src/test/kotlin/no/nav/helse/S\303\270knadstypeTest.kt" @@ -1,8 +1,10 @@ package no.nav.helse import no.nav.helse.journalforing.v1.Søknadstype +import org.junit.jupiter.api.Assertions.assertFalse import kotlin.test.Test import kotlin.test.assertEquals +import kotlin.test.assertFails import kotlin.test.assertTrue internal class SøknadstypeTest { @@ -18,7 +20,7 @@ internal class SøknadstypeTest { val enabled = Søknadstype.enabled(mapOf( "ENABLE_PLEIEPENGESKNAD" to "false" )) - assertTrue(enabled.keys.toSet().containsAll(Søknadstype.values().toSet())) + assertTrue(enabled.keys.toSet().containsAll(Søknadstype.entries.toSet())) val disabled = enabled.filterValues { !it } assertEquals(1, disabled.size) assertEquals(Søknadstype.PLEIEPENGESØKNAD, disabled.keys.firstOrNull()) @@ -48,10 +50,13 @@ internal class SøknadstypeTest { "ENABLE_FRISINNSKNAD" to "false", "ENABLE_OMSORGSDAGER_ALENEOMSORG" to "false", "ENABLE_OMSORGSDAGER_ALENEOMSORG_ETTERSENDING" to "false", - "ENABLE_UNGDOMSYTELSE_SØKNAD" to "false", - "ENABLE_UNGDOMSYTELSE_ENDRINGSSØKNAD" to "false", + "ENABLE_UNGDOMSYTELSE_SKNAD" to "false", + "ENABLE_UNGDOMSYTELSE_ENDRINGSSKNAD" to "false", )) assertTrue(enabled.keys.toSet().containsAll(Søknadstype.entries.toSet())) - assertTrue(enabled.values.none { it }) + for (entry in enabled.entries) { + assertFalse(entry.value, "Søknadstype ${entry.key} skulle vært disabled, men er enabled") + } + //assertTrue(enabled.values.none { it }) } } diff --git a/src/test/kotlin/no/nav/helse/journalforing/v1/BrevkodeTittelOgTema.kt b/src/test/kotlin/no/nav/helse/journalforing/v1/BrevkodeTittelOgTema.kt index 83f4c6c..067da31 100644 --- a/src/test/kotlin/no/nav/helse/journalforing/v1/BrevkodeTittelOgTema.kt +++ b/src/test/kotlin/no/nav/helse/journalforing/v1/BrevkodeTittelOgTema.kt @@ -54,7 +54,7 @@ internal object BrevkodeTittelOgTema { ) private val OMSORGSPENGER_UTBETALING_FRILANSER_OG_SELVSTENDIG_ETTERSENDING = Triple( - BrevKode(brevKode = "NAVe 09-35.02", dokumentKategori = "SOK"), + BrevKode(brevKode = "NAVe 09-35.01", dokumentKategori = "SOK"), "Søknad om utbetaling av omsorgsdager frilanser/selvstendig - NAVe 09-35.01", Kapittel9Ytelse ) @@ -127,13 +127,13 @@ internal object BrevkodeTittelOgTema { private val UNNGOMSYTELSE_SØKNAD = Triple( BrevKode(brevKode = "UNG Søknad", dokumentKategori = "SOK"), - "Søknad om ungdomsytelse - Ung Søknad", + "Søknad om ungdomsytelse - UNG Søknad", Ungomsytelse ) private val UNNGOMSYTELSE_ENDRINGSSØKNAD = Triple( BrevKode(brevKode = "UNG Endringssøknad", dokumentKategori = "SOK"), - "Endringssøknad for ungdomsytelsen - Ung Endringssøknad", + "Endringssøknad for ungdomsytelsen - UNG Endringssøknad", Ungomsytelse ) From 4d9982ce77023379d65f1302566e331ca640d21d Mon Sep 17 00:00:00 2001 From: Ramin Esfandiari Date: Thu, 19 Sep 2024 14:57:21 +0200 Subject: [PATCH 3/5] Flytter JournalpostInfo felter inn i enum. --- .../kotlin/no/nav/helse/journalforing/Tema.kt | 7 +- .../v1/JournalPostRequestV1Factory.kt | 10 +- .../v1/JournalforingV1Service.kt | 5 +- .../helse/journalforing/v1/JournalpostInfo.kt | 165 ------------- .../nav/helse/journalforing/v1/MetadataV1.kt | 46 +--- .../journalforing/v1/S\303\270knadstype.kt" | 221 ++++++++++++++++++ .../journalforing/v1/BrevkodeTittelOgTema.kt | 45 ++-- .../journalforing/v1/JournalpostinfoTest.kt | 8 +- 8 files changed, 261 insertions(+), 246 deletions(-) create mode 100644 "src/main/kotlin/no/nav/helse/journalforing/v1/S\303\270knadstype.kt" diff --git a/src/main/kotlin/no/nav/helse/journalforing/Tema.kt b/src/main/kotlin/no/nav/helse/journalforing/Tema.kt index 814e261..a3b2b1d 100644 --- a/src/main/kotlin/no/nav/helse/journalforing/Tema.kt +++ b/src/main/kotlin/no/nav/helse/journalforing/Tema.kt @@ -1,3 +1,8 @@ package no.nav.helse.journalforing -data class Tema(val value: String) \ No newline at end of file +enum class Tema(val kode: String) { + KAPITTEL_9_YTELSER("OMS"), + FRISINN("FRI"), + UNGDOMSYTELSE("UNG") + ; +} diff --git a/src/main/kotlin/no/nav/helse/journalforing/v1/JournalPostRequestV1Factory.kt b/src/main/kotlin/no/nav/helse/journalforing/v1/JournalPostRequestV1Factory.kt index 4c151cf..64dd37c 100644 --- a/src/main/kotlin/no/nav/helse/journalforing/v1/JournalPostRequestV1Factory.kt +++ b/src/main/kotlin/no/nav/helse/journalforing/v1/JournalPostRequestV1Factory.kt @@ -19,7 +19,7 @@ object JournalPostRequestV1Factory { kanal: Kanal, dokumenter: List>, datoMottatt: ZonedDateTime, - journalpostinfo: Journalpostinfo, + søknadstype: Søknadstype, journalposttype: JournalPostType, avsenderMottakerIdType: AvsenderMottakerIdType, avsenderMottakerNavn: String?, @@ -33,20 +33,20 @@ object JournalPostRequestV1Factory { val vedlegg = mutableListOf() dokumenter.forEach { dokumentBolk -> - vedlegg.add(mapDokument(dokumentBolk, journalpostinfo.brevkode)) + vedlegg.add(mapDokument(dokumentBolk, søknadstype.brevkode)) } return JournalPostRequest( journalposttype = journalposttype.value, avsenderMottaker = AvsenderMottaker(mottaker, avsenderMottakerIdType.value, avsenderMottakerNavn), // I Versjon 1 er det kun innlogget bruker som laster opp vedlegg og fyller ut søknad, så bruker == avsender bruker = Bruker(mottaker, avsenderMottakerIdType.value), - tema = journalpostinfo.tema.value, - tittel = journalpostinfo.tittel, + tema = søknadstype.tema.kode, + tittel = søknadstype.tittel, kanal = kanal.value, journalfoerendeEnhet = "9999", // NAV-enheten som har journalført, eventuelt skal journalføre, forsendelsen. Ved automatisk journalføring uten mennesker involvert skal enhet settes til "9999". datoMottatt = formatDate(datoMottatt), dokumenter = vedlegg, - innsendingstype = journalpostinfo.innsendingstype, + innsendingstype = søknadstype.innsendingstype, eksternReferanseId = eksternReferanseId ) } diff --git a/src/main/kotlin/no/nav/helse/journalforing/v1/JournalforingV1Service.kt b/src/main/kotlin/no/nav/helse/journalforing/v1/JournalforingV1Service.kt index 798e4e0..b4a36f6 100644 --- a/src/main/kotlin/no/nav/helse/journalforing/v1/JournalforingV1Service.kt +++ b/src/main/kotlin/no/nav/helse/journalforing/v1/JournalforingV1Service.kt @@ -10,7 +10,6 @@ import no.nav.helse.dusseldorf.ktor.core.ValidationProblemDetails import no.nav.helse.dusseldorf.ktor.core.Violation import no.nav.helse.journalforing.* import no.nav.helse.journalforing.gateway.JournalforingGateway -import no.nav.helse.journalforing.v1.Journalpostinfo.Companion.somJournalpostinfo import org.slf4j.Logger import org.slf4j.LoggerFactory @@ -59,15 +58,13 @@ class JournalforingV1Service( } logger.trace("Genererer request til Joark") - val journalpostinfo = metaData.søknadstype.somJournalpostinfo() - val request = JournalPostRequestV1Factory.instance( journalposttype = JOURNALPOSTTYPE, mottaker = melding.norskIdent, kanal = NAV_NO_KANAL, dokumenter = alleDokumenter.toList(), datoMottatt = melding.mottatt, - journalpostinfo = journalpostinfo, + søknadstype = metaData.søknadstype, avsenderMottakerIdType = AVSENDER_MOTTAKER_ID_TYPE, avsenderMottakerNavn = melding.sokerNavn?.sammensattNavn(), eksternReferanseId = callId diff --git a/src/main/kotlin/no/nav/helse/journalforing/v1/JournalpostInfo.kt b/src/main/kotlin/no/nav/helse/journalforing/v1/JournalpostInfo.kt index 348a19e..1ceb9c1 100644 --- a/src/main/kotlin/no/nav/helse/journalforing/v1/JournalpostInfo.kt +++ b/src/main/kotlin/no/nav/helse/journalforing/v1/JournalpostInfo.kt @@ -1,173 +1,8 @@ package no.nav.helse.journalforing.v1 -import no.nav.helse.journalforing.BrevKode -import no.nav.helse.journalforing.Tema - enum class Innsendingstype { SØKNAD, MELDING, ETTERSENDELSE, ENDRING } - -internal data class Journalpostinfo( - internal val brevkode: BrevKode, - internal val tema: Tema, - internal val tittel: String, - internal val innsendingstype: Innsendingstype) { - init { - if (Innsendingstype.ETTERSENDELSE == innsendingstype) { - require(brevkode.brevKode.startsWith("NAVe")) { - "Ettersendelser skal starte med NAVe. Ugyldig brevkode for ettersendelser ${brevkode.brevKode}" - } - } - if (brevkode.brevKode.startsWith("NAVe")) { - require(Innsendingstype.ETTERSENDELSE == innsendingstype) { - "Innsendingstype ${innsendingstype.name} kan ikke ha brevkode for ettersendelser ${brevkode.brevKode}" - } - } - } - - internal companion object { - private val Kapittel9Ytelse = Tema("OMS") - private val FrilansereOgSelvstendigNæringdrivendesInntektskompensasjon = Tema("FRI") - private val Ungdomsytelse = Tema("UNG") - - private val journalpostinfo = mapOf( - Søknadstype.PLEIEPENGESØKNAD to Journalpostinfo( - brevkode = BrevKode(brevKode = "NAV 09-11.05", dokumentKategori = "SOK"), - tittel = "Søknad om pleiepenger – sykt barn - NAV 09-11.05", - tema = Kapittel9Ytelse, - innsendingstype = Innsendingstype.SØKNAD - ), - Søknadstype.PLEIEPENGESØKNAD_ENDRINGSMELDING to Journalpostinfo( - brevkode = BrevKode(brevKode = "NAV 09-11.05", dokumentKategori = "SOK"), - tittel = "Søknad om pleiepenger – sykt barn - NAV 09-11.05", - tema = Kapittel9Ytelse, - innsendingstype = Innsendingstype.ENDRING - ), - Søknadstype.PLEIEPENGESØKNAD_ETTERSENDING to Journalpostinfo( - brevkode = BrevKode(brevKode = "NAVe 09-11.05", dokumentKategori = "SOK"), - tittel = "Søknad om pleiepenger – sykt barn - NAVe 09-11.05", - tema = Kapittel9Ytelse, - innsendingstype = Innsendingstype.ETTERSENDELSE - ), - Søknadstype.PLEIEPENGESØKNAD_LIVETS_SLUTTFASE to Journalpostinfo( - brevkode = BrevKode(brevKode = "NAV 09-12.05", dokumentKategori = "SOK"), - tittel = "Søknad om pleiepenger ved pleie i hjemmet av nærstående i livets sluttfase - NAV 09-12.05", - tema = Kapittel9Ytelse, - innsendingstype = Innsendingstype.SØKNAD - ), - Søknadstype.PLEIEPENGESØKNAD_LIVETS_SLUTTFASE_ETTERSENDING to Journalpostinfo( - brevkode = BrevKode(brevKode = "NAVe 09-12.05", dokumentKategori = "SOK"), - tittel = "Søknad om pleiepenger ved pleie i hjemmet av nærstående i livets sluttfase - NAVe 09-12.05", - tema = Kapittel9Ytelse, - innsendingstype = Innsendingstype.ETTERSENDELSE - ), - Søknadstype.OMSORGSPENGESØKNAD to Journalpostinfo( - brevkode = BrevKode(brevKode = "NAV 09-06.05", dokumentKategori = "SOK"), - tittel = "Søknad om flere omsorgsdager - NAV 09-06.05", - tema = Kapittel9Ytelse, - innsendingstype = Innsendingstype.SØKNAD - ), - Søknadstype.OMSORGSPENGESØKNAD_ETTERSENDING to Journalpostinfo( - brevkode = BrevKode(brevKode = "NAVe 09-06.05", dokumentKategori = "SOK"), - tittel = "Søknad om flere omsorgsdager - NAVe 09-06.05", - tema = Kapittel9Ytelse, - innsendingstype = Innsendingstype.ETTERSENDELSE - ), - Søknadstype.OMSORGSPENGESØKNAD_UTBETALING_FRILANSER_SELVSTENDIG to Journalpostinfo( - brevkode = BrevKode(brevKode = "NAV 09-35.01", dokumentKategori = "SOK"), // TODO: Riktig kode er: NAV 09-09.03 - tittel = "Søknad om utbetaling av omsorgsdager frilanser/selvstendig - NAV 09-35.01", - tema = Kapittel9Ytelse, - innsendingstype = Innsendingstype.SØKNAD - ), - Søknadstype.OMSORGSPENGESØKNAD_UTBETALING_FRILANSER_SELVSTENDIG_ETTERSENDING to Journalpostinfo( - brevkode = BrevKode(brevKode = "NAVe 09-35.01", dokumentKategori = "SOK"), // TODO: Riktig kode er: NAVe 09-09.03 - tittel = "Søknad om utbetaling av omsorgsdager frilanser/selvstendig - NAVe 09-35.01", - tema = Kapittel9Ytelse, - innsendingstype = Innsendingstype.ETTERSENDELSE - ), - Søknadstype.OMSORGSPENGESØKNAD_UTBETALING_ARBEIDSTAKER to Journalpostinfo( - brevkode = BrevKode(brevKode = "NAV 09-35.02", dokumentKategori = "SOK"), // TODO: Riktig kode er: NAV 09-09.01 - tittel = "Søknad om utbetaling av omsorgspenger for arbeidstakere - NAV 09-35.02", - tema = Kapittel9Ytelse, - innsendingstype = Innsendingstype.SØKNAD - ), - Søknadstype.OMSORGSPENGESØKNAD_UTBETALING_ARBEIDSTAKER_ETTERSENDING to Journalpostinfo( - brevkode = BrevKode(brevKode = "NAVe 09-35.02", dokumentKategori = "SOK"), // TODO: Riktig kode er: NAVe 09-09.01 - tittel = "Søknad om utbetaling av omsorgspenger for arbeidstakere - NAVe 09-35.02", - tema = Kapittel9Ytelse, - innsendingstype = Innsendingstype.ETTERSENDELSE - ), - Søknadstype.OMSORGSPENGESØKNAD_OVERFØRING_AV_DAGER to Journalpostinfo( - brevkode = BrevKode(brevKode = "NAV 09-06.08", dokumentKategori = "SOK"), - tittel = "Søknad om overføring av omsorgsdager - NAV 09-06.08", - tema = Kapittel9Ytelse, - innsendingstype = Innsendingstype.MELDING - ), - Søknadstype.OMSORGSPENGEMELDING_DELING_AV_DAGER to Journalpostinfo( - brevkode = BrevKode(brevKode = "NAV 09-06.08", dokumentKategori = "SOK"), - tittel = "Melding om deling av omsorgsdager - NAV 09-06.08", - tema = Kapittel9Ytelse, - innsendingstype = Innsendingstype.MELDING - ), - Søknadstype.OMSORGSPENGEMELDING_DELING_AV_DAGER_ETTERSENDING to Journalpostinfo( - brevkode = BrevKode(brevKode = "NAVe 09-06.08", dokumentKategori = "SOK"), - tittel = "Melding om deling av omsorgsdager - NAVe 09-06.08", - tema = Kapittel9Ytelse, - innsendingstype = Innsendingstype.ETTERSENDELSE - ), - Søknadstype.OMSORGSPENGESØKNAD_MIDLERTIDIG_ALENE to Journalpostinfo( - brevkode = BrevKode(brevKode = "NAV 09-06.07", dokumentKategori = "SOK"), - tittel = "Søknad om ekstra omsorgsdager når den andre forelderen ikke kan ha tilsyn med barn - NAV 09-06.07", - tema = Kapittel9Ytelse, - innsendingstype = Innsendingstype.SØKNAD - ), - Søknadstype.OMSORGSPENGESØKNAD_MIDLERTIDIG_ALENE_ETTERSENDING to Journalpostinfo( - brevkode = BrevKode(brevKode = "NAVe 09-06.07", dokumentKategori = "SOK"), - tittel = "Søknad om å bli regnet som alene - NAVe 09-06.07", - tema = Kapittel9Ytelse, - innsendingstype = Innsendingstype.ETTERSENDELSE - ), - Søknadstype.OMSORGSDAGER_ALENEOMSORG to Journalpostinfo( - brevkode = BrevKode(brevKode = "NAV 09-06.10", dokumentKategori = "SOK"), - tittel = "Registrering av aleneomsorg for omsorgsdager - NAV 09-06.10", - tema = Kapittel9Ytelse, - innsendingstype = Innsendingstype.MELDING - ), - Søknadstype.OMSORGSDAGER_ALENEOMSORG_ETTERSENDING to Journalpostinfo( - brevkode = BrevKode(brevKode = "NAVe 09-06.10", dokumentKategori = "SOK"), - tittel = "Registrering av aleneomsorg for omsorgsdager - NAVe 09-06.10", - tema = Kapittel9Ytelse, - innsendingstype = Innsendingstype.ETTERSENDELSE - ), - Søknadstype.OPPLÆRINGSPENGESØKNAD to Journalpostinfo( - brevkode = BrevKode(brevKode = "NAV 09-11.08", dokumentKategori = "SOK"), - tittel = "Søknad om opplæringspenger - NAV 09-11.08", - tema = Kapittel9Ytelse, - innsendingstype = Innsendingstype.SØKNAD - ), - Søknadstype.FRISINNSØKNAD to Journalpostinfo( - brevkode = BrevKode(brevKode = "NAV 00-03.02", dokumentKategori = "SOK"), - tittel = "Søknad om inntektskompensasjon for frilansere og selvstendig næringdrivende - NAV 00-03.02", - tema = FrilansereOgSelvstendigNæringdrivendesInntektskompensasjon, - innsendingstype = Innsendingstype.SØKNAD - ), - Søknadstype.UNGDOMSYTELSE_SØKNAD to Journalpostinfo( - brevkode = BrevKode(brevKode = "UNG Søknad", dokumentKategori = "SOK"), - tittel = "Søknad om ungdomsytelse - UNG Søknad", - tema = Ungdomsytelse, - innsendingstype = Innsendingstype.SØKNAD - ), - Søknadstype.UNGDOMSYTELSE_ENDRINGSSØKNAD to Journalpostinfo( - brevkode = BrevKode(brevKode = "UNG Endringssøknad", dokumentKategori = "SOK"), - tittel = "Endringssøknad for ungdomsytelsen - UNG Endringssøknad", - tema = Ungdomsytelse, - innsendingstype = Innsendingstype.SØKNAD - ) - ) - internal fun Søknadstype.somJournalpostinfo() = journalpostinfo[this] - ?: throw IllegalStateException("Mangler journalpostinfo for søknadstype $this.") - } -} diff --git a/src/main/kotlin/no/nav/helse/journalforing/v1/MetadataV1.kt b/src/main/kotlin/no/nav/helse/journalforing/v1/MetadataV1.kt index cd99eba..65eb281 100644 --- a/src/main/kotlin/no/nav/helse/journalforing/v1/MetadataV1.kt +++ b/src/main/kotlin/no/nav/helse/journalforing/v1/MetadataV1.kt @@ -1,46 +1,8 @@ package no.nav.helse.journalforing.v1 data class MetadataV1( - val version : Int, - val correlationId : String, - val requestId : String?, - val søknadstype : Søknadstype + val version: Int, + val correlationId: String, + val requestId: String?, + val søknadstype: Søknadstype ) - -enum class Søknadstype(val urlPath: String) { - PLEIEPENGESØKNAD("/v1/pleiepenge/journalforing"), - PLEIEPENGESØKNAD_ENDRINGSMELDING("/v1/pleiepenge/endringsmelding/journalforing"), - PLEIEPENGESØKNAD_ETTERSENDING("/v1/pleiepenge/ettersending/journalforing"), - PLEIEPENGESØKNAD_LIVETS_SLUTTFASE("/v1/pleiepenge/livets-sluttfase/journalforing"), - PLEIEPENGESØKNAD_LIVETS_SLUTTFASE_ETTERSENDING("/v1/pleiepenge/livets-sluttfase/ettersending/journalforing"), - OMSORGSPENGESØKNAD("/v1/omsorgspenge/journalforing"), - OMSORGSPENGESØKNAD_ETTERSENDING("/v1/omsorgspenge/ettersending/journalforing"), - OMSORGSPENGESØKNAD_UTBETALING_FRILANSER_SELVSTENDIG("/v1/omsorgspengeutbetaling/journalforing"), - OMSORGSPENGESØKNAD_UTBETALING_FRILANSER_SELVSTENDIG_ETTERSENDING("/v1/omsorgspengeutbetaling/ettersending/journalforing"), - OMSORGSPENGESØKNAD_UTBETALING_ARBEIDSTAKER("/v1/omsorgspengeutbetaling/journalforing"), - OMSORGSPENGESØKNAD_UTBETALING_ARBEIDSTAKER_ETTERSENDING("/v1/omsorgspengeutbetaling/ettersending/journalforing"), - OMSORGSPENGESØKNAD_OVERFØRING_AV_DAGER("/v1/omsorgsdageroverforing/journalforing"), - OMSORGSPENGEMELDING_DELING_AV_DAGER("/v1/omsorgsdagerdeling/journalforing"), - OMSORGSPENGEMELDING_DELING_AV_DAGER_ETTERSENDING("/v1/omsorgsdagerdeling/ettersending/journalforing"), - OMSORGSPENGESØKNAD_MIDLERTIDIG_ALENE("/v1/omsorgspenger/midlertidig-alene/journalforing"), - OMSORGSPENGESØKNAD_MIDLERTIDIG_ALENE_ETTERSENDING("/v1/omsorgspenger/midlertidig-alene/ettersending/journalforing"), - OMSORGSDAGER_ALENEOMSORG("/v1/omsorgsdager/aleneomsorg/journalforing"), - OMSORGSDAGER_ALENEOMSORG_ETTERSENDING("/v1/omsorgsdager/aleneomsorg/ettersending/journalforing"), - OPPLÆRINGSPENGESØKNAD("/v1/opplæringspenge/journalforing"), - FRISINNSØKNAD("/v1/frisinn/journalforing"), - UNGDOMSYTELSE_SØKNAD("/v1/ungdomsytelse/soknad/journalforing"), - UNGDOMSYTELSE_ENDRINGSSØKNAD("/v1/ungdomsytelse/endringssoknad/journalforing") - ; - - internal companion object { - private val norskeBokstaver = "[ÆØÅ]".toRegex() - private fun Søknadstype.envKey() = - "ENABLE_${name.replace(norskeBokstaver, "")}" - internal fun enabled(env: Map = System.getenv()) = - values().map { - val envKey = it.envKey() - val value = env[envKey]?.equals("true") ?: true - it to value - }.toMap() - } -} diff --git "a/src/main/kotlin/no/nav/helse/journalforing/v1/S\303\270knadstype.kt" "b/src/main/kotlin/no/nav/helse/journalforing/v1/S\303\270knadstype.kt" new file mode 100644 index 0000000..9da95c9 --- /dev/null +++ "b/src/main/kotlin/no/nav/helse/journalforing/v1/S\303\270knadstype.kt" @@ -0,0 +1,221 @@ +package no.nav.helse.journalforing.v1 + +import no.nav.helse.journalforing.BrevKode +import no.nav.helse.journalforing.Tema + +enum class Søknadstype( + val urlPath: String, + val brevkode: BrevKode, + val tittel: String, + val tema: Tema, + val innsendingstype: Innsendingstype +) { + PLEIEPENGESØKNAD( + urlPath = "/v1/pleiepenge/journalforing", + brevkode = BrevKode(brevKode = "NAV 09-11.05", dokumentKategori = "SOK"), + tittel = "Søknad om pleiepenger – sykt barn - NAV 09-11.05", + tema = Tema.KAPITTEL_9_YTELSER, + innsendingstype = Innsendingstype.SØKNAD + ), + + PLEIEPENGESØKNAD_ENDRINGSMELDING( + urlPath = "/v1/pleiepenge/endringsmelding/journalforing", + brevkode = BrevKode(brevKode = "NAV 09-11.05", dokumentKategori = "SOK"), + tittel = "Søknad om pleiepenger – sykt barn - NAV 09-11.05", + tema = Tema.KAPITTEL_9_YTELSER, + innsendingstype = Innsendingstype.ENDRING + ), + + PLEIEPENGESØKNAD_ETTERSENDING( + urlPath = "/v1/pleiepenge/ettersending/journalforing", + brevkode = BrevKode(brevKode = "NAVe 09-11.05", dokumentKategori = "SOK"), + tittel = "Søknad om pleiepenger – sykt barn - NAVe 09-11.05", + tema = Tema.KAPITTEL_9_YTELSER, + innsendingstype = Innsendingstype.ETTERSENDELSE + ), + + PLEIEPENGESØKNAD_LIVETS_SLUTTFASE( + urlPath = "/v1/pleiepenge/livets-sluttfase/journalforing", + brevkode = BrevKode(brevKode = "NAV 09-12.05", dokumentKategori = "SOK"), + tittel = "Søknad om pleiepenger ved pleie i hjemmet av nærstående i livets sluttfase - NAV 09-12.05", + tema = Tema.KAPITTEL_9_YTELSER, + innsendingstype = Innsendingstype.SØKNAD + ), + + PLEIEPENGESØKNAD_LIVETS_SLUTTFASE_ETTERSENDING( + urlPath = "/v1/pleiepenge/livets-sluttfase/ettersending/journalforing", + brevkode = BrevKode(brevKode = "NAVe 09-12.05", dokumentKategori = "SOK"), + tittel = "Søknad om pleiepenger ved pleie i hjemmet av nærstående i livets sluttfase - NAVe 09-12.05", + tema = Tema.KAPITTEL_9_YTELSER, + innsendingstype = Innsendingstype.ETTERSENDELSE + ), + + OMSORGSPENGESØKNAD( + urlPath = "/v1/omsorgspenge/journalforing", + brevkode = BrevKode(brevKode = "NAV 09-06.05", dokumentKategori = "SOK"), + tittel = "Søknad om flere omsorgsdager - NAV 09-06.05", + tema = Tema.KAPITTEL_9_YTELSER, + innsendingstype = Innsendingstype.SØKNAD + ), + + OMSORGSPENGESØKNAD_ETTERSENDING( + urlPath = "/v1/omsorgspenge/ettersending/journalforing", + brevkode = BrevKode(brevKode = "NAVe 09-06.05", dokumentKategori = "SOK"), + tittel = "Søknad om flere omsorgsdager - NAVe 09-06.05", + tema = Tema.KAPITTEL_9_YTELSER, + innsendingstype = Innsendingstype.ETTERSENDELSE + ), + + OMSORGSPENGESØKNAD_UTBETALING_FRILANSER_SELVSTENDIG( + urlPath = "/v1/omsorgspengeutbetaling/journalforing", + brevkode = BrevKode(brevKode = "NAV 09-35.01", dokumentKategori = "SOK"), // TODO: Riktig kode er: NAV 09-09.03 + tittel = "Søknad om utbetaling av omsorgsdager frilanser/selvstendig - NAV 09-35.01", + tema = Tema.KAPITTEL_9_YTELSER, + innsendingstype = Innsendingstype.SØKNAD + ), + + OMSORGSPENGESØKNAD_UTBETALING_FRILANSER_SELVSTENDIG_ETTERSENDING( + urlPath = "/v1/omsorgspengeutbetaling/ettersending/journalforing", + brevkode = BrevKode( + brevKode = "NAVe 09-35.01", + dokumentKategori = "SOK" + ), // TODO: Riktig kode er: NAVe 09-09.03 + tittel = "Søknad om utbetaling av omsorgsdager frilanser/selvstendig - NAVe 09-35.01", + tema = Tema.KAPITTEL_9_YTELSER, + innsendingstype = Innsendingstype.ETTERSENDELSE + ), + + OMSORGSPENGESØKNAD_UTBETALING_ARBEIDSTAKER( + urlPath = "/v1/omsorgspengeutbetaling/journalforing", + brevkode = BrevKode(brevKode = "NAV 09-35.02", dokumentKategori = "SOK"), // TODO: Riktig kode er: NAV 09-09.01 + tittel = "Søknad om utbetaling av omsorgspenger for arbeidstakere - NAV 09-35.02", + tema = Tema.KAPITTEL_9_YTELSER, + innsendingstype = Innsendingstype.SØKNAD + ), + + OMSORGSPENGESØKNAD_UTBETALING_ARBEIDSTAKER_ETTERSENDING( + urlPath = "/v1/omsorgspengeutbetaling/ettersending/journalforing", + brevkode = BrevKode( + brevKode = "NAVe 09-35.02", + dokumentKategori = "SOK" + ), // TODO: Riktig kode er: NAVe 09-09.01 + tittel = "Søknad om utbetaling av omsorgspenger for arbeidstakere - NAVe 09-35.02", + tema = Tema.KAPITTEL_9_YTELSER, + innsendingstype = Innsendingstype.ETTERSENDELSE + ), + + OMSORGSPENGESØKNAD_OVERFØRING_AV_DAGER( + urlPath = "/v1/omsorgsdageroverforing/journalforing", + brevkode = BrevKode(brevKode = "NAV 09-06.08", dokumentKategori = "SOK"), + tittel = "Søknad om overføring av omsorgsdager - NAV 09-06.08", + tema = Tema.KAPITTEL_9_YTELSER, + innsendingstype = Innsendingstype.MELDING + ), + + OMSORGSPENGEMELDING_DELING_AV_DAGER( + urlPath = "/v1/omsorgsdagerdeling/journalforing", + brevkode = BrevKode(brevKode = "NAV 09-06.08", dokumentKategori = "SOK"), + tittel = "Melding om deling av omsorgsdager - NAV 09-06.08", + tema = Tema.KAPITTEL_9_YTELSER, + innsendingstype = Innsendingstype.MELDING + ), + + OMSORGSPENGEMELDING_DELING_AV_DAGER_ETTERSENDING( + urlPath = "/v1/omsorgsdagerdeling/ettersending/journalforing", + brevkode = BrevKode(brevKode = "NAVe 09-06.08", dokumentKategori = "SOK"), + tittel = "Melding om deling av omsorgsdager - NAVe 09-06.08", + tema = Tema.KAPITTEL_9_YTELSER, + innsendingstype = Innsendingstype.ETTERSENDELSE + ), + + OMSORGSPENGESØKNAD_MIDLERTIDIG_ALENE( + urlPath = "/v1/omsorgspenger/midlertidig-alene/journalforing", + brevkode = BrevKode(brevKode = "NAV 09-06.07", dokumentKategori = "SOK"), + tittel = "Søknad om ekstra omsorgsdager når den andre forelderen ikke kan ha tilsyn med barn - NAV 09-06.07", + tema = Tema.KAPITTEL_9_YTELSER, + innsendingstype = Innsendingstype.SØKNAD + ), + + OMSORGSPENGESØKNAD_MIDLERTIDIG_ALENE_ETTERSENDING( + urlPath = "/v1/omsorgspenger/midlertidig-alene/ettersending/journalforing", + brevkode = BrevKode(brevKode = "NAVe 09-06.07", dokumentKategori = "SOK"), + tittel = "Søknad om å bli regnet som alene - NAVe 09-06.07", + tema = Tema.KAPITTEL_9_YTELSER, + innsendingstype = Innsendingstype.ETTERSENDELSE + ), + + OMSORGSDAGER_ALENEOMSORG( + urlPath = "/v1/omsorgsdager/aleneomsorg/journalforing", + brevkode = BrevKode(brevKode = "NAV 09-06.10", dokumentKategori = "SOK"), + tittel = "Registrering av aleneomsorg for omsorgsdager - NAV 09-06.10", + tema = Tema.KAPITTEL_9_YTELSER, + innsendingstype = Innsendingstype.MELDING + ), + + OMSORGSDAGER_ALENEOMSORG_ETTERSENDING( + urlPath = "/v1/omsorgsdager/aleneomsorg/ettersending/journalforing", + brevkode = BrevKode(brevKode = "NAVe 09-06.10", dokumentKategori = "SOK"), + tittel = "Registrering av aleneomsorg for omsorgsdager - NAVe 09-06.10", + tema = Tema.KAPITTEL_9_YTELSER, + innsendingstype = Innsendingstype.ETTERSENDELSE + ), + + OPPLÆRINGSPENGESØKNAD( + urlPath = "/v1/opplæringspenge/journalforing", + brevkode = BrevKode(brevKode = "NAV 09-11.08", dokumentKategori = "SOK"), + tittel = "Søknad om opplæringspenger - NAV 09-11.08", + tema = Tema.KAPITTEL_9_YTELSER, + innsendingstype = Innsendingstype.SØKNAD + ), + + FRISINNSØKNAD( + urlPath = "/v1/frisinn/journalforing", + brevkode = BrevKode(brevKode = "NAV 00-03.02", dokumentKategori = "SOK"), + tittel = "Søknad om inntektskompensasjon for frilansere og selvstendig næringdrivende - NAV 00-03.02", + tema = Tema.FRISINN, + innsendingstype = Innsendingstype.SØKNAD + ), + + UNGDOMSYTELSE_SØKNAD( + urlPath = "/v1/ungdomsytelse/soknad/journalforing", + brevkode = BrevKode(brevKode = "UNG Søknad", dokumentKategori = "SOK"), + tittel = "Søknad om ungdomsytelse - UNG Søknad", + tema = Tema.UNGDOMSYTELSE, + innsendingstype = Innsendingstype.SØKNAD + ), + + UNGDOMSYTELSE_ENDRINGSSØKNAD( + urlPath = "/v1/ungdomsytelse/endringssoknad/journalforing", + brevkode = BrevKode(brevKode = "UNG Endringssøknad", dokumentKategori = "SOK"), + tittel = "Endringssøknad for ungdomsytelsen - UNG Endringssøknad", + tema = Tema.UNGDOMSYTELSE, + innsendingstype = Innsendingstype.SØKNAD + ) + ; + + init { + if (Innsendingstype.ETTERSENDELSE == innsendingstype) { + require(brevkode.brevKode.startsWith("NAVe")) { + "Ettersendelser skal starte med NAVe. Ugyldig brevkode for ettersendelser ${brevkode.brevKode}" + } + } + if (brevkode.brevKode.startsWith("NAVe")) { + require(Innsendingstype.ETTERSENDELSE == innsendingstype) { + "Innsendingstype ${innsendingstype.name} kan ikke ha brevkode for ettersendelser ${brevkode.brevKode}" + } + } + } + + internal companion object { + private val norskeBokstaver = "[ÆØÅ]".toRegex() + private fun Søknadstype.envKey() = + "ENABLE_${name.replace(norskeBokstaver, "")}" + + internal fun enabled(env: Map = System.getenv()) = + entries.associateWith { + val envKey = it.envKey() + val value = env[envKey]?.equals("true") ?: true + value + } + } +} diff --git a/src/test/kotlin/no/nav/helse/journalforing/v1/BrevkodeTittelOgTema.kt b/src/test/kotlin/no/nav/helse/journalforing/v1/BrevkodeTittelOgTema.kt index 067da31..2f8cc5a 100644 --- a/src/test/kotlin/no/nav/helse/journalforing/v1/BrevkodeTittelOgTema.kt +++ b/src/test/kotlin/no/nav/helse/journalforing/v1/BrevkodeTittelOgTema.kt @@ -7,134 +7,131 @@ import no.nav.helse.journalforing.Tema * Brukt før `Journalpostinfo` */ internal object BrevkodeTittelOgTema { - private val Kapittel9Ytelse = Tema("OMS") - private val FrilansereOgSelvstendigNæringdrivendesInntektskompensasjon = Tema("FRI") - private val Ungomsytelse = Tema("UNG") private val PLEIEPENGER_BARN = Triple( BrevKode(brevKode = "NAV 09-11.05", dokumentKategori = "SOK"), "Søknad om pleiepenger – sykt barn - NAV 09-11.05", - Kapittel9Ytelse + Tema.KAPITTEL_9_YTELSER ) private val PLEIEPENGER_BARN_ETTERSENDING = Triple( BrevKode(brevKode = "NAVe 09-11.05", dokumentKategori = "SOK"), "Søknad om pleiepenger – sykt barn - NAVe 09-11.05", - Kapittel9Ytelse + Tema.KAPITTEL_9_YTELSER ) private val PLEIEPENGER_LIVETS_SLUTTFASE = Triple( BrevKode(brevKode = "NAV 09-12.05", dokumentKategori = "SOK"), "Søknad om pleiepenger ved pleie i hjemmet av nærstående i livets sluttfase - NAV 09-12.05", - Kapittel9Ytelse + Tema.KAPITTEL_9_YTELSER ) private val PLEIEPENGER_LIVETS_SLUTTFASE_ETTERSENDING = Triple( BrevKode(brevKode = "NAVe 09-12.05", dokumentKategori = "SOK"), "Søknad om pleiepenger ved pleie i hjemmet av nærstående i livets sluttfase - NAVe 09-12.05", - Kapittel9Ytelse + Tema.KAPITTEL_9_YTELSER ) private val OMSORGSPENGER_UTVIDET_RETT = Triple( BrevKode(brevKode = "NAV 09-06.05", dokumentKategori = "SOK"), "Søknad om flere omsorgsdager - NAV 09-06.05", - Kapittel9Ytelse + Tema.KAPITTEL_9_YTELSER ) private val OMSORGSPENGER_UTVIDET_RETT_ETTERSENDING = Triple( BrevKode(brevKode = "NAVe 09-06.05", dokumentKategori = "SOK"), "Søknad om flere omsorgsdager - NAVe 09-06.05", - Kapittel9Ytelse + Tema.KAPITTEL_9_YTELSER ) private val OMSORGSPENGER_UTBETALING_FRILANSER_OG_SELVSTENDIG = Triple( BrevKode(brevKode = "NAV 09-35.01", dokumentKategori = "SOK"), "Søknad om utbetaling av omsorgsdager frilanser/selvstendig - NAV 09-35.01", - Kapittel9Ytelse + Tema.KAPITTEL_9_YTELSER ) private val OMSORGSPENGER_UTBETALING_FRILANSER_OG_SELVSTENDIG_ETTERSENDING = Triple( BrevKode(brevKode = "NAVe 09-35.01", dokumentKategori = "SOK"), "Søknad om utbetaling av omsorgsdager frilanser/selvstendig - NAVe 09-35.01", - Kapittel9Ytelse + Tema.KAPITTEL_9_YTELSER ) private val OMSORGSPENGER_UTBETALING_ARBEIDSTAKER = Triple( BrevKode(brevKode = "NAV 09-35.02", dokumentKategori = "SOK"), "Søknad om utbetaling av omsorgspenger for arbeidstakere - NAV 09-35.02", - Kapittel9Ytelse + Tema.KAPITTEL_9_YTELSER ) private val OMSORGSPENGER_UTBETALING_ARBEIDSTAKER_ETTERSENDING = Triple( BrevKode(brevKode = "NAVe 09-35.02", dokumentKategori = "SOK"), "Søknad om utbetaling av omsorgspenger for arbeidstakere - NAVe 09-35.02", - Kapittel9Ytelse + Tema.KAPITTEL_9_YTELSER ) private val OMSORGSPENGER_OVERFØRING_AV_DAGER = Triple( BrevKode(brevKode = "NAV 09-06.08", dokumentKategori = "SOK"), "Søknad om overføring av omsorgsdager - NAV 09-06.08", - Kapittel9Ytelse + Tema.KAPITTEL_9_YTELSER ) private val OMSORGSPENGER_DELING_AV_DAGER = Triple( BrevKode(brevKode = "NAV 09-06.08", dokumentKategori = "SOK"), "Melding om deling av omsorgsdager - NAV 09-06.08", - Kapittel9Ytelse + Tema.KAPITTEL_9_YTELSER ) private val OMSORGSPENGER_DELING_AV_DAGER_ETTERSENDING = Triple( BrevKode(brevKode = "NAVe 09-06.08", dokumentKategori = "SOK"), "Melding om deling av omsorgsdager - NAVe 09-06.08", - Kapittel9Ytelse + Tema.KAPITTEL_9_YTELSER ) private val OMSORGSPENGER_MIDLERTIDIG_ALENE = Triple( BrevKode(brevKode = "NAV 09-06.07", dokumentKategori = "SOK"), "Søknad om ekstra omsorgsdager når den andre forelderen ikke kan ha tilsyn med barn - NAV 09-06.07", - Kapittel9Ytelse + Tema.KAPITTEL_9_YTELSER ) private val OMSORGSPENGER_MIDLERTIDIG_ALENE_ETTERSENDING = Triple( BrevKode(brevKode = "NAVe 09-06.07", dokumentKategori = "SOK"), "Søknad om å bli regnet som alene - NAVe 09-06.07", - Kapittel9Ytelse + Tema.KAPITTEL_9_YTELSER ) private val OMSORGSDAGER_ALENEOMSORG = Triple( BrevKode(brevKode = "NAV 09-06.10", dokumentKategori = "SOK"), "Registrering av aleneomsorg for omsorgsdager - NAV 09-06.10", - Kapittel9Ytelse + Tema.KAPITTEL_9_YTELSER ) private val OMSORGSDAGER_ALENEOMSORG_ETTERSENDING = Triple( BrevKode(brevKode = "NAVe 09-06.10", dokumentKategori = "SOK"), "Registrering av aleneomsorg for omsorgsdager - NAVe 09-06.10", - Kapittel9Ytelse + Tema.KAPITTEL_9_YTELSER ) private val OPPLÆRINGSPENGER = Triple( BrevKode(brevKode = "NAV 09-11.08", dokumentKategori = "SOK"), "Søknad om opplæringspenger - NAV 09-11.08", - Kapittel9Ytelse + Tema.KAPITTEL_9_YTELSER ) private val FRISINN = Triple( BrevKode(brevKode = "NAV 00-03.02", dokumentKategori = "SOK"), "Søknad om inntektskompensasjon for frilansere og selvstendig næringdrivende - NAV 00-03.02", - FrilansereOgSelvstendigNæringdrivendesInntektskompensasjon + Tema.FRISINN ) private val UNNGOMSYTELSE_SØKNAD = Triple( BrevKode(brevKode = "UNG Søknad", dokumentKategori = "SOK"), "Søknad om ungdomsytelse - UNG Søknad", - Ungomsytelse + Tema.UNGDOMSYTELSE ) private val UNNGOMSYTELSE_ENDRINGSSØKNAD = Triple( BrevKode(brevKode = "UNG Endringssøknad", dokumentKategori = "SOK"), "Endringssøknad for ungdomsytelsen - UNG Endringssøknad", - Ungomsytelse + Tema.UNGDOMSYTELSE ) internal fun hentFor(søknadstype: Søknadstype): Triple = when (søknadstype) { diff --git a/src/test/kotlin/no/nav/helse/journalforing/v1/JournalpostinfoTest.kt b/src/test/kotlin/no/nav/helse/journalforing/v1/JournalpostinfoTest.kt index 3b98693..ba122c8 100644 --- a/src/test/kotlin/no/nav/helse/journalforing/v1/JournalpostinfoTest.kt +++ b/src/test/kotlin/no/nav/helse/journalforing/v1/JournalpostinfoTest.kt @@ -1,6 +1,5 @@ package no.nav.helse.journalforing.v1 -import no.nav.helse.journalforing.v1.Journalpostinfo.Companion.somJournalpostinfo import org.junit.jupiter.api.Assertions.assertEquals import org.junit.jupiter.api.Test @@ -10,11 +9,10 @@ internal class JournalpostinfoTest { internal fun `journalpostinfo fra søknadstype`() { Søknadstype.entries.forEach { søknadstype -> val (brevkode, tittel, tema) = BrevkodeTittelOgTema.hentFor(søknadstype) - val journalpostinfo = søknadstype.somJournalpostinfo() // Sjekker at mappingen er som før - assertEquals(brevkode, journalpostinfo.brevkode) - assertEquals(tittel, journalpostinfo.tittel) - assertEquals(tema, journalpostinfo.tema) + assertEquals(brevkode, søknadstype.brevkode) + assertEquals(tittel, søknadstype.tittel) + assertEquals(tema, søknadstype.tema) } } } From e64d6d24c3a0fbc3953c459ec1d98050e8f9fd5e Mon Sep 17 00:00:00 2001 From: Ramin Esfandiari Date: Thu, 19 Sep 2024 15:04:25 +0200 Subject: [PATCH 4/5] Renamer Innsendingstype fil --- .../journalforing/v1/{JournalpostInfo.kt => Innsendingstype.kt} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename src/main/kotlin/no/nav/helse/journalforing/v1/{JournalpostInfo.kt => Innsendingstype.kt} (100%) diff --git a/src/main/kotlin/no/nav/helse/journalforing/v1/JournalpostInfo.kt b/src/main/kotlin/no/nav/helse/journalforing/v1/Innsendingstype.kt similarity index 100% rename from src/main/kotlin/no/nav/helse/journalforing/v1/JournalpostInfo.kt rename to src/main/kotlin/no/nav/helse/journalforing/v1/Innsendingstype.kt From a131bb2fb1a473a2d80257106f685624f8716177 Mon Sep 17 00:00:00 2001 From: Ramin Esfandiari Date: Fri, 20 Sep 2024 10:38:35 +0200 Subject: [PATCH 5/5] =?UTF-8?q?Bruker=20tema=20OMS=20for=20ungdomsytelse?= =?UTF-8?q?=20pr.=20n=C3=A5.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Lager TODO for å bytte før lansering. Refaktorerer og forenkler tester. --- .../kotlin/no/nav/helse/journalforing/Tema.kt | 2 +- .../journalforing/v1/S\303\270knadstype.kt" | 42 ++--- .../nav/helse/DokarkivResponseTransformer.kt | 55 +++--- src/test/kotlin/no/nav/helse/K9JoarkTest.kt | 33 +--- .../journalforing/v1/BrevkodeTittelOgTema.kt | 160 ------------------ .../journalforing/v1/JournalpostinfoTest.kt | 18 -- 6 files changed, 63 insertions(+), 247 deletions(-) delete mode 100644 src/test/kotlin/no/nav/helse/journalforing/v1/BrevkodeTittelOgTema.kt delete mode 100644 src/test/kotlin/no/nav/helse/journalforing/v1/JournalpostinfoTest.kt diff --git a/src/main/kotlin/no/nav/helse/journalforing/Tema.kt b/src/main/kotlin/no/nav/helse/journalforing/Tema.kt index a3b2b1d..e8edd92 100644 --- a/src/main/kotlin/no/nav/helse/journalforing/Tema.kt +++ b/src/main/kotlin/no/nav/helse/journalforing/Tema.kt @@ -1,7 +1,7 @@ package no.nav.helse.journalforing enum class Tema(val kode: String) { - KAPITTEL_9_YTELSER("OMS"), + K9_YTELSER("OMS"), FRISINN("FRI"), UNGDOMSYTELSE("UNG") ; diff --git "a/src/main/kotlin/no/nav/helse/journalforing/v1/S\303\270knadstype.kt" "b/src/main/kotlin/no/nav/helse/journalforing/v1/S\303\270knadstype.kt" index 9da95c9..5003466 100644 --- "a/src/main/kotlin/no/nav/helse/journalforing/v1/S\303\270knadstype.kt" +++ "b/src/main/kotlin/no/nav/helse/journalforing/v1/S\303\270knadstype.kt" @@ -14,7 +14,7 @@ enum class Søknadstype( urlPath = "/v1/pleiepenge/journalforing", brevkode = BrevKode(brevKode = "NAV 09-11.05", dokumentKategori = "SOK"), tittel = "Søknad om pleiepenger – sykt barn - NAV 09-11.05", - tema = Tema.KAPITTEL_9_YTELSER, + tema = Tema.K9_YTELSER, innsendingstype = Innsendingstype.SØKNAD ), @@ -22,7 +22,7 @@ enum class Søknadstype( urlPath = "/v1/pleiepenge/endringsmelding/journalforing", brevkode = BrevKode(brevKode = "NAV 09-11.05", dokumentKategori = "SOK"), tittel = "Søknad om pleiepenger – sykt barn - NAV 09-11.05", - tema = Tema.KAPITTEL_9_YTELSER, + tema = Tema.K9_YTELSER, innsendingstype = Innsendingstype.ENDRING ), @@ -30,7 +30,7 @@ enum class Søknadstype( urlPath = "/v1/pleiepenge/ettersending/journalforing", brevkode = BrevKode(brevKode = "NAVe 09-11.05", dokumentKategori = "SOK"), tittel = "Søknad om pleiepenger – sykt barn - NAVe 09-11.05", - tema = Tema.KAPITTEL_9_YTELSER, + tema = Tema.K9_YTELSER, innsendingstype = Innsendingstype.ETTERSENDELSE ), @@ -38,7 +38,7 @@ enum class Søknadstype( urlPath = "/v1/pleiepenge/livets-sluttfase/journalforing", brevkode = BrevKode(brevKode = "NAV 09-12.05", dokumentKategori = "SOK"), tittel = "Søknad om pleiepenger ved pleie i hjemmet av nærstående i livets sluttfase - NAV 09-12.05", - tema = Tema.KAPITTEL_9_YTELSER, + tema = Tema.K9_YTELSER, innsendingstype = Innsendingstype.SØKNAD ), @@ -46,7 +46,7 @@ enum class Søknadstype( urlPath = "/v1/pleiepenge/livets-sluttfase/ettersending/journalforing", brevkode = BrevKode(brevKode = "NAVe 09-12.05", dokumentKategori = "SOK"), tittel = "Søknad om pleiepenger ved pleie i hjemmet av nærstående i livets sluttfase - NAVe 09-12.05", - tema = Tema.KAPITTEL_9_YTELSER, + tema = Tema.K9_YTELSER, innsendingstype = Innsendingstype.ETTERSENDELSE ), @@ -54,7 +54,7 @@ enum class Søknadstype( urlPath = "/v1/omsorgspenge/journalforing", brevkode = BrevKode(brevKode = "NAV 09-06.05", dokumentKategori = "SOK"), tittel = "Søknad om flere omsorgsdager - NAV 09-06.05", - tema = Tema.KAPITTEL_9_YTELSER, + tema = Tema.K9_YTELSER, innsendingstype = Innsendingstype.SØKNAD ), @@ -62,7 +62,7 @@ enum class Søknadstype( urlPath = "/v1/omsorgspenge/ettersending/journalforing", brevkode = BrevKode(brevKode = "NAVe 09-06.05", dokumentKategori = "SOK"), tittel = "Søknad om flere omsorgsdager - NAVe 09-06.05", - tema = Tema.KAPITTEL_9_YTELSER, + tema = Tema.K9_YTELSER, innsendingstype = Innsendingstype.ETTERSENDELSE ), @@ -70,7 +70,7 @@ enum class Søknadstype( urlPath = "/v1/omsorgspengeutbetaling/journalforing", brevkode = BrevKode(brevKode = "NAV 09-35.01", dokumentKategori = "SOK"), // TODO: Riktig kode er: NAV 09-09.03 tittel = "Søknad om utbetaling av omsorgsdager frilanser/selvstendig - NAV 09-35.01", - tema = Tema.KAPITTEL_9_YTELSER, + tema = Tema.K9_YTELSER, innsendingstype = Innsendingstype.SØKNAD ), @@ -81,7 +81,7 @@ enum class Søknadstype( dokumentKategori = "SOK" ), // TODO: Riktig kode er: NAVe 09-09.03 tittel = "Søknad om utbetaling av omsorgsdager frilanser/selvstendig - NAVe 09-35.01", - tema = Tema.KAPITTEL_9_YTELSER, + tema = Tema.K9_YTELSER, innsendingstype = Innsendingstype.ETTERSENDELSE ), @@ -89,7 +89,7 @@ enum class Søknadstype( urlPath = "/v1/omsorgspengeutbetaling/journalforing", brevkode = BrevKode(brevKode = "NAV 09-35.02", dokumentKategori = "SOK"), // TODO: Riktig kode er: NAV 09-09.01 tittel = "Søknad om utbetaling av omsorgspenger for arbeidstakere - NAV 09-35.02", - tema = Tema.KAPITTEL_9_YTELSER, + tema = Tema.K9_YTELSER, innsendingstype = Innsendingstype.SØKNAD ), @@ -100,7 +100,7 @@ enum class Søknadstype( dokumentKategori = "SOK" ), // TODO: Riktig kode er: NAVe 09-09.01 tittel = "Søknad om utbetaling av omsorgspenger for arbeidstakere - NAVe 09-35.02", - tema = Tema.KAPITTEL_9_YTELSER, + tema = Tema.K9_YTELSER, innsendingstype = Innsendingstype.ETTERSENDELSE ), @@ -108,7 +108,7 @@ enum class Søknadstype( urlPath = "/v1/omsorgsdageroverforing/journalforing", brevkode = BrevKode(brevKode = "NAV 09-06.08", dokumentKategori = "SOK"), tittel = "Søknad om overføring av omsorgsdager - NAV 09-06.08", - tema = Tema.KAPITTEL_9_YTELSER, + tema = Tema.K9_YTELSER, innsendingstype = Innsendingstype.MELDING ), @@ -116,7 +116,7 @@ enum class Søknadstype( urlPath = "/v1/omsorgsdagerdeling/journalforing", brevkode = BrevKode(brevKode = "NAV 09-06.08", dokumentKategori = "SOK"), tittel = "Melding om deling av omsorgsdager - NAV 09-06.08", - tema = Tema.KAPITTEL_9_YTELSER, + tema = Tema.K9_YTELSER, innsendingstype = Innsendingstype.MELDING ), @@ -124,7 +124,7 @@ enum class Søknadstype( urlPath = "/v1/omsorgsdagerdeling/ettersending/journalforing", brevkode = BrevKode(brevKode = "NAVe 09-06.08", dokumentKategori = "SOK"), tittel = "Melding om deling av omsorgsdager - NAVe 09-06.08", - tema = Tema.KAPITTEL_9_YTELSER, + tema = Tema.K9_YTELSER, innsendingstype = Innsendingstype.ETTERSENDELSE ), @@ -132,7 +132,7 @@ enum class Søknadstype( urlPath = "/v1/omsorgspenger/midlertidig-alene/journalforing", brevkode = BrevKode(brevKode = "NAV 09-06.07", dokumentKategori = "SOK"), tittel = "Søknad om ekstra omsorgsdager når den andre forelderen ikke kan ha tilsyn med barn - NAV 09-06.07", - tema = Tema.KAPITTEL_9_YTELSER, + tema = Tema.K9_YTELSER, innsendingstype = Innsendingstype.SØKNAD ), @@ -140,7 +140,7 @@ enum class Søknadstype( urlPath = "/v1/omsorgspenger/midlertidig-alene/ettersending/journalforing", brevkode = BrevKode(brevKode = "NAVe 09-06.07", dokumentKategori = "SOK"), tittel = "Søknad om å bli regnet som alene - NAVe 09-06.07", - tema = Tema.KAPITTEL_9_YTELSER, + tema = Tema.K9_YTELSER, innsendingstype = Innsendingstype.ETTERSENDELSE ), @@ -148,7 +148,7 @@ enum class Søknadstype( urlPath = "/v1/omsorgsdager/aleneomsorg/journalforing", brevkode = BrevKode(brevKode = "NAV 09-06.10", dokumentKategori = "SOK"), tittel = "Registrering av aleneomsorg for omsorgsdager - NAV 09-06.10", - tema = Tema.KAPITTEL_9_YTELSER, + tema = Tema.K9_YTELSER, innsendingstype = Innsendingstype.MELDING ), @@ -156,7 +156,7 @@ enum class Søknadstype( urlPath = "/v1/omsorgsdager/aleneomsorg/ettersending/journalforing", brevkode = BrevKode(brevKode = "NAVe 09-06.10", dokumentKategori = "SOK"), tittel = "Registrering av aleneomsorg for omsorgsdager - NAVe 09-06.10", - tema = Tema.KAPITTEL_9_YTELSER, + tema = Tema.K9_YTELSER, innsendingstype = Innsendingstype.ETTERSENDELSE ), @@ -164,7 +164,7 @@ enum class Søknadstype( urlPath = "/v1/opplæringspenge/journalforing", brevkode = BrevKode(brevKode = "NAV 09-11.08", dokumentKategori = "SOK"), tittel = "Søknad om opplæringspenger - NAV 09-11.08", - tema = Tema.KAPITTEL_9_YTELSER, + tema = Tema.K9_YTELSER, innsendingstype = Innsendingstype.SØKNAD ), @@ -180,7 +180,7 @@ enum class Søknadstype( urlPath = "/v1/ungdomsytelse/soknad/journalforing", brevkode = BrevKode(brevKode = "UNG Søknad", dokumentKategori = "SOK"), tittel = "Søknad om ungdomsytelse - UNG Søknad", - tema = Tema.UNGDOMSYTELSE, + tema = Tema.K9_YTELSER, // TODO Bruk Tema.UNGDOMSYTELSE før lansering innsendingstype = Innsendingstype.SØKNAD ), @@ -188,7 +188,7 @@ enum class Søknadstype( urlPath = "/v1/ungdomsytelse/endringssoknad/journalforing", brevkode = BrevKode(brevKode = "UNG Endringssøknad", dokumentKategori = "SOK"), tittel = "Endringssøknad for ungdomsytelsen - UNG Endringssøknad", - tema = Tema.UNGDOMSYTELSE, + tema = Tema.K9_YTELSER, // TODO Bruk Tema.UNGDOMSYTELSE før lansering innsendingstype = Innsendingstype.SØKNAD ) ; diff --git a/src/test/kotlin/no/nav/helse/DokarkivResponseTransformer.kt b/src/test/kotlin/no/nav/helse/DokarkivResponseTransformer.kt index 2364e90..ea7ebc8 100644 --- a/src/test/kotlin/no/nav/helse/DokarkivResponseTransformer.kt +++ b/src/test/kotlin/no/nav/helse/DokarkivResponseTransformer.kt @@ -3,9 +3,37 @@ package no.nav.helse import com.github.tomakehurst.wiremock.extension.ResponseTransformerV2 import com.github.tomakehurst.wiremock.http.Response import com.github.tomakehurst.wiremock.stubbing.ServeEvent +import no.nav.helse.journalforing.v1.Søknadstype.* import org.json.JSONObject internal class DokarkivResponseTransformer : ResponseTransformerV2 { + companion object { + val BREVKODE_MED_FORVENTET_JOURNALPOST_ID = mapOf( + PLEIEPENGESØKNAD to "1", + PLEIEPENGESØKNAD_ENDRINGSMELDING to "1", + OMSORGSPENGESØKNAD to "2", + OMSORGSPENGESØKNAD_UTBETALING_FRILANSER_SELVSTENDIG to "3", + OMSORGSPENGESØKNAD_UTBETALING_ARBEIDSTAKER to "4", + OMSORGSPENGESØKNAD_OVERFØRING_AV_DAGER to "5", + OMSORGSPENGEMELDING_DELING_AV_DAGER to "5", + OPPLÆRINGSPENGESØKNAD to "6", + FRISINNSØKNAD to "7", + OMSORGSPENGESØKNAD_MIDLERTIDIG_ALENE to "8", + PLEIEPENGESØKNAD_ETTERSENDING to "9", + OMSORGSPENGESØKNAD_ETTERSENDING to "10", + OMSORGSPENGESØKNAD_UTBETALING_FRILANSER_SELVSTENDIG_ETTERSENDING to "11", + OMSORGSPENGESØKNAD_UTBETALING_ARBEIDSTAKER_ETTERSENDING to "12", + OMSORGSPENGESØKNAD_MIDLERTIDIG_ALENE_ETTERSENDING to "13", + OMSORGSPENGEMELDING_DELING_AV_DAGER_ETTERSENDING to "14", + OMSORGSDAGER_ALENEOMSORG to "15", + PLEIEPENGESØKNAD_LIVETS_SLUTTFASE to "16", + PLEIEPENGESØKNAD_LIVETS_SLUTTFASE_ETTERSENDING to "17", + OMSORGSDAGER_ALENEOMSORG_ETTERSENDING to "18", + UNGDOMSYTELSE_SØKNAD to "19", // TODO Bruk Tema.UNGDOMSYTELSE før lansering + UNGDOMSYTELSE_ENDRINGSSØKNAD to "20" // TODO Bruk Tema.UNGDOMSYTELSE før lansering + ) + } + override fun getName(): String { return "dokarkiv" } @@ -14,29 +42,10 @@ internal class DokarkivResponseTransformer : ResponseTransformerV2 { val requestEntity = serveEvent.request.bodyAsString val tema = JSONObject(requestEntity).getString("tema") - val journalpostId = when { - requestEntity.contains("NAV 09-11.05") && "OMS" == tema -> "1" - requestEntity.contains("NAV 09-06.05") && "OMS" == tema -> "2" - requestEntity.contains("NAV 09-35.01") && "OMS" == tema -> "3" - requestEntity.contains("NAV 09-35.02") && "OMS" == tema -> "4" - requestEntity.contains("NAV 09-06.08") && "OMS" == tema -> "5" - requestEntity.contains("NAV 09-11.08") && "OMS" == tema -> "6" - requestEntity.contains("NAV 00-03.02") && "FRI" == tema -> "7" - requestEntity.contains("NAV 09-06.07") && "OMS" == tema -> "8" - requestEntity.contains("NAVe 09-11.05") && "OMS" == tema -> "9" - requestEntity.contains("NAVe 09-06.05") && "OMS" == tema -> "10" - requestEntity.contains("NAVe 09-35.01") && "OMS" == tema -> "11" - requestEntity.contains("NAVe 09-35.02") && "OMS" == tema -> "12" - requestEntity.contains("NAVe 09-06.07") && "OMS" == tema -> "13" - requestEntity.contains("NAVe 09-06.08") && "OMS" == tema -> "14" - requestEntity.contains("NAV 09-06.10") && "OMS" == tema -> "15" - requestEntity.contains("NAV 09-12.05") && "OMS" == tema -> "16" - requestEntity.contains("NAVe 09-12.05") && "OMS" == tema -> "17" - requestEntity.contains("NAVe 09-06.10") && "OMS" == tema -> "18" - requestEntity.contains("UNG Søknad") && "UNG" == tema -> "19" - requestEntity.contains("UNG Endringssøknad") && "UNG" == tema -> "20" - else -> throw IllegalArgumentException("Ikke støttet brevkode.") - } + val journalpostId = BREVKODE_MED_FORVENTET_JOURNALPOST_ID.entries.firstOrNull { + val søknadstype = it.key + requestEntity.contains(søknadstype.brevkode.brevKode) && (søknadstype.tema.kode == tema) + }?.value ?: throw IllegalArgumentException("Ikke støttet brevkode.") return Response.Builder.like(response) .body(getResponse(journalpostId)) diff --git a/src/test/kotlin/no/nav/helse/K9JoarkTest.kt b/src/test/kotlin/no/nav/helse/K9JoarkTest.kt index 7231369..1216433 100644 --- a/src/test/kotlin/no/nav/helse/K9JoarkTest.kt +++ b/src/test/kotlin/no/nav/helse/K9JoarkTest.kt @@ -6,6 +6,7 @@ import com.typesafe.config.ConfigFactory import io.ktor.server.config.* import io.ktor.http.* import io.ktor.server.testing.* +import no.nav.helse.DokarkivResponseTransformer.Companion.BREVKODE_MED_FORVENTET_JOURNALPOST_ID import no.nav.helse.dusseldorf.testsupport.wiremock.WireMockBuilder import no.nav.helse.journalforing.v1.MeldingV1 import no.nav.helse.journalforing.v1.Navn @@ -81,30 +82,14 @@ class K9JoarkTest { @JvmStatic fun søknaderForJournalføring(): List { return Søknadstype.entries.map { - // Id må matche med no/nav/helse/DokarkivResponseTransformer.kt:17 - val (urlPath, forventetJournalpostId) = when (it) { - Søknadstype.PLEIEPENGESØKNAD -> it.urlPath to "1" - Søknadstype.PLEIEPENGESØKNAD_ENDRINGSMELDING -> it.urlPath to "1" - Søknadstype.OMSORGSPENGESØKNAD -> it.urlPath to "2" - Søknadstype.OMSORGSPENGESØKNAD_UTBETALING_FRILANSER_SELVSTENDIG -> it.urlPath + "?arbeidstype=frilanser&arbeidstype=selvstendig-naeringsdrivende" to "3" - Søknadstype.OMSORGSPENGESØKNAD_UTBETALING_ARBEIDSTAKER -> it.urlPath + "?arbeidstype=arbeidstaker" to "4" - Søknadstype.OMSORGSPENGESØKNAD_OVERFØRING_AV_DAGER -> it.urlPath to "5" - Søknadstype.OMSORGSPENGEMELDING_DELING_AV_DAGER -> it.urlPath to "5" - Søknadstype.OPPLÆRINGSPENGESØKNAD -> it.urlPath to "6" - Søknadstype.FRISINNSØKNAD -> it.urlPath to "7" - Søknadstype.OMSORGSPENGESØKNAD_MIDLERTIDIG_ALENE -> it.urlPath to "8" - Søknadstype.PLEIEPENGESØKNAD_ETTERSENDING -> it.urlPath to "9" - Søknadstype.OMSORGSPENGESØKNAD_ETTERSENDING -> it.urlPath to "10" - Søknadstype.OMSORGSPENGESØKNAD_UTBETALING_FRILANSER_SELVSTENDIG_ETTERSENDING -> it.urlPath + "?arbeidstype=frilanser&arbeidstype=selvstendig-naeringsdrivende" to "11" - Søknadstype.OMSORGSPENGESØKNAD_UTBETALING_ARBEIDSTAKER_ETTERSENDING -> it.urlPath + "?arbeidstype=arbeidstaker" to "12" - Søknadstype.OMSORGSPENGESØKNAD_MIDLERTIDIG_ALENE_ETTERSENDING -> it.urlPath to "13" - Søknadstype.OMSORGSPENGEMELDING_DELING_AV_DAGER_ETTERSENDING -> it.urlPath to "14" - Søknadstype.OMSORGSDAGER_ALENEOMSORG -> it.urlPath to "15" - Søknadstype.PLEIEPENGESØKNAD_LIVETS_SLUTTFASE -> it.urlPath to "16" - Søknadstype.PLEIEPENGESØKNAD_LIVETS_SLUTTFASE_ETTERSENDING -> it.urlPath to "17" - Søknadstype.OMSORGSDAGER_ALENEOMSORG_ETTERSENDING -> it.urlPath to "18" - Søknadstype.UNGDOMSYTELSE_SØKNAD -> it.urlPath to "19" - Søknadstype.UNGDOMSYTELSE_ENDRINGSSØKNAD -> it.urlPath to "20" + val journalpostId = BREVKODE_MED_FORVENTET_JOURNALPOST_ID.getValue(it) + + val (urlPath, forventetJournalpostId) = when(it) { + Søknadstype.OMSORGSPENGESØKNAD_UTBETALING_FRILANSER_SELVSTENDIG -> it.urlPath + "?arbeidstype=frilanser&arbeidstype=selvstendig-naeringsdrivende" to journalpostId + Søknadstype.OMSORGSPENGESØKNAD_UTBETALING_ARBEIDSTAKER -> it.urlPath + "?arbeidstype=arbeidstaker" to journalpostId + Søknadstype.OMSORGSPENGESØKNAD_UTBETALING_FRILANSER_SELVSTENDIG_ETTERSENDING -> it.urlPath + "?arbeidstype=frilanser&arbeidstype=selvstendig-naeringsdrivende" to journalpostId + Søknadstype.OMSORGSPENGESØKNAD_UTBETALING_ARBEIDSTAKER_ETTERSENDING -> it.urlPath + "?arbeidstype=arbeidstaker" to journalpostId + else -> it.urlPath to journalpostId } Journalføring(urlPath, forventetJournalpostId) diff --git a/src/test/kotlin/no/nav/helse/journalforing/v1/BrevkodeTittelOgTema.kt b/src/test/kotlin/no/nav/helse/journalforing/v1/BrevkodeTittelOgTema.kt deleted file mode 100644 index 2f8cc5a..0000000 --- a/src/test/kotlin/no/nav/helse/journalforing/v1/BrevkodeTittelOgTema.kt +++ /dev/null @@ -1,160 +0,0 @@ -package no.nav.helse.journalforing.v1 - -import no.nav.helse.journalforing.BrevKode -import no.nav.helse.journalforing.Tema - -/** - * Brukt før `Journalpostinfo` - */ -internal object BrevkodeTittelOgTema { - - private val PLEIEPENGER_BARN = Triple( - BrevKode(brevKode = "NAV 09-11.05", dokumentKategori = "SOK"), - "Søknad om pleiepenger – sykt barn - NAV 09-11.05", - Tema.KAPITTEL_9_YTELSER - ) - - private val PLEIEPENGER_BARN_ETTERSENDING = Triple( - BrevKode(brevKode = "NAVe 09-11.05", dokumentKategori = "SOK"), - "Søknad om pleiepenger – sykt barn - NAVe 09-11.05", - Tema.KAPITTEL_9_YTELSER - ) - - private val PLEIEPENGER_LIVETS_SLUTTFASE = Triple( - BrevKode(brevKode = "NAV 09-12.05", dokumentKategori = "SOK"), - "Søknad om pleiepenger ved pleie i hjemmet av nærstående i livets sluttfase - NAV 09-12.05", - Tema.KAPITTEL_9_YTELSER - ) - - private val PLEIEPENGER_LIVETS_SLUTTFASE_ETTERSENDING = Triple( - BrevKode(brevKode = "NAVe 09-12.05", dokumentKategori = "SOK"), - "Søknad om pleiepenger ved pleie i hjemmet av nærstående i livets sluttfase - NAVe 09-12.05", - Tema.KAPITTEL_9_YTELSER - ) - - private val OMSORGSPENGER_UTVIDET_RETT = Triple( - BrevKode(brevKode = "NAV 09-06.05", dokumentKategori = "SOK"), - "Søknad om flere omsorgsdager - NAV 09-06.05", - Tema.KAPITTEL_9_YTELSER - ) - - private val OMSORGSPENGER_UTVIDET_RETT_ETTERSENDING = Triple( - BrevKode(brevKode = "NAVe 09-06.05", dokumentKategori = "SOK"), - "Søknad om flere omsorgsdager - NAVe 09-06.05", - Tema.KAPITTEL_9_YTELSER - ) - - private val OMSORGSPENGER_UTBETALING_FRILANSER_OG_SELVSTENDIG = Triple( - BrevKode(brevKode = "NAV 09-35.01", dokumentKategori = "SOK"), - "Søknad om utbetaling av omsorgsdager frilanser/selvstendig - NAV 09-35.01", - Tema.KAPITTEL_9_YTELSER - ) - - private val OMSORGSPENGER_UTBETALING_FRILANSER_OG_SELVSTENDIG_ETTERSENDING = Triple( - BrevKode(brevKode = "NAVe 09-35.01", dokumentKategori = "SOK"), - "Søknad om utbetaling av omsorgsdager frilanser/selvstendig - NAVe 09-35.01", - Tema.KAPITTEL_9_YTELSER - ) - - private val OMSORGSPENGER_UTBETALING_ARBEIDSTAKER = Triple( - BrevKode(brevKode = "NAV 09-35.02", dokumentKategori = "SOK"), - "Søknad om utbetaling av omsorgspenger for arbeidstakere - NAV 09-35.02", - Tema.KAPITTEL_9_YTELSER - ) - - private val OMSORGSPENGER_UTBETALING_ARBEIDSTAKER_ETTERSENDING = Triple( - BrevKode(brevKode = "NAVe 09-35.02", dokumentKategori = "SOK"), - "Søknad om utbetaling av omsorgspenger for arbeidstakere - NAVe 09-35.02", - Tema.KAPITTEL_9_YTELSER - ) - - private val OMSORGSPENGER_OVERFØRING_AV_DAGER = Triple( - BrevKode(brevKode = "NAV 09-06.08", dokumentKategori = "SOK"), - "Søknad om overføring av omsorgsdager - NAV 09-06.08", - Tema.KAPITTEL_9_YTELSER - ) - - private val OMSORGSPENGER_DELING_AV_DAGER = Triple( - BrevKode(brevKode = "NAV 09-06.08", dokumentKategori = "SOK"), - "Melding om deling av omsorgsdager - NAV 09-06.08", - Tema.KAPITTEL_9_YTELSER - ) - - private val OMSORGSPENGER_DELING_AV_DAGER_ETTERSENDING = Triple( - BrevKode(brevKode = "NAVe 09-06.08", dokumentKategori = "SOK"), - "Melding om deling av omsorgsdager - NAVe 09-06.08", - Tema.KAPITTEL_9_YTELSER - ) - - private val OMSORGSPENGER_MIDLERTIDIG_ALENE = Triple( - BrevKode(brevKode = "NAV 09-06.07", dokumentKategori = "SOK"), - "Søknad om ekstra omsorgsdager når den andre forelderen ikke kan ha tilsyn med barn - NAV 09-06.07", - Tema.KAPITTEL_9_YTELSER - ) - - private val OMSORGSPENGER_MIDLERTIDIG_ALENE_ETTERSENDING = Triple( - BrevKode(brevKode = "NAVe 09-06.07", dokumentKategori = "SOK"), - "Søknad om å bli regnet som alene - NAVe 09-06.07", - Tema.KAPITTEL_9_YTELSER - ) - - private val OMSORGSDAGER_ALENEOMSORG = Triple( - BrevKode(brevKode = "NAV 09-06.10", dokumentKategori = "SOK"), - "Registrering av aleneomsorg for omsorgsdager - NAV 09-06.10", - Tema.KAPITTEL_9_YTELSER - ) - - private val OMSORGSDAGER_ALENEOMSORG_ETTERSENDING = Triple( - BrevKode(brevKode = "NAVe 09-06.10", dokumentKategori = "SOK"), - "Registrering av aleneomsorg for omsorgsdager - NAVe 09-06.10", - Tema.KAPITTEL_9_YTELSER - ) - - private val OPPLÆRINGSPENGER = Triple( - BrevKode(brevKode = "NAV 09-11.08", dokumentKategori = "SOK"), - "Søknad om opplæringspenger - NAV 09-11.08", - Tema.KAPITTEL_9_YTELSER - ) - - private val FRISINN = Triple( - BrevKode(brevKode = "NAV 00-03.02", dokumentKategori = "SOK"), - "Søknad om inntektskompensasjon for frilansere og selvstendig næringdrivende - NAV 00-03.02", - Tema.FRISINN - ) - - private val UNNGOMSYTELSE_SØKNAD = Triple( - BrevKode(brevKode = "UNG Søknad", dokumentKategori = "SOK"), - "Søknad om ungdomsytelse - UNG Søknad", - Tema.UNGDOMSYTELSE - ) - - private val UNNGOMSYTELSE_ENDRINGSSØKNAD = Triple( - BrevKode(brevKode = "UNG Endringssøknad", dokumentKategori = "SOK"), - "Endringssøknad for ungdomsytelsen - UNG Endringssøknad", - Tema.UNGDOMSYTELSE - ) - - internal fun hentFor(søknadstype: Søknadstype): Triple = when (søknadstype) { - Søknadstype.PLEIEPENGESØKNAD, Søknadstype.PLEIEPENGESØKNAD_ENDRINGSMELDING -> PLEIEPENGER_BARN - Søknadstype.PLEIEPENGESØKNAD_ETTERSENDING -> PLEIEPENGER_BARN_ETTERSENDING - Søknadstype.PLEIEPENGESØKNAD_LIVETS_SLUTTFASE -> PLEIEPENGER_LIVETS_SLUTTFASE - Søknadstype.PLEIEPENGESØKNAD_LIVETS_SLUTTFASE_ETTERSENDING -> PLEIEPENGER_LIVETS_SLUTTFASE_ETTERSENDING - Søknadstype.OMSORGSPENGESØKNAD -> OMSORGSPENGER_UTVIDET_RETT - Søknadstype.OMSORGSPENGESØKNAD_ETTERSENDING -> OMSORGSPENGER_UTVIDET_RETT_ETTERSENDING - Søknadstype.OMSORGSPENGESØKNAD_UTBETALING_FRILANSER_SELVSTENDIG -> OMSORGSPENGER_UTBETALING_FRILANSER_OG_SELVSTENDIG - Søknadstype.OMSORGSPENGESØKNAD_UTBETALING_FRILANSER_SELVSTENDIG_ETTERSENDING -> OMSORGSPENGER_UTBETALING_FRILANSER_OG_SELVSTENDIG_ETTERSENDING - Søknadstype.OMSORGSPENGESØKNAD_UTBETALING_ARBEIDSTAKER -> OMSORGSPENGER_UTBETALING_ARBEIDSTAKER - Søknadstype.OMSORGSPENGESØKNAD_UTBETALING_ARBEIDSTAKER_ETTERSENDING -> OMSORGSPENGER_UTBETALING_ARBEIDSTAKER_ETTERSENDING - Søknadstype.OMSORGSPENGESØKNAD_OVERFØRING_AV_DAGER -> OMSORGSPENGER_OVERFØRING_AV_DAGER - Søknadstype.OMSORGSPENGEMELDING_DELING_AV_DAGER -> OMSORGSPENGER_DELING_AV_DAGER - Søknadstype.OMSORGSPENGEMELDING_DELING_AV_DAGER_ETTERSENDING -> OMSORGSPENGER_DELING_AV_DAGER_ETTERSENDING - Søknadstype.OMSORGSPENGESØKNAD_MIDLERTIDIG_ALENE -> OMSORGSPENGER_MIDLERTIDIG_ALENE - Søknadstype.OMSORGSPENGESØKNAD_MIDLERTIDIG_ALENE_ETTERSENDING -> OMSORGSPENGER_MIDLERTIDIG_ALENE_ETTERSENDING - Søknadstype.OMSORGSDAGER_ALENEOMSORG -> OMSORGSDAGER_ALENEOMSORG - Søknadstype.OMSORGSDAGER_ALENEOMSORG_ETTERSENDING -> OMSORGSDAGER_ALENEOMSORG_ETTERSENDING - Søknadstype.OPPLÆRINGSPENGESØKNAD -> OPPLÆRINGSPENGER - Søknadstype.FRISINNSØKNAD -> FRISINN - Søknadstype.UNGDOMSYTELSE_SØKNAD -> UNNGOMSYTELSE_SØKNAD - Søknadstype.UNGDOMSYTELSE_ENDRINGSSØKNAD -> UNNGOMSYTELSE_ENDRINGSSØKNAD - } -} diff --git a/src/test/kotlin/no/nav/helse/journalforing/v1/JournalpostinfoTest.kt b/src/test/kotlin/no/nav/helse/journalforing/v1/JournalpostinfoTest.kt deleted file mode 100644 index ba122c8..0000000 --- a/src/test/kotlin/no/nav/helse/journalforing/v1/JournalpostinfoTest.kt +++ /dev/null @@ -1,18 +0,0 @@ -package no.nav.helse.journalforing.v1 - -import org.junit.jupiter.api.Assertions.assertEquals -import org.junit.jupiter.api.Test - -internal class JournalpostinfoTest { - - @Test - internal fun `journalpostinfo fra søknadstype`() { - Søknadstype.entries.forEach { søknadstype -> - val (brevkode, tittel, tema) = BrevkodeTittelOgTema.hentFor(søknadstype) - // Sjekker at mappingen er som før - assertEquals(brevkode, søknadstype.brevkode) - assertEquals(tittel, søknadstype.tittel) - assertEquals(tema, søknadstype.tema) - } - } -}