diff --git a/api/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/api/innsending/InnsendingRoute.kt b/api/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/api/innsending/InnsendingRoute.kt index 24777504c..6658f47e7 100644 --- a/api/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/api/innsending/InnsendingRoute.kt +++ b/api/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/api/innsending/InnsendingRoute.kt @@ -9,9 +9,7 @@ import io.ktor.server.routing.route import kotlinx.serialization.SerializationException import kotlinx.serialization.builtins.serializer import no.nav.helse.rapids_rivers.RapidsConnection -import no.nav.helsearbeidsgiver.domene.inntektsmelding.deprecated.FullLoennIArbeidsgiverPerioden import no.nav.helsearbeidsgiver.domene.inntektsmelding.deprecated.Innsending -import no.nav.helsearbeidsgiver.domene.inntektsmelding.deprecated.Refusjon import no.nav.helsearbeidsgiver.inntektsmelding.api.RedisPoller import no.nav.helsearbeidsgiver.inntektsmelding.api.RedisPollerTimeoutException import no.nav.helsearbeidsgiver.inntektsmelding.api.Routes @@ -56,56 +54,9 @@ fun Route.innsendingRoute( } } .fromJson(Innsending.serializer()) - .let { - // TODO gjør denne sjekken ved opprettelse - if (it.fullLønnIArbeidsgiverPerioden?.utbetalerFullLønn == true) { - it.copy( - fullLønnIArbeidsgiverPerioden = FullLoennIArbeidsgiverPerioden( - utbetalerFullLønn = true, - begrunnelse = null, - utbetalt = null - ) - ) - } else { - it - } - } - .let { - // TODO gjør denne sjekken ved opprettelse - if (!it.refusjon.utbetalerHeleEllerDeler) { - it.copy( - refusjon = Refusjon( - utbetalerHeleEllerDeler = false, - refusjonPrMnd = null, - refusjonOpphører = null, - refusjonEndringer = null - ) - ) - } else { - it - } - } - .let { - // TODO gjør denne sjekken ved opprettelse - if (it.forespurtData?.contains("arbeidsgiverperiode") == false) { - if (it.fullLønnIArbeidsgiverPerioden != null) { - "Frontend sender med ${Innsending::fullLønnIArbeidsgiverPerioden.name} når man ikke ber om AGP." - .also { feilmelding -> - logger.error(feilmelding) - sikkerLogger.error(feilmelding) - } - } - it.copy( - fullLønnIArbeidsgiverPerioden = null - ) - } else { - it - } - } tilgangskontroll.validerTilgangTilForespoersel(call.request, forespoerselId) - // TODO sjekk gyldighet mot forespørsel, f. eks. forespurtData matcher request.validate() val innloggerFnr = call.request.lesFnrFraAuthToken() val clientId = producer.publish(forespoerselId, request, innloggerFnr) diff --git a/api/src/test/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/api/innsending/InnsendingRouteKtTest.kt b/api/src/test/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/api/innsending/InnsendingRouteKtTest.kt index 52495945b..15eab6086 100644 --- a/api/src/test/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/api/innsending/InnsendingRouteKtTest.kt +++ b/api/src/test/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/api/innsending/InnsendingRouteKtTest.kt @@ -2,21 +2,13 @@ package no.nav.helsearbeidsgiver.inntektsmelding.api.innsending -import io.kotest.matchers.nulls.shouldBeNull -import io.kotest.matchers.shouldBe import io.ktor.client.statement.bodyAsText import io.ktor.http.HttpStatusCode import io.mockk.clearAllMocks import io.mockk.coEvery import io.mockk.every -import io.mockk.verifySequence -import kotlinx.serialization.json.JsonNull -import no.nav.helsearbeidsgiver.domene.inntektsmelding.deprecated.BegrunnelseIngenEllerRedusertUtbetalingKode -import no.nav.helsearbeidsgiver.domene.inntektsmelding.deprecated.FullLoennIArbeidsgiverPerioden import no.nav.helsearbeidsgiver.domene.inntektsmelding.deprecated.Innsending import no.nav.helsearbeidsgiver.domene.inntektsmelding.deprecated.Inntektsmelding -import no.nav.helsearbeidsgiver.domene.inntektsmelding.deprecated.Refusjon -import no.nav.helsearbeidsgiver.domene.inntektsmelding.deprecated.RefusjonEndring import no.nav.helsearbeidsgiver.felles.Tilgang import no.nav.helsearbeidsgiver.felles.test.mock.DELVIS_INNSENDING_REQUEST import no.nav.helsearbeidsgiver.felles.test.mock.GYLDIG_INNSENDING_REQUEST @@ -31,8 +23,6 @@ import no.nav.helsearbeidsgiver.inntektsmelding.api.utils.ApiTest import no.nav.helsearbeidsgiver.utils.json.fromJson import no.nav.helsearbeidsgiver.utils.json.toJson import no.nav.helsearbeidsgiver.utils.json.toJsonStr -import no.nav.helsearbeidsgiver.utils.test.date.april -import no.nav.helsearbeidsgiver.utils.test.date.mars import no.nav.helsearbeidsgiver.utils.test.mock.mockConstructor import org.junit.jupiter.api.Assertions.assertEquals import org.junit.jupiter.api.BeforeEach @@ -127,127 +117,6 @@ class InnsendingRouteKtTest : ApiTest() { assertEquals(InnsendingResponse(Mock.forespoerselId).toJsonStr(InnsendingResponse.serializer()), response.bodyAsText()) } - @Test - fun `fjern ugyldige verdier ved utbetaling av full lønn i arbeisdgiverperioden`() = testApi { - mockTilgang(Tilgang.HAR_TILGANG) - - val mockClientId = UUID.randomUUID() - - // Må bare returnere noe - coEvery { anyConstructed().hent(mockClientId, any(), any()) } returns JsonNull - - val request = GYLDIG_INNSENDING_REQUEST.copy( - fullLønnIArbeidsgiverPerioden = FullLoennIArbeidsgiverPerioden( - utbetalerFullLønn = true, - begrunnelse = BegrunnelseIngenEllerRedusertUtbetalingKode.StreikEllerLockout, - utbetalt = 1_000_000.0 - ) - ) - .toJson(Innsending.serializer()) - - mockConstructor(InnsendingProducer::class) { - every { anyConstructed().publish(any(), any(), any()) } returns mockClientId - - post(path, request) - - verifySequence { - anyConstructed().publish( - forespoerselId = any(), - request = withArg { - it.fullLønnIArbeidsgiverPerioden shouldBe FullLoennIArbeidsgiverPerioden( - utbetalerFullLønn = true, - begrunnelse = null, - utbetalt = null - ) - }, - arbeidsgiverFnr = any() - ) - } - } - } - - @Test - fun `fjern ugyldige verdier ved ingen refusjon`() = testApi { - mockTilgang(Tilgang.HAR_TILGANG) - - val mockClientId = UUID.randomUUID() - - // Må bare returnere noe - coEvery { anyConstructed().hent(mockClientId, any(), any()) } returns JsonNull - - val request = GYLDIG_INNSENDING_REQUEST.copy( - refusjon = Refusjon( - utbetalerHeleEllerDeler = false, - refusjonPrMnd = 2_222_222.0, - refusjonOpphører = 28.april, - refusjonEndringer = listOf( - RefusjonEndring( - beløp = 1_111_111.0, - dato = 20.mars - ) - ) - ) - ) - .toJson(Innsending.serializer()) - - mockConstructor(InnsendingProducer::class) { - every { anyConstructed().publish(any(), any(), any()) } returns mockClientId - - post(path, request) - - verifySequence { - anyConstructed().publish( - forespoerselId = any(), - request = withArg { - it.refusjon shouldBe Refusjon( - utbetalerHeleEllerDeler = false, - refusjonPrMnd = null, - refusjonOpphører = null, - refusjonEndringer = null - ) - }, - arbeidsgiverFnr = any() - ) - } - } - } - - @Test - fun `fjern ugyldige verdier dersom man ikke spør om AGP`() = testApi { - mockTilgang(Tilgang.HAR_TILGANG) - - val mockClientId = UUID.randomUUID() - - // Må bare returnere noe - coEvery { anyConstructed().hent(mockClientId, any(), any()) } returns JsonNull - - val request = GYLDIG_INNSENDING_REQUEST.copy( - forespurtData = listOf("inntekt", "refusjon"), - fullLønnIArbeidsgiverPerioden = FullLoennIArbeidsgiverPerioden( - utbetalerFullLønn = false, - begrunnelse = BegrunnelseIngenEllerRedusertUtbetalingKode.FravaerUtenGyldigGrunn, - utbetalt = 222_333.0 - ) - ) - .toJson(Innsending.serializer()) - - mockConstructor(InnsendingProducer::class) { - every { anyConstructed().publish(any(), any(), any()) } returns mockClientId - - post(path, request) - - verifySequence { - anyConstructed().publish( - forespoerselId = any(), - request = withArg { - it.fullLønnIArbeidsgiverPerioden.shouldBeNull() - }, - arbeidsgiverFnr = any() - ) - } - } - } - private object Mock { val forespoerselId: UUID = UUID.randomUUID() } diff --git a/innsending/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/innsending/InnsendingService.kt b/innsending/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/innsending/InnsendingService.kt index 737b7b243..a95d58aa6 100644 --- a/innsending/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/innsending/InnsendingService.kt +++ b/innsending/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/innsending/InnsendingService.kt @@ -140,13 +140,7 @@ class InnsendingService( Key.BEHOV to BehovType.PERSISTER_IM.toJson(), Key.UUID to transaksjonId.toJson(), Key.FORESPOERSEL_ID to forespoerselId.toJson(), - Key.INNTEKTSMELDING to inntektsmelding.toJson(Inntektsmelding.serializer()), - // TODO slett feltene under etter overgangsperiode - Key.SKJEMA_INNTEKTSMELDING to skjema.toJson(Innsending.serializer()), - Key.VIRKSOMHET to virksomhetNavn.toJson(), - Key.ARBEIDSTAKER_INFORMASJON to sykmeldt.toJson(PersonDato.serializer()), - Key.ARBEIDSGIVER_INFORMASJON to innsender.toJson(PersonDato.serializer()), - Key.FORESPOERSEL_SVAR to forespoersel.toJson(TrengerInntekt.serializer()) + Key.INNTEKTSMELDING to inntektsmelding.toJson(Inntektsmelding.serializer()) ) } }