Skip to content
This repository has been archived by the owner on Oct 8, 2024. It is now read-only.

Commit

Permalink
Støtter journalføring av søknad om ungdomsytelse.
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
ramrock93 committed Sep 19, 2024
1 parent 73d4002 commit 6022dec
Show file tree
Hide file tree
Showing 10 changed files with 140 additions and 227 deletions.
2 changes: 2 additions & 0 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -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"

Expand Down Expand Up @@ -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")
}
Expand Down
4 changes: 3 additions & 1 deletion nais/prod-gcp.json
Original file line number Diff line number Diff line change
Expand Up @@ -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": "<!channel> | k9-joark | ",
Expand Down
44 changes: 28 additions & 16 deletions src/main/kotlin/no/nav/helse/journalforing/api/JournalforingApis.kt
Original file line number Diff line number Diff line change
Expand Up @@ -38,44 +38,44 @@ fun Route.journalforingApis(journalforingV1Service: JournalforingV1Service) {
}
}

post("/v1/pleiepenge/journalforing") {
post(PLEIEPENGESØKNAD.urlPath) {
val melding = call.receive<MeldingV1>()
val metadata = call.genererMetadata(PLEIEPENGESØKNAD)
journalfør(melding, metadata)
}

post("/v1/pleiepenge/endringsmelding/journalforing") {
post(PLEIEPENGESØKNAD_ENDRINGSMELDING.urlPath) {
val melding = call.receive<MeldingV1>()
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<MeldingV1>()
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<MeldingV1>()
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<MeldingV1>()
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<MeldingV1>()
val metadata = call.genererMetadata(OMSORGSPENGESØKNAD)
journalfør(melding, metadata)
}

post("/v1/omsorgspenge/ettersending/journalforing") {
post(OMSORGSPENGESØKNAD_ETTERSENDING.urlPath) {
val melding = call.receive<MeldingV1>()
val metadata = call.genererMetadata(OMSORGSPENGESØKNAD_ETTERSENDING)
journalfør(melding, metadata)
Expand Down Expand Up @@ -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<MeldingV1>()
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<MeldingV1>()
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<MeldingV1>()
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<MeldingV1>()
val metadata = call.genererMetadata(OPPLÆRINGSPENGESØKNAD)
journalfør(melding, metadata)
}

post("/v1/frisinn/journalforing") {
post(FRISINNSØKNAD.urlPath) {
val melding = call.receive<MeldingV1>()
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<MeldingV1>()
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<MeldingV1>()
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<MeldingV1>()
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<MeldingV1>()
val metadata = call.genererMetadata(OMSORGSDAGER_ALENEOMSORG_ETTERSENDING)
journalfør(melding, metadata)
}

post(UNGDOMSYTELSE_SØKNAD.urlPath) {
val melding = call.receive<MeldingV1>()
val metadata = call.genererMetadata(UNGDOMSYTELSE_SØKNAD)
journalfør(melding, metadata)
}

post(UNGDOMSYTELSE_ENDRINGSSØKNAD.urlPath) {
val melding = call.receive<MeldingV1>()
val metadata = call.genererMetadata(UNGDOMSYTELSE_ENDRINGSSØKNAD)
journalfør(melding, metadata)
}
}

private fun ApplicationCall.genererMetadata(søknadstype: Søknadstype, version: Int = 1) = MetadataV1(
Expand Down
13 changes: 13 additions & 0 deletions src/main/kotlin/no/nav/helse/journalforing/v1/JournalpostInfo.kt
Original file line number Diff line number Diff line change
Expand Up @@ -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(
Expand Down Expand Up @@ -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]
Expand Down
45 changes: 24 additions & 21 deletions src/main/kotlin/no/nav/helse/journalforing/v1/MetadataV1.kt
Original file line number Diff line number Diff line change
Expand Up @@ -7,27 +7,30 @@ data class MetadataV1(
valknadstype : 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()
Expand Down
2 changes: 2 additions & 0 deletions src/test/kotlin/no/nav/helse/DokarkivResponseTransformer.kt
Original file line number Diff line number Diff line change
Expand Up @@ -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.")
}

Expand Down
Loading

0 comments on commit 6022dec

Please sign in to comment.