From 57d99888bc5922f7ee245fb4eea611abbc917c1f Mon Sep 17 00:00:00 2001 From: Mikael Bjerga Date: Tue, 23 Jul 2024 15:59:40 +0200 Subject: [PATCH] =?UTF-8?q?Legg=20til=20ny=20river=20for=20=C3=A5=20hente?= =?UTF-8?q?=20arbeidsforhold?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../inntektsmelding/aareg/App.kt | 13 +- .../aareg/ArbeidsforholdLoeser.kt | 4 +- .../inntektsmelding/aareg/Env.kt | 18 ++ .../inntektsmelding/aareg/Environment.kt | 25 --- .../aareg/HentArbeidsforholdRiver.kt | 104 ++++++++++++ .../inntekt/ArbeidsforholdLoeserTest.kt | 20 +-- .../inntekt/HentArbeidsforholdRiverTest.kt | 156 ++++++++++++++++++ .../aktiveorgnrservice/AktiveOrgnrService.kt | 2 +- .../AktiveOrgnrServiceTest.kt | 2 +- .../helsearbeidsgiver/felles/EventTypes.kt | 2 +- .../felles/metrics/Metrics.kt | 2 + .../src/test/kotlin/LocalIntegrasjonApp.kt | 2 +- .../integrasjonstest/AktiveOrgnrServiceIT.kt | 4 +- .../integrasjonstest/utils/EndToEndTest.kt | 4 +- .../LagreSelvbestemtImService.kt | 2 +- .../LagreSelvbestemtImServiceTest.kt | 4 +- 16 files changed, 311 insertions(+), 53 deletions(-) create mode 100644 aareg/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/aareg/Env.kt delete mode 100644 aareg/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/aareg/Environment.kt create mode 100644 aareg/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/aareg/HentArbeidsforholdRiver.kt create mode 100644 aareg/src/test/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/inntekt/HentArbeidsforholdRiverTest.kt diff --git a/aareg/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/aareg/App.kt b/aareg/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/aareg/App.kt index 0695333d3..df3959134 100644 --- a/aareg/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/aareg/App.kt +++ b/aareg/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/aareg/App.kt @@ -11,17 +11,20 @@ private val logger = "im-aareg".logger() fun main() { RapidApplication .create(System.getenv()) - .createAareg(buildClient(setUpEnvironment())) + .createAaregRiver(buildClient()) .start() } -fun RapidsConnection.createAareg(aaregClient: AaregClient): RapidsConnection = +fun RapidsConnection.createAaregRiver(aaregClient: AaregClient): RapidsConnection = also { logger.info("Starter ${ArbeidsforholdLoeser::class.simpleName}...") ArbeidsforholdLoeser(this, aaregClient) + + logger.info("Starter ${HentArbeidsforholdRiver::class.simpleName}...") + HentArbeidsforholdRiver(aaregClient).connect(this) } -fun buildClient(environment: Environment): AaregClient { - val tokenGetter = oauth2ClientCredentialsTokenGetter(environment.oauth2Environment) - return AaregClient(url = environment.aaregUrl, getAccessToken = tokenGetter) +private fun buildClient(): AaregClient { + val tokenGetter = oauth2ClientCredentialsTokenGetter(Env.oauth2Environment) + return AaregClient(url = Env.aaregUrl, getAccessToken = tokenGetter) } diff --git a/aareg/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/aareg/ArbeidsforholdLoeser.kt b/aareg/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/aareg/ArbeidsforholdLoeser.kt index daf4e528d..5a297392c 100644 --- a/aareg/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/aareg/ArbeidsforholdLoeser.kt +++ b/aareg/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/aareg/ArbeidsforholdLoeser.kt @@ -46,7 +46,7 @@ class ArbeidsforholdLoeser( override fun accept(): River.PacketValidation = River.PacketValidation { it.demandValues( - Key.BEHOV to BehovType.ARBEIDSFORHOLD.name, + Key.BEHOV to BehovType.HENT_ARBEIDSFORHOLD.name, ) it.requireKeys( Key.IDENTITETSNUMMER, @@ -66,7 +66,7 @@ class ArbeidsforholdLoeser( val identitetsnummer = Key.IDENTITETSNUMMER.les(String.serializer(), json) val forespoerselId = Key.FORESPOERSEL_ID.lesOrNull(UuidSerializer, json) - logger.info("Løser behov ${BehovType.ARBEIDSFORHOLD} med transaksjon-ID $transaksjonId") + logger.info("Løser behov ${BehovType.HENT_ARBEIDSFORHOLD} med transaksjon-ID $transaksjonId") val arbeidsforhold = hentArbeidsforhold(identitetsnummer, transaksjonId) diff --git a/aareg/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/aareg/Env.kt b/aareg/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/aareg/Env.kt new file mode 100644 index 000000000..c51c7546c --- /dev/null +++ b/aareg/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/aareg/Env.kt @@ -0,0 +1,18 @@ +package no.nav.helsearbeidsgiver.inntektsmelding.aareg + +import no.nav.helsearbeidsgiver.felles.fromEnv +import no.nav.helsearbeidsgiver.tokenprovider.OAuth2Environment + +object Env { + val aaregUrl = "AAREG_URL".fromEnv() + + val oauth2Environment = + OAuth2Environment( + scope = "AAREG_SCOPE".fromEnv(), + wellKnownUrl = "AZURE_APP_WELL_KNOWN_URL".fromEnv(), + tokenEndpointUrl = "AZURE_OPENID_CONFIG_TOKEN_ENDPOINT".fromEnv(), + clientId = "AZURE_APP_CLIENT_ID".fromEnv(), + clientSecret = "AZURE_APP_CLIENT_SECRET".fromEnv(), + clientJwk = "AZURE_APP_JWK".fromEnv(), + ) +} diff --git a/aareg/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/aareg/Environment.kt b/aareg/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/aareg/Environment.kt deleted file mode 100644 index 17a522f6b..000000000 --- a/aareg/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/aareg/Environment.kt +++ /dev/null @@ -1,25 +0,0 @@ -package no.nav.helsearbeidsgiver.inntektsmelding.aareg - -import no.nav.helsearbeidsgiver.felles.getEnvVar -import no.nav.helsearbeidsgiver.tokenprovider.OAuth2Environment - -fun setUpEnvironment(): Environment = - Environment( - raw = System.getenv(), - aaregUrl = getEnvVar("AAREG_URL"), - oauth2Environment = - OAuth2Environment( - scope = getEnvVar("AAREG_SCOPE"), - wellKnownUrl = getEnvVar("AZURE_APP_WELL_KNOWN_URL"), - tokenEndpointUrl = getEnvVar("AZURE_OPENID_CONFIG_TOKEN_ENDPOINT"), - clientId = getEnvVar("AZURE_APP_CLIENT_ID"), - clientSecret = getEnvVar("AZURE_APP_CLIENT_SECRET"), - clientJwk = getEnvVar("AZURE_APP_JWK"), - ), - ) - -data class Environment( - val raw: Map, - val aaregUrl: String, - val oauth2Environment: OAuth2Environment, -) diff --git a/aareg/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/aareg/HentArbeidsforholdRiver.kt b/aareg/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/aareg/HentArbeidsforholdRiver.kt new file mode 100644 index 000000000..47dc08ab6 --- /dev/null +++ b/aareg/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/aareg/HentArbeidsforholdRiver.kt @@ -0,0 +1,104 @@ +package no.nav.helsearbeidsgiver.inntektsmelding.aareg + +import kotlinx.serialization.json.JsonElement +import no.nav.helsearbeidsgiver.aareg.AaregClient +import no.nav.helsearbeidsgiver.felles.Arbeidsforhold +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 +import no.nav.helsearbeidsgiver.felles.json.les +import no.nav.helsearbeidsgiver.felles.json.toJson +import no.nav.helsearbeidsgiver.felles.json.toMap +import no.nav.helsearbeidsgiver.felles.loeser.ObjectRiver +import no.nav.helsearbeidsgiver.felles.metrics.Metrics +import no.nav.helsearbeidsgiver.felles.metrics.recordTime +import no.nav.helsearbeidsgiver.felles.rapidsrivers.model.Fail +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 +import no.nav.helsearbeidsgiver.utils.log.sikkerLogger +import no.nav.helsearbeidsgiver.utils.wrapper.Fnr +import java.util.UUID + +data class HentArbeidsforholdMelding( + val eventName: EventName, + val behovType: BehovType, + val transaksjonId: UUID, + val data: Map, + val fnr: Fnr, +) + +class HentArbeidsforholdRiver( + private val aaregClient: AaregClient, +) : ObjectRiver() { + private val logger = logger() + private val sikkerLogger = sikkerLogger() + + override fun les(json: Map): HentArbeidsforholdMelding? = + if (Key.FAIL in json) { + null + } else { + val data = json[Key.DATA]?.toMap().orEmpty() + + HentArbeidsforholdMelding( + eventName = Key.EVENT_NAME.les(EventName.serializer(), json), + behovType = Key.BEHOV.krev(BehovType.HENT_ARBEIDSFORHOLD, BehovType.serializer(), json), + transaksjonId = Key.UUID.les(UuidSerializer, json), + data = data, + fnr = Key.FNR.les(Fnr.serializer(), data), + ) + } + + override fun HentArbeidsforholdMelding.haandter(json: Map): Map { + val arbeidsforhold = + Metrics.aaregRequest + .recordTime(aaregClient::hentArbeidsforhold) { + aaregClient.hentArbeidsforhold(fnr.verdi, transaksjonId.toString()) + }.map { it.tilArbeidsforhold() } + + "Fant ${arbeidsforhold.size} arbeidsforhold.".also { + logger.info(it) + sikkerLogger.info(it) + } + + return mapOf( + Key.EVENT_NAME to eventName.toJson(), + Key.UUID to transaksjonId.toJson(), + Key.DATA to + data + .plus( + Key.ARBEIDSFORHOLD to arbeidsforhold.toJson(Arbeidsforhold.serializer()), + ).toJson(), + ) + } + + override fun HentArbeidsforholdMelding.haandterFeil( + json: Map, + error: Throwable, + ): Map { + val fail = + Fail( + feilmelding = "Klarte ikke hente arbeidsforhold fra Aareg.", + event = eventName, + transaksjonId = transaksjonId, + forespoerselId = json[Key.FORESPOERSEL_ID]?.fromJson(UuidSerializer), + utloesendeMelding = json.toJson(), + ) + + logger.error(fail.feilmelding) + sikkerLogger.error(fail.feilmelding, error) + + return fail.tilMelding() + } + + override fun HentArbeidsforholdMelding.loggfelt(): Map = + mapOf( + Log.klasse(this@HentArbeidsforholdRiver), + Log.event(eventName), + Log.behov(behovType), + Log.transaksjonId(transaksjonId), + ) +} diff --git a/aareg/src/test/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/inntekt/ArbeidsforholdLoeserTest.kt b/aareg/src/test/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/inntekt/ArbeidsforholdLoeserTest.kt index 58ef896e2..f08bff093 100644 --- a/aareg/src/test/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/inntekt/ArbeidsforholdLoeserTest.kt +++ b/aareg/src/test/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/inntekt/ArbeidsforholdLoeserTest.kt @@ -29,6 +29,8 @@ import no.nav.helsearbeidsgiver.inntektsmelding.aareg.tilArbeidsforhold 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.test.wrapper.genererGyldig +import no.nav.helsearbeidsgiver.utils.wrapper.Fnr import java.util.UUID class ArbeidsforholdLoeserTest : @@ -46,6 +48,7 @@ class ArbeidsforholdLoeserTest : test("ved innkommende behov så hentes og publiseres arbeidsforhold fra aareg") { val expectedUuid = UUID.randomUUID() + val fnr = Fnr.genererGyldig().verdi val expectedArbeidsforhold = mockKlientArbeidsforhold() @@ -57,14 +60,14 @@ class ArbeidsforholdLoeserTest : testRapid.sendJson( Key.EVENT_NAME to EventName.INSENDING_STARTED.toJson(), - Key.BEHOV to BehovType.ARBEIDSFORHOLD.toJson(), - Key.IDENTITETSNUMMER to Mock.FNR.toJson(), + Key.BEHOV to BehovType.HENT_ARBEIDSFORHOLD.toJson(), + Key.IDENTITETSNUMMER to fnr.toJson(), Key.UUID to expectedUuid.toJson(), ) val actual = testRapid.firstMessage().toMap() - coVerifySequence { mockAaregClient.hentArbeidsforhold(Mock.FNR, expectedUuid.toString()) } + coVerifySequence { mockAaregClient.hentArbeidsforhold(fnr, expectedUuid.toString()) } testRapid.inspektør.size shouldBeExactly 1 actual[Key.UUID]?.fromJson(UuidSerializer) shouldBe expectedUuid @@ -76,12 +79,13 @@ class ArbeidsforholdLoeserTest : val event = EventName.TRENGER_REQUESTED val transaksjonId = UUID.randomUUID() val forespoerselId = UUID.randomUUID() + val fnr = Fnr.genererGyldig().verdi val innkommendeMelding = mapOf( Key.EVENT_NAME to event.toJson(), - Key.BEHOV to BehovType.ARBEIDSFORHOLD.toJson(), - Key.IDENTITETSNUMMER to Mock.FNR.toJson(), + Key.BEHOV to BehovType.HENT_ARBEIDSFORHOLD.toJson(), + Key.IDENTITETSNUMMER to fnr.toJson(), Key.UUID to transaksjonId.toJson(), Key.FORESPOERSEL_ID to forespoerselId.toJson(), ) @@ -99,7 +103,7 @@ class ArbeidsforholdLoeserTest : testRapid.sendJson(innkommendeMelding) - coVerifySequence { mockAaregClient.hentArbeidsforhold(Mock.FNR, expected.transaksjonId.toString()) } + coVerifySequence { mockAaregClient.hentArbeidsforhold(fnr, expected.transaksjonId.toString()) } testRapid.inspektør.size shouldBeExactly 1 @@ -109,7 +113,3 @@ class ArbeidsforholdLoeserTest : fail.utloesendeMelding.toMap() shouldContainAll innkommendeMelding } }) - -private object Mock { - const val FNR = "12121200012" -} diff --git a/aareg/src/test/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/inntekt/HentArbeidsforholdRiverTest.kt b/aareg/src/test/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/inntekt/HentArbeidsforholdRiverTest.kt new file mode 100644 index 000000000..dd700dbd9 --- /dev/null +++ b/aareg/src/test/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/inntekt/HentArbeidsforholdRiverTest.kt @@ -0,0 +1,156 @@ +package no.nav.helsearbeidsgiver.inntektsmelding.inntekt + +import io.kotest.core.spec.style.FunSpec +import io.kotest.datatest.withData +import io.kotest.matchers.ints.shouldBeExactly +import io.kotest.matchers.maps.shouldContainExactly +import io.mockk.clearAllMocks +import io.mockk.coEvery +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.helse.rapids_rivers.testsupport.TestRapid +import no.nav.helsearbeidsgiver.aareg.AaregClient +import no.nav.helsearbeidsgiver.felles.Arbeidsforhold +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.json.toMap +import no.nav.helsearbeidsgiver.felles.rapidsrivers.model.Fail +import no.nav.helsearbeidsgiver.felles.test.rapidsrivers.firstMessage +import no.nav.helsearbeidsgiver.felles.test.rapidsrivers.sendJson +import no.nav.helsearbeidsgiver.inntektsmelding.aareg.HentArbeidsforholdMelding +import no.nav.helsearbeidsgiver.inntektsmelding.aareg.HentArbeidsforholdRiver +import no.nav.helsearbeidsgiver.inntektsmelding.aareg.tilArbeidsforhold +import no.nav.helsearbeidsgiver.inntektsmelding.inntekt.Mock.toMap +import no.nav.helsearbeidsgiver.utils.json.toJson +import no.nav.helsearbeidsgiver.utils.test.wrapper.genererGyldig +import no.nav.helsearbeidsgiver.utils.wrapper.Fnr +import java.util.UUID + +class HentArbeidsforholdRiverTest : + FunSpec({ + val testRapid = TestRapid() + val mockAaregClient = mockk() + + HentArbeidsforholdRiver(mockAaregClient).connect(testRapid) + + beforeTest { + testRapid.reset() + clearAllMocks() + } + + test("henter arbeidsforhold") { + val expectedArbeidsforhold = + mockKlientArbeidsforhold() + .tilArbeidsforhold() + .let(::listOf) + + coEvery { mockAaregClient.hentArbeidsforhold(any(), any()) } returns listOf(mockKlientArbeidsforhold()) + + val innkommendeMelding = Mock.innkommendeMelding() + + testRapid.sendJson(innkommendeMelding.toMap()) + + testRapid.inspektør.size shouldBeExactly 1 + + testRapid.firstMessage().toMap() shouldContainExactly + mapOf( + Key.EVENT_NAME to innkommendeMelding.eventName.toJson(), + Key.UUID to innkommendeMelding.transaksjonId.toJson(), + Key.DATA to + innkommendeMelding.data + .plus(Key.ARBEIDSFORHOLD to expectedArbeidsforhold.toJson(Arbeidsforhold.serializer())) + .toJson(), + ) + + coVerifySequence { + mockAaregClient.hentArbeidsforhold(innkommendeMelding.fnr.verdi, innkommendeMelding.transaksjonId.toString()) + } + } + + test("håndterer feil") { + coEvery { mockAaregClient.hentArbeidsforhold(any(), any()) } throws NullPointerException() + + val innkommendeMelding = Mock.innkommendeMelding() + + val forventetFail = + Fail( + feilmelding = "Klarte ikke hente arbeidsforhold fra Aareg.", + event = innkommendeMelding.eventName, + transaksjonId = innkommendeMelding.transaksjonId, + forespoerselId = null, + utloesendeMelding = innkommendeMelding.toMap().toJson(), + ) + + testRapid.sendJson(innkommendeMelding.toMap()) + + testRapid.inspektør.size shouldBeExactly 1 + + testRapid.firstMessage().toMap() shouldContainExactly forventetFail.tilMelding() + + coVerifySequence { + mockAaregClient.hentArbeidsforhold(innkommendeMelding.fnr.verdi, innkommendeMelding.transaksjonId.toString()) + } + } + + context("ignorerer melding") { + withData( + mapOf( + "melding med ukjent behov" to Pair(Key.BEHOV, BehovType.HENT_SELVBESTEMT_IM.toJson()), + "melding med data som flagg" to Pair(Key.DATA, "".toJson()), + "melding med fail" to Pair(Key.FAIL, Mock.fail.toJson(Fail.serializer())), + ), + ) { uoensketKeyMedVerdi -> + testRapid.sendJson( + Mock + .innkommendeMelding() + .toMap() + .plus(uoensketKeyMedVerdi), + ) + + testRapid.inspektør.size shouldBeExactly 0 + + coVerify(exactly = 0) { + mockAaregClient.hentArbeidsforhold(any(), any()) + } + } + } + }) + +private object Mock { + fun innkommendeMelding(): HentArbeidsforholdMelding { + val fnr = Fnr.genererGyldig() + + return HentArbeidsforholdMelding( + eventName = EventName.AKTIVE_ORGNR_REQUESTED, + behovType = BehovType.HENT_ARBEIDSFORHOLD, + transaksjonId = UUID.randomUUID(), + data = + mapOf( + Key.FNR to fnr.toJson(Fnr.serializer()), + ), + fnr = fnr, + ) + } + + fun HentArbeidsforholdMelding.toMap(): Map = + mapOf( + Key.EVENT_NAME to eventName.toJson(), + Key.BEHOV to behovType.toJson(), + Key.UUID to transaksjonId.toJson(), + 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, + ) +} diff --git a/aktiveorgnrservice/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/aktiveorgnrservice/AktiveOrgnrService.kt b/aktiveorgnrservice/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/aktiveorgnrservice/AktiveOrgnrService.kt index 8353a5500..1f78371c2 100644 --- a/aktiveorgnrservice/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/aktiveorgnrservice/AktiveOrgnrService.kt +++ b/aktiveorgnrservice/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/aktiveorgnrservice/AktiveOrgnrService.kt @@ -115,7 +115,7 @@ class AktiveOrgnrService( rapid.publish( Key.EVENT_NAME to eventName.toJson(), - Key.BEHOV to BehovType.ARBEIDSFORHOLD.toJson(), + Key.BEHOV to BehovType.HENT_ARBEIDSFORHOLD.toJson(), Key.UUID to steg0.transaksjonId.toJson(), Key.IDENTITETSNUMMER to steg0.sykmeldtFnr.toJson(), ) diff --git a/aktiveorgnrservice/src/test/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/aktiveorgnrservice/AktiveOrgnrServiceTest.kt b/aktiveorgnrservice/src/test/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/aktiveorgnrservice/AktiveOrgnrServiceTest.kt index b26c449c5..c633b11e0 100644 --- a/aktiveorgnrservice/src/test/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/aktiveorgnrservice/AktiveOrgnrServiceTest.kt +++ b/aktiveorgnrservice/src/test/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/aktiveorgnrservice/AktiveOrgnrServiceTest.kt @@ -64,7 +64,7 @@ class AktiveOrgnrServiceTest : testRapid.inspektør.size shouldBeExactly 3 testRapid.message(0).lesBehov() shouldBe BehovType.ARBEIDSGIVERE - testRapid.message(1).lesBehov() shouldBe BehovType.ARBEIDSFORHOLD + testRapid.message(1).lesBehov() shouldBe BehovType.HENT_ARBEIDSFORHOLD testRapid.message(2).lesBehov() shouldBe BehovType.HENT_PERSONER testRapid.sendJson( diff --git a/felles/src/main/kotlin/no/nav/helsearbeidsgiver/felles/EventTypes.kt b/felles/src/main/kotlin/no/nav/helsearbeidsgiver/felles/EventTypes.kt index a889c3fa4..78f64d08c 100644 --- a/felles/src/main/kotlin/no/nav/helsearbeidsgiver/felles/EventTypes.kt +++ b/felles/src/main/kotlin/no/nav/helsearbeidsgiver/felles/EventTypes.kt @@ -5,7 +5,7 @@ import kotlinx.serialization.Serializable @Serializable enum class BehovType { // Hente data - ARBEIDSFORHOLD, + HENT_ARBEIDSFORHOLD, ARBEIDSGIVERE, FULLT_NAVN, HENT_EKSTERN_INNTEKTSMELDING, diff --git a/felles/src/main/kotlin/no/nav/helsearbeidsgiver/felles/metrics/Metrics.kt b/felles/src/main/kotlin/no/nav/helsearbeidsgiver/felles/metrics/Metrics.kt index f7697506b..91ad7e3ef 100644 --- a/felles/src/main/kotlin/no/nav/helsearbeidsgiver/felles/metrics/Metrics.kt +++ b/felles/src/main/kotlin/no/nav/helsearbeidsgiver/felles/metrics/Metrics.kt @@ -9,6 +9,8 @@ object Metrics { val dbSelvbestemtSak = databaseMetric("notifikasjon", "selvbestemt_sak") + val aaregRequest = requestMetric("Aareg") + val agNotifikasjonRequest = requestMetric("AG-notifikasjon") val altinnRequest = requestMetric("Altinn") diff --git a/integrasjonstest/src/test/kotlin/LocalIntegrasjonApp.kt b/integrasjonstest/src/test/kotlin/LocalIntegrasjonApp.kt index 012955f86..d787551ca 100644 --- a/integrasjonstest/src/test/kotlin/LocalIntegrasjonApp.kt +++ b/integrasjonstest/src/test/kotlin/LocalIntegrasjonApp.kt @@ -131,7 +131,7 @@ class DummyLoeser( mapOf( Key.INNTEKT to Inntekt(emptyList()).toJson(Inntekt.serializer()), ) - BehovType.ARBEIDSFORHOLD -> + BehovType.HENT_ARBEIDSFORHOLD -> mapOf( Key.ARBEIDSFORHOLD to listOf( diff --git a/integrasjonstest/src/test/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/integrasjonstest/AktiveOrgnrServiceIT.kt b/integrasjonstest/src/test/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/integrasjonstest/AktiveOrgnrServiceIT.kt index 7775f0759..34a77cb8d 100644 --- a/integrasjonstest/src/test/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/integrasjonstest/AktiveOrgnrServiceIT.kt +++ b/integrasjonstest/src/test/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/integrasjonstest/AktiveOrgnrServiceIT.kt @@ -83,7 +83,7 @@ class AktiveOrgnrServiceIT : EndToEndTest() { } aktiveOrgnrMeldinger - .filter(BehovType.ARBEIDSFORHOLD) + .filter(BehovType.HENT_ARBEIDSFORHOLD) .firstAsMap()[Key.IDENTITETSNUMMER] ?.fromJson(Fnr.serializer()) shouldBe Mock.fnr @@ -148,7 +148,7 @@ class AktiveOrgnrServiceIT : EndToEndTest() { } aktiveOrgnrMeldinger - .filter(BehovType.ARBEIDSFORHOLD) + .filter(BehovType.HENT_ARBEIDSFORHOLD) .firstAsMap()[Key.IDENTITETSNUMMER] ?.fromJson(Fnr.serializer()) shouldBe Mock.fnr diff --git a/integrasjonstest/src/test/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/integrasjonstest/utils/EndToEndTest.kt b/integrasjonstest/src/test/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/integrasjonstest/utils/EndToEndTest.kt index 34c26e589..1f327b2c6 100644 --- a/integrasjonstest/src/test/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/integrasjonstest/utils/EndToEndTest.kt +++ b/integrasjonstest/src/test/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/integrasjonstest/utils/EndToEndTest.kt @@ -26,7 +26,7 @@ import no.nav.helsearbeidsgiver.felles.rapidsrivers.pritopic.PriProducer import no.nav.helsearbeidsgiver.felles.rapidsrivers.publish import no.nav.helsearbeidsgiver.felles.rapidsrivers.redis.RedisConnection import no.nav.helsearbeidsgiver.inntekt.InntektKlient -import no.nav.helsearbeidsgiver.inntektsmelding.aareg.createAareg +import no.nav.helsearbeidsgiver.inntektsmelding.aareg.createAaregRiver import no.nav.helsearbeidsgiver.inntektsmelding.aktiveorgnrservice.createAktiveOrgnrService import no.nav.helsearbeidsgiver.inntektsmelding.altinn.createAltinn import no.nav.helsearbeidsgiver.inntektsmelding.api.tilgang.TilgangProducer @@ -206,7 +206,7 @@ abstract class EndToEndTest : ContainerTest() { createHentForespoerselService(redisConnection) // Rivers - createAareg(aaregClient) + createAaregRiver(aaregClient) createAltinn(altinnClient) createBrreg(brregClient, false) createDbRivers(imRepository, selvbestemtImRepo, forespoerselRepository) diff --git a/selvbestemt-lagre-im-service/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/selvbestemtlagreimservice/LagreSelvbestemtImService.kt b/selvbestemt-lagre-im-service/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/selvbestemtlagreimservice/LagreSelvbestemtImService.kt index f150a98f8..c35ab3ee4 100644 --- a/selvbestemt-lagre-im-service/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/selvbestemtlagreimservice/LagreSelvbestemtImService.kt +++ b/selvbestemt-lagre-im-service/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/selvbestemtlagreimservice/LagreSelvbestemtImService.kt @@ -160,7 +160,7 @@ class LagreSelvbestemtImService( rapid.publishNotNull( Key.EVENT_NAME to eventName.toJson(), - Key.BEHOV to BehovType.ARBEIDSFORHOLD.toJson(), + Key.BEHOV to BehovType.HENT_ARBEIDSFORHOLD.toJson(), Key.UUID to steg0.transaksjonId.toJson(), Key.IDENTITETSNUMMER to steg0.skjema.sykmeldtFnr.verdi diff --git a/selvbestemt-lagre-im-service/src/test/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/selvbestemtlagreimservice/LagreSelvbestemtImServiceTest.kt b/selvbestemt-lagre-im-service/src/test/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/selvbestemtlagreimservice/LagreSelvbestemtImServiceTest.kt index 965ae657b..6e040ba3f 100644 --- a/selvbestemt-lagre-im-service/src/test/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/selvbestemtlagreimservice/LagreSelvbestemtImServiceTest.kt +++ b/selvbestemt-lagre-im-service/src/test/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/selvbestemtlagreimservice/LagreSelvbestemtImServiceTest.kt @@ -96,7 +96,7 @@ class LagreSelvbestemtImServiceTest : testRapid.inspektør.size shouldBeExactly 3 testRapid.message(0).lesBehov() shouldBe BehovType.VIRKSOMHET testRapid.message(1).lesBehov() shouldBe BehovType.HENT_PERSONER - testRapid.message(2).lesBehov() shouldBe BehovType.ARBEIDSFORHOLD + testRapid.message(2).lesBehov() shouldBe BehovType.HENT_ARBEIDSFORHOLD mockStatic(OffsetDateTime::class) { every { OffsetDateTime.now() } returns nyInntektsmelding.mottatt @@ -163,7 +163,7 @@ class LagreSelvbestemtImServiceTest : testRapid.inspektør.size shouldBeExactly 3 testRapid.message(0).lesBehov() shouldBe BehovType.VIRKSOMHET testRapid.message(1).lesBehov() shouldBe BehovType.HENT_PERSONER - testRapid.message(2).lesBehov() shouldBe BehovType.ARBEIDSFORHOLD + testRapid.message(2).lesBehov() shouldBe BehovType.HENT_ARBEIDSFORHOLD mockStatic(OffsetDateTime::class) { every { OffsetDateTime.now() } returns endretInntektsmelding.mottatt