Skip to content

Commit

Permalink
Fjern unødvendig behov brukt under lagring av journalpost-ID (#749)
Browse files Browse the repository at this point in the history
  • Loading branch information
bjerga authored Nov 6, 2024
1 parent eb40b71 commit 9273440
Show file tree
Hide file tree
Showing 9 changed files with 11 additions and 33 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ package no.nav.helsearbeidsgiver.inntektsmelding.db.river
import kotlinx.serialization.builtins.serializer
import kotlinx.serialization.json.JsonElement
import no.nav.helsearbeidsgiver.domene.inntektsmelding.v1.Inntektsmelding
import no.nav.helsearbeidsgiver.felles.BehovType
import no.nav.helsearbeidsgiver.felles.EventName
import no.nav.helsearbeidsgiver.felles.Key
import no.nav.helsearbeidsgiver.felles.json.krev
Expand All @@ -25,7 +24,6 @@ import java.util.UUID

data class LagreJournalpostIdMelding(
val eventName: EventName,
val behovType: BehovType,
val transaksjonId: UUID,
val inntektsmelding: Inntektsmelding,
val journalpostId: String,
Expand All @@ -40,12 +38,12 @@ class LagreJournalpostIdRiver(
private val sikkerLogger = sikkerLogger()

override fun les(json: Map<Key, JsonElement>): LagreJournalpostIdMelding? =
// TODO legg til Key.BEHOV etter overgangsfase
if (setOf(Key.DATA, Key.FAIL).any(json::containsKey)) {
null
} else {
LagreJournalpostIdMelding(
eventName = Key.EVENT_NAME.les(EventName.serializer(), json),
behovType = Key.BEHOV.krev(BehovType.LAGRE_JOURNALPOST_ID, BehovType.serializer(), json),
eventName = Key.EVENT_NAME.krev(EventName.INNTEKTSMELDING_JOURNALFOERT, EventName.serializer(), json),
transaksjonId = Key.UUID.les(UuidSerializer, json),
inntektsmelding = Key.INNTEKTSMELDING.les(Inntektsmelding.serializer(), json),
journalpostId = Key.JOURNALPOST_ID.les(String.serializer(), json),
Expand Down Expand Up @@ -119,7 +117,6 @@ class LagreJournalpostIdRiver(
mapOf(
Log.klasse(this@LagreJournalpostIdRiver),
Log.event(eventName),
Log.behov(behovType),
Log.transaksjonId(transaksjonId),
when (inntektsmelding.type) {
is Inntektsmelding.Type.Forespurt -> Log.forespoerselId(inntektsmelding.type.id)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ import kotlinx.serialization.builtins.serializer
import kotlinx.serialization.json.JsonElement
import kotlinx.serialization.json.JsonNull
import no.nav.helsearbeidsgiver.domene.inntektsmelding.v1.Inntektsmelding
import no.nav.helsearbeidsgiver.felles.BehovType
import no.nav.helsearbeidsgiver.felles.EventName
import no.nav.helsearbeidsgiver.felles.Key
import no.nav.helsearbeidsgiver.felles.json.toJson
Expand Down Expand Up @@ -204,7 +203,7 @@ class LagreJournalpostIdRiverTest :
context("ignorerer melding") {
withData(
mapOf(
"melding med ukjent behov" to Pair(Key.BEHOV, BehovType.LAGRE_IM_SKJEMA.toJson()),
// "melding med ukjent behov" to Pair(Key.BEHOV, BehovType.LAGRE_IM_SKJEMA.toJson()),
"melding med data" to Pair(Key.DATA, "".toJson()),
"melding med fail" to Pair(Key.FAIL, Mock.fail.toJson(Fail.serializer())),
),
Expand Down Expand Up @@ -233,8 +232,7 @@ private object Mock {

fun innkommendeMelding(inntektsmelding: Inntektsmelding = mockInntektsmeldingV1()): LagreJournalpostIdMelding =
LagreJournalpostIdMelding(
eventName = EventName.INNTEKTSMELDING_MOTTATT,
behovType = BehovType.LAGRE_JOURNALPOST_ID,
eventName = EventName.INNTEKTSMELDING_JOURNALFOERT,
transaksjonId = UUID.randomUUID(),
inntektsmelding = inntektsmelding,
journalpostId = randomDigitString(10),
Expand All @@ -244,7 +242,6 @@ private object Mock {
fun LagreJournalpostIdMelding.toMap(): Map<Key, JsonElement> =
mapOf(
Key.EVENT_NAME to eventName.toJson(),
Key.BEHOV to behovType.toJson(),
Key.UUID to transaksjonId.toJson(),
Key.JOURNALPOST_ID to journalpostId.toJson(),
Key.INNTEKTSMELDING to inntektsmelding.toJson(Inntektsmelding.serializer()),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,6 @@ class FeilLytter(
listOf(
BehovType.LAGRE_FORESPOERSEL,
BehovType.JOURNALFOER,
BehovType.LAGRE_JOURNALPOST_ID,
)
val eventerSomHaandteres =
listOf(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ class FeilLytterTest :
}

test("skal håndtere feil uten forespørselId") {
val utloesendeMelding = utloesendeMelding(BehovType.LAGRE_JOURNALPOST_ID).minus(Key.FORESPOERSEL_ID)
val utloesendeMelding = utloesendeMelding(BehovType.JOURNALFOER).minus(Key.FORESPOERSEL_ID)
handler.behovSkalHaandteres(utloesendeMelding) shouldBe true
}

Expand Down Expand Up @@ -130,7 +130,7 @@ class FeilLytterTest :
repository.findByKjoeretidBeforeAndStatusIn(now.plusMinutes(1), setOf(BakgrunnsjobbStatus.OPPRETTET), true).size shouldBe 1
// nå kjører bakgrunnsjobb, plukker opp feilen og rekjører - det går fint, så feilen kommer ikke på nytt.
// Istedet feiler neste steg - nytt behov fra samme transaksjon
val feilmeldingLagre = lagRapidFeilmelding(BehovType.LAGRE_JOURNALPOST_ID, transaksjonId)
val feilmeldingLagre = lagRapidFeilmelding(BehovType.LAGRE_FORESPOERSEL, transaksjonId)
rapid.sendTestMessage(feilmeldingLagre)
// status på gammel jobb blir ikke oppdatert i denne testen..
repository.findByKjoeretidBeforeAndStatusIn(now.plusMinutes(1), setOf(BakgrunnsjobbStatus.OPPRETTET), true).size shouldBe 2
Expand All @@ -139,7 +139,7 @@ class FeilLytterTest :
val nyTransaksjonId = Key.UUID.les(UuidSerializer, Json.parseToJsonElement(utloesendeMelding).toMap())
transaksjonId shouldNotBeEqual nyTransaksjonId

val nyFeilmeldingLagre = lagRapidFeilmelding(BehovType.LAGRE_JOURNALPOST_ID, nyTransaksjonId)
val nyFeilmeldingLagre = lagRapidFeilmelding(BehovType.LAGRE_FORESPOERSEL, nyTransaksjonId)
rapid.sendTestMessage(nyFeilmeldingLagre) // !! ny tx, ikke samme igjen!

// Bakgrunnsjobben har blitt oppdatert og går til status FEILET..
Expand Down Expand Up @@ -245,7 +245,7 @@ class FeilLytterTest :
})

fun lagRapidFeilmelding(
behovType: BehovType = BehovType.LAGRE_JOURNALPOST_ID,
behovType: BehovType = BehovType.JOURNALFOER,
transaksjonId: UUID = UUID.randomUUID(),
): String {
val eventName = EventName.INNTEKTSMELDING_MOTTATT
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@ enum class BehovType {

// Asynkrone endringer
LAGRE_FORESPOERSEL, // TODO slett etter databasen er flyttet
LAGRE_JOURNALPOST_ID, // kan erstattes av event

// Asynkrone endringer, men brukt til å prøve igjen ved feil
JOURNALFOER,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ import kotlinx.serialization.builtins.serializer
import no.nav.helsearbeidsgiver.dokarkiv.domene.OpprettOgFerdigstillResponse
import no.nav.helsearbeidsgiver.domene.inntektsmelding.v1.skjema.SkjemaInntektsmelding
import no.nav.helsearbeidsgiver.domene.inntektsmelding.v1.til
import no.nav.helsearbeidsgiver.felles.BehovType
import no.nav.helsearbeidsgiver.felles.EventName
import no.nav.helsearbeidsgiver.felles.Key
import no.nav.helsearbeidsgiver.felles.domene.Forespoersel
Expand Down Expand Up @@ -93,7 +92,6 @@ class InnsendingIT : EndToEndTest() {

messages
.filter(EventName.INNTEKTSMELDING_JOURNALFOERT)
.filter(BehovType.LAGRE_JOURNALPOST_ID)
.firstAsMap()
.also {
it shouldContainKey Key.INNTEKTSMELDING
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -172,7 +172,6 @@ class LagreSelvbestemtIT : EndToEndTest() {

messages
.filter(EventName.INNTEKTSMELDING_JOURNALFOERT)
.filter(BehovType.LAGRE_JOURNALPOST_ID)
.firstAsMap()
.shouldContainNokTilJournalfoeringOgDistribusjon(transaksjonId, nyInntektsmelding, compareType = false)

Expand Down Expand Up @@ -245,7 +244,6 @@ class LagreSelvbestemtIT : EndToEndTest() {

messages
.filter(EventName.INNTEKTSMELDING_JOURNALFOERT)
.filter(BehovType.LAGRE_JOURNALPOST_ID)
.firstAsMap()
.shouldContainNokTilJournalfoeringOgDistribusjon(transaksjonId, Mock.inntektsmelding, compareType = true)

Expand Down Expand Up @@ -319,7 +317,6 @@ class LagreSelvbestemtIT : EndToEndTest() {

messages
.filter(EventName.INNTEKTSMELDING_JOURNALFOERT)
.filter(BehovType.LAGRE_JOURNALPOST_ID)
.all()
.shouldBeEmpty()

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@ import no.nav.helsearbeidsgiver.utils.collection.mapValuesNotNull
import no.nav.helsearbeidsgiver.utils.json.serializer.LocalDateSerializer
import no.nav.helsearbeidsgiver.utils.json.serializer.UuidSerializer
import no.nav.helsearbeidsgiver.utils.json.toJson
import no.nav.helsearbeidsgiver.utils.log.MdcUtils
import no.nav.helsearbeidsgiver.utils.log.logger
import no.nav.helsearbeidsgiver.utils.log.sikkerLogger
import java.time.LocalDate
Expand Down Expand Up @@ -74,7 +73,7 @@ class JournalfoerImRiver(
}

override fun JournalfoerImMelding.haandter(json: Map<Key, JsonElement>): Map<Key, JsonElement> {
"Mottok melding med event '$eventName'. Sender behov '${BehovType.LAGRE_JOURNALPOST_ID}'.".also {
"Mottok melding med event '$eventName'.".also {
logger.info(it)
sikkerLogger.info("$it Innkommende melding:\n${json.toPretty()}")
}
Expand All @@ -83,20 +82,15 @@ class JournalfoerImRiver(

return mapOf(
Key.EVENT_NAME to EventName.INNTEKTSMELDING_JOURNALFOERT.toJson(),
Key.BEHOV to BehovType.LAGRE_JOURNALPOST_ID.toJson(),
Key.UUID to transaksjonId.toJson(),
Key.JOURNALPOST_ID to journalpostId.toJson(),
Key.INNTEKTSMELDING to inntektsmelding.toJson(Inntektsmelding.serializer()),
Key.BESTEMMENDE_FRAVAERSDAG to bestemmendeFravaersdag?.toJson(),
Key.INNSENDING_ID to json[Key.INNSENDING_ID],
).mapValuesNotNull { it }
.also {
MdcUtils.withLogFields(
Log.behov(BehovType.LAGRE_JOURNALPOST_ID),
) {
logger.info("Publiserer behov '${BehovType.LAGRE_JOURNALPOST_ID}' med journalpost-ID '$journalpostId'.")
sikkerLogger.info("Publiserer behov:\n${it.toPretty()}")
}
logger.info("Publiserte melding med event '${EventName.INNTEKTSMELDING_JOURNALFOERT}' og journalpost-ID '$journalpostId'.")
sikkerLogger.info("Publiserte melding:\n${it.toPretty()}")
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,6 @@ class JournalfoerImRiverTest :
testRapid.firstMessage().toMap() shouldContainExactly
mapOf(
Key.EVENT_NAME to EventName.INNTEKTSMELDING_JOURNALFOERT.toJson(),
Key.BEHOV to BehovType.LAGRE_JOURNALPOST_ID.toJson(),
Key.UUID to innkommendeMelding.transaksjonId.toJson(),
Key.JOURNALPOST_ID to journalpostId.toJson(),
Key.INNTEKTSMELDING to Mock.inntektsmelding.toJson(Inntektsmelding.serializer()),
Expand Down Expand Up @@ -123,7 +122,6 @@ class JournalfoerImRiverTest :
testRapid.firstMessage().toMap() shouldContainExactly
mapOf(
Key.EVENT_NAME to EventName.INNTEKTSMELDING_JOURNALFOERT.toJson(),
Key.BEHOV to BehovType.LAGRE_JOURNALPOST_ID.toJson(),
Key.UUID to innkommendeMelding.transaksjonId.toJson(),
Key.JOURNALPOST_ID to journalpostId.toJson(),
Key.INNTEKTSMELDING to Mock.inntektsmelding.toJson(Inntektsmelding.serializer()),
Expand Down Expand Up @@ -175,7 +173,6 @@ class JournalfoerImRiverTest :
testRapid.firstMessage().toMap() shouldContainExactly
mapOf(
Key.EVENT_NAME to EventName.INNTEKTSMELDING_JOURNALFOERT.toJson(),
Key.BEHOV to BehovType.LAGRE_JOURNALPOST_ID.toJson(),
Key.UUID to innkommendeMelding.transaksjonId.toJson(),
Key.JOURNALPOST_ID to journalpostId.toJson(),
Key.INNTEKTSMELDING to Mock.inntektsmelding.toJson(Inntektsmelding.serializer()),
Expand Down

0 comments on commit 9273440

Please sign in to comment.