Skip to content

Commit

Permalink
Reduser overflødig info i fail-melding (#793)
Browse files Browse the repository at this point in the history
* Reduser overflødig info i fail-melding

* Forsikre at Redis-verdier ikke overskriver meldingsverdier
  • Loading branch information
bjerga authored Dec 4, 2024
1 parent 555704e commit 05dbdef
Show file tree
Hide file tree
Showing 87 changed files with 455 additions and 928 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ import no.nav.helsearbeidsgiver.felles.metrics.Metrics
import no.nav.helsearbeidsgiver.felles.rapidsrivers.model.Fail
import no.nav.helsearbeidsgiver.felles.rapidsrivers.river.ObjectRiver
import no.nav.helsearbeidsgiver.felles.utils.Log
import no.nav.helsearbeidsgiver.utils.json.fromJson
import no.nav.helsearbeidsgiver.utils.json.serializer.UuidSerializer
import no.nav.helsearbeidsgiver.utils.json.toJson
import no.nav.helsearbeidsgiver.utils.log.logger
Expand Down Expand Up @@ -87,10 +86,8 @@ class HentArbeidsforholdRiver(
val fail =
Fail(
feilmelding = "Klarte ikke hente arbeidsforhold fra Aareg.",
event = eventName,
transaksjonId = transaksjonId,
forespoerselId = json[Key.FORESPOERSEL_ID]?.fromJson(UuidSerializer),
utloesendeMelding = json.toJson(),
kontekstId = transaksjonId,
utloesendeMelding = json,
)

logger.error(fail.feilmelding)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ import io.mockk.coVerify
import io.mockk.coVerifySequence
import io.mockk.mockk
import kotlinx.serialization.json.JsonElement
import kotlinx.serialization.json.JsonNull
import no.nav.helsearbeidsgiver.aareg.AaregClient
import no.nav.helsearbeidsgiver.felles.BehovType
import no.nav.helsearbeidsgiver.felles.EventName
Expand All @@ -20,6 +19,7 @@ import no.nav.helsearbeidsgiver.felles.domene.Arbeidsforhold
import no.nav.helsearbeidsgiver.felles.json.toJson
import no.nav.helsearbeidsgiver.felles.json.toMap
import no.nav.helsearbeidsgiver.felles.rapidsrivers.model.Fail
import no.nav.helsearbeidsgiver.felles.test.mock.mockFail
import no.nav.helsearbeidsgiver.felles.test.rapidsrivers.firstMessage
import no.nav.helsearbeidsgiver.felles.test.rapidsrivers.sendJson
import no.nav.helsearbeidsgiver.inntektsmelding.aareg.HentArbeidsforholdMelding
Expand Down Expand Up @@ -80,10 +80,8 @@ class HentArbeidsforholdRiverTest :
val forventetFail =
Fail(
feilmelding = "Klarte ikke hente arbeidsforhold fra Aareg.",
event = innkommendeMelding.eventName,
transaksjonId = innkommendeMelding.transaksjonId,
forespoerselId = null,
utloesendeMelding = innkommendeMelding.toMap().toJson(),
kontekstId = innkommendeMelding.transaksjonId,
utloesendeMelding = innkommendeMelding.toMap(),
)

testRapid.sendJson(innkommendeMelding.toMap())
Expand Down Expand Up @@ -145,12 +143,5 @@ private object Mock {
Key.DATA to data.toJson(),
)

val fail =
Fail(
feilmelding = "All work and no play makes Jack a dull boy.",
event = EventName.AKTIVE_ORGNR_REQUESTED,
transaksjonId = UUID.randomUUID(),
forespoerselId = UUID.randomUUID(),
utloesendeMelding = JsonNull,
)
val fail = mockFail("All work and no play makes Jack a dull boy.", EventName.AKTIVE_ORGNR_REQUESTED)
}
Original file line number Diff line number Diff line change
Expand Up @@ -201,7 +201,7 @@ class AktiveOrgnrService(
melding: Map<Key, JsonElement>,
fail: Fail,
) {
onError(fail.transaksjonId, fail.feilmelding)
onError(fail.kontekstId, fail.feilmelding)
}

private fun onError(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ import io.mockk.clearAllMocks
import io.mockk.verify
import kotlinx.serialization.builtins.serializer
import kotlinx.serialization.json.JsonElement
import kotlinx.serialization.json.JsonObject
import no.nav.helsearbeidsgiver.felles.BehovType
import no.nav.helsearbeidsgiver.felles.EventName
import no.nav.helsearbeidsgiver.felles.Key
Expand All @@ -21,12 +20,12 @@ import no.nav.helsearbeidsgiver.felles.domene.Person
import no.nav.helsearbeidsgiver.felles.domene.ResultJson
import no.nav.helsearbeidsgiver.felles.json.personMapSerializer
import no.nav.helsearbeidsgiver.felles.json.toJson
import no.nav.helsearbeidsgiver.felles.rapidsrivers.model.Fail
import no.nav.helsearbeidsgiver.felles.rapidsrivers.redis.RedisPrefix
import no.nav.helsearbeidsgiver.felles.rapidsrivers.service.ServiceRiverStateful
import no.nav.helsearbeidsgiver.felles.test.json.lesBehov
import no.nav.helsearbeidsgiver.felles.test.json.plusData
import no.nav.helsearbeidsgiver.felles.test.mock.MockRedis
import no.nav.helsearbeidsgiver.felles.test.mock.mockFail
import no.nav.helsearbeidsgiver.felles.test.rapidsrivers.message
import no.nav.helsearbeidsgiver.felles.test.rapidsrivers.sendJson
import no.nav.helsearbeidsgiver.utils.json.toJson
Expand Down Expand Up @@ -160,31 +159,22 @@ class AktiveOrgnrServiceTest :
}

test("svarer med feilmelding dersom man ikke klarer å hente noe") {
val transaksjonId = UUID.randomUUID()
val feilmelding = "Kafka streiker for bedre vilkår :("
val expectedFailure = Mock.failureResult(feilmelding)
val fail =
mockFail(
feilmelding = "Kafka streiker for bedre vilkår :(",
eventName = EventName.AKTIVE_ORGNR_REQUESTED,
behovType = BehovType.ARBEIDSGIVERE,
)
val expectedFailure = Mock.failureResult(fail.feilmelding)

testRapid.sendJson(
Mock.startmelding(transaksjonId),
Mock.startmelding(fail.kontekstId),
)

testRapid.sendJson(
Fail(
feilmelding = feilmelding,
event = EventName.AKTIVE_ORGNR_REQUESTED,
transaksjonId = transaksjonId,
forespoerselId = null,
utloesendeMelding =
JsonObject(
mapOf(
Key.BEHOV.toString() to BehovType.ARBEIDSGIVERE.toJson(),
),
),
).tilMelding(),
)
testRapid.sendJson(fail.tilMelding())

verify {
mockRedis.store.skrivResultat(transaksjonId, expectedFailure)
mockRedis.store.skrivResultat(fail.kontekstId, expectedFailure)
}
}
})
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -78,10 +78,8 @@ class AltinnRiver(
val fail =
Fail(
feilmelding = "Klarte ikke hente organisasjonsrettigheter fra Altinn.",
event = eventName,
transaksjonId = transaksjonId,
forespoerselId = null,
utloesendeMelding = json.toJson(),
kontekstId = transaksjonId,
utloesendeMelding = json,
)

logger.error(fail.feilmelding)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,10 +79,8 @@ class TilgangRiver(
val fail =
Fail(
feilmelding = "Klarte ikke sjekke tilgang i Altinn.",
event = eventName,
transaksjonId = transaksjonId,
forespoerselId = null,
utloesendeMelding = json.toJson(),
kontekstId = transaksjonId,
utloesendeMelding = json,
)

logger.error(fail.feilmelding)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -74,10 +74,8 @@ class AltinnRiverTest :
val forventetFail =
Fail(
feilmelding = "Klarte ikke hente organisasjonsrettigheter fra Altinn.",
event = innkommendeMelding.eventName,
transaksjonId = innkommendeMelding.transaksjonId,
forespoerselId = null,
utloesendeMelding = innkommendeJsonMap.toJson(),
kontekstId = innkommendeMelding.transaksjonId,
utloesendeMelding = innkommendeJsonMap,
)

coEvery { mockAltinnClient.hentRettighetOrganisasjoner(any()) } throws NullPointerException()
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
package no.nav.helsearbeidsgiver.inntektsmelding.altinn

import kotlinx.serialization.json.JsonElement
import kotlinx.serialization.json.JsonNull
import no.nav.helsearbeidsgiver.altinn.AltinnOrganisasjon
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
import no.nav.helsearbeidsgiver.felles.rapidsrivers.model.Fail
import no.nav.helsearbeidsgiver.felles.test.mock.mockFail
import no.nav.helsearbeidsgiver.utils.json.toJson
import no.nav.helsearbeidsgiver.utils.test.wrapper.genererGyldig
import no.nav.helsearbeidsgiver.utils.wrapper.Fnr
Expand Down Expand Up @@ -40,14 +39,7 @@ object Mock {
).toJson(),
)

val fail =
Fail(
feilmelding = "One does not simply walk into Mordor.",
event = EventName.AKTIVE_ORGNR_REQUESTED,
transaksjonId = UUID.randomUUID(),
forespoerselId = null,
utloesendeMelding = JsonNull,
)
val fail = mockFail("One does not simply walk into Mordor.", EventName.AKTIVE_ORGNR_REQUESTED)

val altinnOrganisasjoner =
setOf(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ import io.mockk.coVerify
import io.mockk.coVerifySequence
import io.mockk.mockk
import kotlinx.serialization.json.JsonElement
import kotlinx.serialization.json.JsonNull
import no.nav.helsearbeidsgiver.altinn.AltinnClient
import no.nav.helsearbeidsgiver.felles.BehovType
import no.nav.helsearbeidsgiver.felles.EventName
Expand All @@ -21,6 +20,7 @@ import no.nav.helsearbeidsgiver.felles.domene.Tilgang
import no.nav.helsearbeidsgiver.felles.json.toJson
import no.nav.helsearbeidsgiver.felles.json.toMap
import no.nav.helsearbeidsgiver.felles.rapidsrivers.model.Fail
import no.nav.helsearbeidsgiver.felles.test.mock.mockFail
import no.nav.helsearbeidsgiver.felles.test.rapidsrivers.firstMessage
import no.nav.helsearbeidsgiver.felles.test.rapidsrivers.sendJson
import no.nav.helsearbeidsgiver.inntektsmelding.altinn.MockTilgang.toMap
Expand Down Expand Up @@ -81,10 +81,8 @@ class TilgangRiverTest :
val forventetFail =
Fail(
feilmelding = "Klarte ikke sjekke tilgang i Altinn.",
event = innkommendeMelding.eventName,
transaksjonId = innkommendeMelding.transaksjonId,
forespoerselId = null,
utloesendeMelding = innkommendeMelding.toMap().toJson(),
kontekstId = innkommendeMelding.transaksjonId,
utloesendeMelding = innkommendeMelding.toMap(),
)

testRapid.sendJson(innkommendeMelding.toMap())
Expand Down Expand Up @@ -149,12 +147,5 @@ private object MockTilgang {
Key.DATA to data.toJson(),
)

val fail =
Fail(
feilmelding = "You shall not pass!",
event = EventName.TILGANG_FORESPOERSEL_REQUESTED,
transaksjonId = UUID.randomUUID(),
forespoerselId = UUID.randomUUID(),
utloesendeMelding = JsonNull,
)
val fail = mockFail("You shall not pass!", EventName.TILGANG_FORESPOERSEL_REQUESTED)
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ import io.kotest.matchers.shouldNotBe
import io.mockk.clearAllMocks
import kotlinx.serialization.builtins.serializer
import kotlinx.serialization.json.JsonElement
import kotlinx.serialization.json.JsonObject
import no.nav.helsearbeidsgiver.domene.inntektsmelding.v1.Inntektsmelding
import no.nav.helsearbeidsgiver.domene.inntektsmelding.v1.skjema.SkjemaInntektsmelding
import no.nav.helsearbeidsgiver.felles.BehovType
Expand All @@ -20,12 +19,12 @@ import no.nav.helsearbeidsgiver.felles.json.lesOrNull
import no.nav.helsearbeidsgiver.felles.json.orgMapSerializer
import no.nav.helsearbeidsgiver.felles.json.personMapSerializer
import no.nav.helsearbeidsgiver.felles.json.toJson
import no.nav.helsearbeidsgiver.felles.rapidsrivers.model.Fail
import no.nav.helsearbeidsgiver.felles.rapidsrivers.service.ServiceRiverStateless
import no.nav.helsearbeidsgiver.felles.test.json.lesBehov
import no.nav.helsearbeidsgiver.felles.test.json.lesData
import no.nav.helsearbeidsgiver.felles.test.json.lesEventName
import no.nav.helsearbeidsgiver.felles.test.json.plusData
import no.nav.helsearbeidsgiver.felles.test.mock.mockFail
import no.nav.helsearbeidsgiver.felles.test.mock.mockForespoersel
import no.nav.helsearbeidsgiver.felles.test.mock.mockInntektsmeldingV1
import no.nav.helsearbeidsgiver.felles.test.mock.mockSkjemaInntektsmelding
Expand Down Expand Up @@ -135,22 +134,14 @@ class BerikInntektsmeldingServiceTest :
}

test("skal ved feil ikke foreta seg noe (FeilLytter skal plukke opp og rekjøre meldingen som utløste feilen)") {

val transaksjonId = UUID.randomUUID()
testRapid.sendJson(
Fail(
val fail =
mockFail(
feilmelding = "Detta gikk jo ikke så bra.",
event = EventName.INNTEKTSMELDING_SKJEMA_LAGRET,
transaksjonId = transaksjonId,
forespoerselId = Mock.skjema.forespoerselId,
utloesendeMelding =
JsonObject(
mapOf(
Key.BEHOV.toString() to BehovType.HENT_TRENGER_IM.toJson(),
),
),
).tilMelding(),
)
eventName = EventName.INNTEKTSMELDING_SKJEMA_LAGRET,
behovType = BehovType.HENT_TRENGER_IM,
)

testRapid.sendJson(fail.tilMelding())

testRapid.inspektør.size shouldBeExactly 0
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -80,10 +80,8 @@ class HentEksternImRiver(
val fail =
Fail(
feilmelding = feilmelding,
event = eventName,
transaksjonId = transaksjonId,
forespoerselId = forespoerselId,
utloesendeMelding = json.toJson(),
kontekstId = transaksjonId,
utloesendeMelding = json,
)

logger.error(feilmelding)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ import io.mockk.mockk
import io.mockk.verify
import io.mockk.verifySequence
import kotlinx.serialization.json.JsonElement
import kotlinx.serialization.json.JsonNull
import no.nav.helsearbeidsgiver.felles.BehovType
import no.nav.helsearbeidsgiver.felles.EventName
import no.nav.helsearbeidsgiver.felles.Key
Expand All @@ -21,6 +20,7 @@ import no.nav.helsearbeidsgiver.felles.json.toJson
import no.nav.helsearbeidsgiver.felles.json.toMap
import no.nav.helsearbeidsgiver.felles.rapidsrivers.model.Fail
import no.nav.helsearbeidsgiver.felles.test.mock.mockEksternInntektsmelding
import no.nav.helsearbeidsgiver.felles.test.mock.mockFail
import no.nav.helsearbeidsgiver.felles.test.rapidsrivers.firstMessage
import no.nav.helsearbeidsgiver.felles.test.rapidsrivers.sendJson
import no.nav.helsearbeidsgiver.inntektsmelding.brospinn.Mock.toMap
Expand Down Expand Up @@ -112,10 +112,8 @@ class HentEksternImRiverTest :
val forventetFail =
Fail(
feilmelding = expectedFeilmelding,
event = innkommendeMelding.eventName,
transaksjonId = innkommendeMelding.transaksjonId,
forespoerselId = innkommendeMelding.forespoerselId,
utloesendeMelding = innkommendeJsonMap.toJson(),
kontekstId = innkommendeMelding.transaksjonId,
utloesendeMelding = innkommendeJsonMap,
)

every { mockSpinnKlient.hentEksternInntektsmelding(any()) } throws error
Expand Down Expand Up @@ -175,12 +173,5 @@ private object Mock {
).toJson(),
)

val fail =
Fail(
feilmelding = "Vi spiller ikke Flo Rida sin versjon.",
event = EventName.FORESPOERSEL_BESVART,
transaksjonId = UUID.randomUUID(),
forespoerselId = UUID.randomUUID(),
utloesendeMelding = JsonNull,
)
val fail = mockFail("Vi spiller ikke Flo Rida sin versjon.", EventName.FORESPOERSEL_BESVART)
}
Original file line number Diff line number Diff line change
Expand Up @@ -86,10 +86,8 @@ class HentVirksomhetNavnRiver(
val fail =
Fail(
feilmelding = "Klarte ikke hente virksomhet fra Brreg.",
event = eventName,
transaksjonId = transaksjonId,
forespoerselId = null,
utloesendeMelding = json.toJson(),
kontekstId = transaksjonId,
utloesendeMelding = json,
)

logger.error(fail.feilmelding)
Expand Down
Loading

0 comments on commit 05dbdef

Please sign in to comment.