Skip to content

Commit

Permalink
Logg at en ignorerer behov hvis "bruk-søknad-orkestrator" er true
Browse files Browse the repository at this point in the history
  • Loading branch information
geiralund committed Jun 3, 2024
1 parent 3125f0e commit 034f486
Show file tree
Hide file tree
Showing 2 changed files with 52 additions and 37 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -43,8 +43,8 @@ internal class SøknadFaktaQuizLøser(
River(rapidsConnection).apply {
validate { it.demandAny("@event_name", listOf("faktum_svar", "behov")) }
validate { it.demandAllOrAny("@behov", løserBehov) }
validate { it.demandValue("bruk-søknad-orkestrator", false) }
validate { it.rejectKey("@løsning") }
validate { it.interestedIn("bruk-søknad-orkestrator") }
validate {
it.require("InnsendtSøknadsId") { innsendtSøknad -> innsendtSøknad["urn"].asText().let { urn -> URN.rfc8141().parse(urn).namespaceSpecificString().toString() } }
}
Expand All @@ -62,41 +62,45 @@ internal class SøknadFaktaQuizLøser(
"behovId" to packet["@behovId"].asText(),
),
) {
try {
val innsendtSøknadsId = packet.getInnsendtSøknadsId()
val søknad = søknadQuizOppslag.hentSøknad(innsendtSøknadsId)
val løsning: Map<String, Any> =
packet["@behov"].map { it.asText() }.filter { it in løserBehov }.associateWith { behov ->
val avsluttedeArbeidsforhold = søknad.avsluttetArbeidsforhold()
val reellArbeidsSøker = søknad.reellArbeidsSøker()
when (behov) {
"ØnskerDagpengerFraDato" -> søknad.ønskerDagpengerFraDato()
"Verneplikt" -> søknad.avtjentVerneplikt()
"FangstOgFiske" -> søknad.fangstOgFisk()
"EØSArbeid" -> søknad.eøsArbeidsforhold()
"Rettighetstype" -> rettighetstypeUtregning(avsluttedeArbeidsforhold)
"KanJobbeDeltid" -> reellArbeidsSøker.deltid
"KanJobbeHvorSomHelst" -> reellArbeidsSøker.geografi
"HelseTilAlleTyperJobb" -> reellArbeidsSøker.helse
"VilligTilÅBytteYrke" -> reellArbeidsSøker.yrke
"JobbetUtenforNorge" -> jobbetUtenforNorge(avsluttedeArbeidsforhold)
"Lønnsgaranti" -> avsluttedeArbeidsforhold.any { it.erLønnsgaranti() }
"PermittertFiskeforedling" -> avsluttedeArbeidsforhold.any { it.erPermittertFiskeforedling() }
"Permittert" -> avsluttedeArbeidsforhold.any { it.erPermittert() }
"Ordinær" -> avsluttedeArbeidsforhold.any { it.erOrdinær() }
else -> throw IllegalArgumentException("Ukjent behov $behov")
if (!packet["bruk-søknad-orkestrator"].asBoolean()) {
try {
val innsendtSøknadsId = packet.getInnsendtSøknadsId()
val søknad = søknadQuizOppslag.hentSøknad(innsendtSøknadsId)
val løsning: Map<String, Any> =
packet["@behov"].map { it.asText() }.filter { it in løserBehov }.associateWith { behov ->
val avsluttedeArbeidsforhold = søknad.avsluttetArbeidsforhold()
val reellArbeidsSøker = søknad.reellArbeidsSøker()
when (behov) {
"ØnskerDagpengerFraDato" -> søknad.ønskerDagpengerFraDato()
"Verneplikt" -> søknad.avtjentVerneplikt()
"FangstOgFiske" -> søknad.fangstOgFisk()
"EØSArbeid" -> søknad.eøsArbeidsforhold()
"Rettighetstype" -> rettighetstypeUtregning(avsluttedeArbeidsforhold)
"KanJobbeDeltid" -> reellArbeidsSøker.deltid
"KanJobbeHvorSomHelst" -> reellArbeidsSøker.geografi
"HelseTilAlleTyperJobb" -> reellArbeidsSøker.helse
"VilligTilÅBytteYrke" -> reellArbeidsSøker.yrke
"JobbetUtenforNorge" -> jobbetUtenforNorge(avsluttedeArbeidsforhold)
"Lønnsgaranti" -> avsluttedeArbeidsforhold.any { it.erLønnsgaranti() }
"PermittertFiskeforedling" -> avsluttedeArbeidsforhold.any { it.erPermittertFiskeforedling() }
"Permittert" -> avsluttedeArbeidsforhold.any { it.erPermittert() }
"Ordinær" -> avsluttedeArbeidsforhold.any { it.erOrdinær() }
else -> throw IllegalArgumentException("Ukjent behov $behov")
}
}
}
packet["@løsning"] = løsning
context.publish(packet.toJson())
logger.info("løste ${løsning.keys} behov for innsendt søknad med id $innsendtSøknadsId")
} catch (e: DateTimeParseException) {
logger.info(e) { "feil ved parsing av dato i søknadfakta-behov. Hopper over behovet" }
sikkerlogg.info(e) { "feil ved parsing av dato i søknadfakta-behov. Hopper over behovet \n packet: ${packet.toJson()}" }
} catch (e: Exception) {
logger.error(e) { "feil ved søknadfakta-behov" }
sikkerlogg.error(e) { "feil ved søknadfakta-behov. \n packet: ${packet.toJson()}" }
throw e
packet["@løsning"] = løsning
context.publish(packet.toJson())
logger.info("løste ${løsning.keys} behov for innsendt søknad med id $innsendtSøknadsId")
} catch (e: DateTimeParseException) {
logger.info(e) { "feil ved parsing av dato i søknadfakta-behov. Hopper over behovet" }
sikkerlogg.info(e) { "feil ved parsing av dato i søknadfakta-behov. Hopper over behovet \n packet: ${packet.toJson()}" }
} catch (e: Exception) {
logger.error(e) { "feil ved søknadfakta-behov" }
sikkerlogg.error(e) { "feil ved søknadfakta-behov. \n packet: ${packet.toJson()}" }
throw e
}
} else {
logger.info("ignorerer behov '${packet["@behov"]}' for søknad som er sendt til søknad-orkestrator")
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -170,6 +170,14 @@ internal class SøknadFaktaQuizLøserTest {
}
}

@Test
fun `ignorerer behov for søknad som er sendt til søknad-orkestrator`() {
testRapid.sendTestMessage(behovMelding("Verneplikt", brukSøknadOrkestrator = true))
with(testRapid.inspektør) {
assertEquals(0, size)
}
}

fun Map<String, Boolean>.assertRettighetstype(nøkkel: String) {
Assertions.assertTrue(this[nøkkel]!!)
this.filterKeys { it != nøkkel }.values.forEach { value ->
Expand All @@ -178,14 +186,17 @@ internal class SøknadFaktaQuizLøserTest {
}

//language=JSON
private fun behovMelding(behovNavn: String) =
private fun behovMelding(
behovNavn: String,
brukSøknadOrkestrator: Boolean = false,
) =
"""
{
"@event_name": "faktum_svar",
"@opprettet": "2020-11-18T11:04:32.867824",
"@id": "930e2beb-d394-4024-b713-dbeb6ad3d4bf",
"@behovId": "930e2beb-d394-4024-b713-dbeb6ad3d4bf",
"bruk-søknad-orkestrator" : false,
"bruk-søknad-orkestrator" : $brukSøknadOrkestrator,
"identer":[{"id":"12345678910","type":"folkeregisterident","historisk":false}],
"søknad_uuid": "41621ac0-f5ee-4cce-b1f5-88a79f25f1a5",
"@behov": [
Expand Down

0 comments on commit 034f486

Please sign in to comment.