diff --git a/apps/etterlatte-api/src/main/kotlin/no/nav/etterlatte/samordning/vedtak/SamordningVedtakRoute.kt b/apps/etterlatte-api/src/main/kotlin/no/nav/etterlatte/samordning/vedtak/SamordningVedtakRoute.kt index fea6ea2ac91..33c781066be 100644 --- a/apps/etterlatte-api/src/main/kotlin/no/nav/etterlatte/samordning/vedtak/SamordningVedtakRoute.kt +++ b/apps/etterlatte-api/src/main/kotlin/no/nav/etterlatte/samordning/vedtak/SamordningVedtakRoute.kt @@ -15,6 +15,7 @@ import io.ktor.server.routing.route import no.nav.etterlatte.AuthorizationPlugin import no.nav.etterlatte.MaskinportenScopeAuthorizationPlugin import no.nav.etterlatte.libs.common.behandling.SakType +import no.nav.etterlatte.libs.common.feilhaandtering.krevIkkeNull import no.nav.etterlatte.libs.common.person.Folkeregisteridentifikator import no.nav.etterlatte.libs.ktor.route.FoedselsnummerDTO import no.nav.etterlatte.libs.ktor.route.dato @@ -32,7 +33,10 @@ fun Route.samordningVedtakRoute( } get("{vedtakId}") { - val vedtakId = requireNotNull(call.parameters["vedtakId"]).toLong() + val vedtakId = + krevIkkeNull(call.parameters["vedtakId"]?.toLong()) { + "VedtakId mangler - dette er mest sannsynlig en systemfeil" + } val tpnummer = call.request.headers["tpnr"] diff --git a/apps/etterlatte-behandling/src/main/kotlin/behandling/BehandlingDao.kt b/apps/etterlatte-behandling/src/main/kotlin/behandling/BehandlingDao.kt index 59fa5091891..41fc04c3808 100644 --- a/apps/etterlatte-behandling/src/main/kotlin/behandling/BehandlingDao.kt +++ b/apps/etterlatte-behandling/src/main/kotlin/behandling/BehandlingDao.kt @@ -45,7 +45,6 @@ import no.nav.etterlatte.libs.database.setSakId import no.nav.etterlatte.libs.database.singleOrNull import no.nav.etterlatte.libs.database.toList import java.sql.Date -import java.sql.PreparedStatement import java.sql.ResultSet import java.time.LocalDateTime import java.time.YearMonth @@ -421,7 +420,10 @@ class BehandlingDao( statement.setObject(6, behandlingId) statement.setString(7, viderefoertOpphoer.vilkaar?.name) statement.setBoolean(8, viderefoertOpphoer.aktiv) - statement.updateSuccessful() + + krev(statement.executeUpdate() == 1) { + "Feil ved lagring av videreført opphør" + } } } } @@ -444,7 +446,10 @@ class BehandlingDao( ) statement.setJsonb(1, kilde) statement.setObject(2, behandlingId) - statement.updateSuccessful() + + krev(statement.executeUpdate() == 1) { + "Feil ved fjerning av videreført opphør" + } } } } @@ -562,6 +567,3 @@ private fun ResultSet.toTidligereFamiliepleier(): TidligereFamiliepleier? = val objectMapper: ObjectMapper = jacksonObjectMapper().registerModule(JavaTimeModule()).disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS) - -// TODO: fjerne denne bruke, blir veldig dårlig feilmelding -fun PreparedStatement.updateSuccessful() = require(this.executeUpdate() == 1) diff --git a/apps/etterlatte-behandling/src/main/kotlin/behandling/BehandlingFactory.kt b/apps/etterlatte-behandling/src/main/kotlin/behandling/BehandlingFactory.kt index 9a4cb21a856..787bc0c73cd 100644 --- a/apps/etterlatte-behandling/src/main/kotlin/behandling/BehandlingFactory.kt +++ b/apps/etterlatte-behandling/src/main/kotlin/behandling/BehandlingFactory.kt @@ -26,6 +26,7 @@ import no.nav.etterlatte.libs.common.behandling.SakType import no.nav.etterlatte.libs.common.feilhaandtering.GenerellIkkeFunnetException import no.nav.etterlatte.libs.common.feilhaandtering.InternfeilException import no.nav.etterlatte.libs.common.feilhaandtering.UgyldigForespoerselException +import no.nav.etterlatte.libs.common.feilhaandtering.krevIkkeNull import no.nav.etterlatte.libs.common.grunnlag.Grunnlagsopplysning import no.nav.etterlatte.libs.common.grunnlag.NyeSaksopplysninger import no.nav.etterlatte.libs.common.grunnlag.lagOpplysning @@ -169,7 +170,10 @@ class BehandlingFactory( if (request.kilde in listOf(Vedtaksloesning.PESYS, Vedtaksloesning.GJENOPPRETTA)) { coroutineScope { - val pesysId = requireNotNull(request.pesysId) { "Manuell migrering må ha pesysid til sak som migreres" } + val pesysId = + krevIkkeNull(request.pesysId) { + "Manuell migrering må ha pesysid til sak som migreres" + } migreringKlient.opprettManuellMigrering(behandlingId = behandling.id, pesysId = pesysId, sakId = sak.id) } } @@ -434,7 +438,11 @@ class BehandlingFactory( } internal fun hentDataForOpprettBehandling(sakId: SakId): DataHentetForOpprettBehandling { - val sak = requireNotNull(sakService.finnSak(sakId)) { "Fant ingen sak med id=$sakId!" } + val sak = + krevIkkeNull(sakService.finnSak(sakId)) { + "Fant ingen sak med id=$sakId!" + } + val harBehandlingerForSak = behandlingDao.hentBehandlingerForSak(sak.id) diff --git a/apps/etterlatte-behandling/src/main/kotlin/behandling/BehandlingService.kt b/apps/etterlatte-behandling/src/main/kotlin/behandling/BehandlingService.kt index a709cde96ab..67b092af8c7 100644 --- a/apps/etterlatte-behandling/src/main/kotlin/behandling/BehandlingService.kt +++ b/apps/etterlatte-behandling/src/main/kotlin/behandling/BehandlingService.kt @@ -47,6 +47,7 @@ import no.nav.etterlatte.libs.common.feilhaandtering.IkkeFunnetException import no.nav.etterlatte.libs.common.feilhaandtering.InternfeilException import no.nav.etterlatte.libs.common.feilhaandtering.UgyldigForespoerselException import no.nav.etterlatte.libs.common.feilhaandtering.krev +import no.nav.etterlatte.libs.common.feilhaandtering.krevIkkeNull import no.nav.etterlatte.libs.common.grunnlag.Grunnlagsopplysning import no.nav.etterlatte.libs.common.grunnlag.NyeSaksopplysninger import no.nav.etterlatte.libs.common.grunnlag.lagOpplysning @@ -443,7 +444,9 @@ internal class BehandlingServiceImpl( overstyr: Boolean, ): Boolean { val behandling = - requireNotNull(hentBehandling(behandlingId)) { "Fant ikke behandling $behandlingId" } + krevIkkeNull(hentBehandling(behandlingId)) { + "Fant ikke behandling $behandlingId" + } if (request.dato.year !in (0..9999) || request.begrunnelse == null) { return false diff --git a/apps/etterlatte-behandling/src/main/kotlin/behandling/aktivitetsplikt/AktivitetspliktDao.kt b/apps/etterlatte-behandling/src/main/kotlin/behandling/aktivitetsplikt/AktivitetspliktDao.kt index 803a47f48ab..fbf6db16858 100644 --- a/apps/etterlatte-behandling/src/main/kotlin/behandling/aktivitetsplikt/AktivitetspliktDao.kt +++ b/apps/etterlatte-behandling/src/main/kotlin/behandling/aktivitetsplikt/AktivitetspliktDao.kt @@ -8,6 +8,7 @@ import no.nav.etterlatte.libs.common.aktivitetsplikt.AktivitetDto import no.nav.etterlatte.libs.common.aktivitetsplikt.AktivitetType import no.nav.etterlatte.libs.common.behandling.AktivitetspliktOppfolging import no.nav.etterlatte.libs.common.behandling.OpprettAktivitetspliktOppfolging +import no.nav.etterlatte.libs.common.feilhaandtering.krevIkkeNull import no.nav.etterlatte.libs.common.grunnlag.Grunnlagsopplysning import no.nav.etterlatte.libs.common.sak.SakId import no.nav.etterlatte.libs.common.tidspunkt.getTidspunkt @@ -179,7 +180,7 @@ class AktivitetspliktDao( stmt.setDate(3, aktivitet.tom?.let { tom -> Date.valueOf(tom) }) stmt.setString(4, kilde.toJson()) stmt.setString(5, aktivitet.beskrivelse) - stmt.setObject(6, requireNotNull(aktivitet.id)) + stmt.setObject(6, krevIkkeNull(aktivitet.id) { "Aktivitet id mangler" }) stmt.setObject(7, behandlingId) stmt.executeUpdate() @@ -205,7 +206,7 @@ class AktivitetspliktDao( stmt.setDate(3, aktivitet.tom?.let { tom -> Date.valueOf(tom) }) stmt.setString(4, kilde.toJson()) stmt.setString(5, aktivitet.beskrivelse) - stmt.setObject(6, requireNotNull(aktivitet.id)) + stmt.setObject(6, krevIkkeNull(aktivitet.id) { "Aktivitet id mangler" }) stmt.setSakId(7, sakId) stmt.executeUpdate() diff --git a/apps/etterlatte-behandling/src/main/kotlin/behandling/aktivitetsplikt/AktivitetspliktService.kt b/apps/etterlatte-behandling/src/main/kotlin/behandling/aktivitetsplikt/AktivitetspliktService.kt index 26bb2456869..3ae18bb971f 100644 --- a/apps/etterlatte-behandling/src/main/kotlin/behandling/aktivitetsplikt/AktivitetspliktService.kt +++ b/apps/etterlatte-behandling/src/main/kotlin/behandling/aktivitetsplikt/AktivitetspliktService.kt @@ -36,6 +36,7 @@ import no.nav.etterlatte.libs.common.feilhaandtering.IkkeFunnetException import no.nav.etterlatte.libs.common.feilhaandtering.InternfeilException import no.nav.etterlatte.libs.common.feilhaandtering.UgyldigForespoerselException import no.nav.etterlatte.libs.common.feilhaandtering.krev +import no.nav.etterlatte.libs.common.feilhaandtering.krevIkkeNull import no.nav.etterlatte.libs.common.grunnlag.Grunnlagsopplysning import no.nav.etterlatte.libs.common.grunnlag.hentDoedsdato import no.nav.etterlatte.libs.common.oppgave.OppgaveIntern @@ -524,12 +525,12 @@ class AktivitetspliktService( bruker: BrukerTokenInfo, ): OpprettRevurderingForAktivitetspliktResponse { val forrigeBehandling = - requireNotNull(behandlingService.hentSisteIverksatte(request.sakId)) { + krevIkkeNull(behandlingService.hentSisteIverksatte(request.sakId)) { "Fant ikke forrige behandling i sak ${request.sakId}sakId" } val persongalleri = runBlocking { - requireNotNull( + krevIkkeNull( grunnlagKlient .hentPersongalleri( forrigeBehandling.id, @@ -793,7 +794,7 @@ fun hentVurderingForSakHelper( return AktivitetspliktVurdering(aktivitetForBehandling, unntak) } else { val oppgaveId = - requireNotNull(foersteUnntak.oppgaveId) { + krevIkkeNull(foersteUnntak.oppgaveId) { "Har et unntak med id=${foersteUnntak.id} i sak=${foersteUnntak.sakId} som ikke " + "er koblet på hverken sak eller oppgave." } @@ -808,7 +809,7 @@ fun hentVurderingForSakHelper( return AktivitetspliktVurdering(aktivitet, unntakForBehandling) } else { val oppgaveId = - requireNotNull(foersteVurdering.oppgaveId) { + krevIkkeNull(foersteVurdering.oppgaveId) { "Har en vurdering med id=${foersteVurdering.id} i sak=${foersteVurdering.sakId} som ikke " + "er koblet på hverken sak eller oppgave." } diff --git a/apps/etterlatte-behandling/src/main/kotlin/behandling/aktivitetsplikt/vurdering/AktivitetspliktAktivitetsgradDao.kt b/apps/etterlatte-behandling/src/main/kotlin/behandling/aktivitetsplikt/vurdering/AktivitetspliktAktivitetsgradDao.kt index af2a5f5ba8d..5544cedea17 100644 --- a/apps/etterlatte-behandling/src/main/kotlin/behandling/aktivitetsplikt/vurdering/AktivitetspliktAktivitetsgradDao.kt +++ b/apps/etterlatte-behandling/src/main/kotlin/behandling/aktivitetsplikt/vurdering/AktivitetspliktAktivitetsgradDao.kt @@ -9,6 +9,7 @@ import no.nav.etterlatte.libs.common.aktivitetsplikt.AktivitetspliktAktivitetsgr import no.nav.etterlatte.libs.common.aktivitetsplikt.VurdertAktivitetsgrad import no.nav.etterlatte.libs.common.feilhaandtering.InternfeilException import no.nav.etterlatte.libs.common.feilhaandtering.krev +import no.nav.etterlatte.libs.common.feilhaandtering.krevIkkeNull import no.nav.etterlatte.libs.common.grunnlag.Grunnlagsopplysning import no.nav.etterlatte.libs.common.sak.SakId import no.nav.etterlatte.libs.database.setSakId @@ -146,7 +147,7 @@ class AktivitetspliktAktivitetsgradDao( if (behandlingId != null) { hentAktivitetsgradForBehandling(UUID.fromString(behandlingId)) } else { - requireNotNull(oppgaveId) { + krevIkkeNull(oppgaveId) { "Har en vurdering av aktivitet som ikke er knyttet til en oppgave eller en behandling" } hentAktivitetsgradForOppgave(UUID.fromString(oppgaveId)) diff --git a/apps/etterlatte-behandling/src/main/kotlin/behandling/aktivitetsplikt/vurdering/AktivitetspliktUnntakDao.kt b/apps/etterlatte-behandling/src/main/kotlin/behandling/aktivitetsplikt/vurdering/AktivitetspliktUnntakDao.kt index 5268260c603..876f52d716d 100644 --- a/apps/etterlatte-behandling/src/main/kotlin/behandling/aktivitetsplikt/vurdering/AktivitetspliktUnntakDao.kt +++ b/apps/etterlatte-behandling/src/main/kotlin/behandling/aktivitetsplikt/vurdering/AktivitetspliktUnntakDao.kt @@ -8,6 +8,7 @@ import no.nav.etterlatte.common.ConnectionAutoclosing import no.nav.etterlatte.libs.common.aktivitetsplikt.UnntakFraAktivitetDto import no.nav.etterlatte.libs.common.aktivitetsplikt.UnntakFraAktivitetsplikt import no.nav.etterlatte.libs.common.feilhaandtering.InternfeilException +import no.nav.etterlatte.libs.common.feilhaandtering.krevIkkeNull import no.nav.etterlatte.libs.common.grunnlag.Grunnlagsopplysning import no.nav.etterlatte.libs.common.sak.SakId import no.nav.etterlatte.libs.database.setSakId @@ -90,7 +91,7 @@ class AktivitetspliktUnntakDao( stmt.setDate(3, unntak.tom?.let { tom -> Date.valueOf(tom) }) stmt.setString(4, kilde.toJson()) stmt.setString(5, unntak.beskrivelse) - stmt.setObject(6, requireNotNull(unntak.id)) + stmt.setObject(6, krevIkkeNull(unntak.id) { "" }) stmt.setObject(7, behandlingId) stmt.executeUpdate() @@ -176,7 +177,7 @@ class AktivitetspliktUnntakDao( if (behandlingId != null) { hentUnntakForBehandling(UUID.fromString(behandlingId)) } else { - requireNotNull(oppgaveId) { + krevIkkeNull(oppgaveId) { "Har en vurdering av aktivitet som ikke er knyttet til en oppgave eller en behandling" } hentUnntakForOppgave(UUID.fromString(oppgaveId)) diff --git a/apps/etterlatte-behandling/src/main/kotlin/behandling/hendelse/RegistrerVedtakHendelseFelles.kt b/apps/etterlatte-behandling/src/main/kotlin/behandling/hendelse/RegistrerVedtakHendelseFelles.kt index 566ecdb7a23..7ee9f0db904 100644 --- a/apps/etterlatte-behandling/src/main/kotlin/behandling/hendelse/RegistrerVedtakHendelseFelles.kt +++ b/apps/etterlatte-behandling/src/main/kotlin/behandling/hendelse/RegistrerVedtakHendelseFelles.kt @@ -1,6 +1,7 @@ package no.nav.etterlatte.behandling.hendelse import no.nav.etterlatte.behandling.domain.Behandling +import no.nav.etterlatte.libs.common.feilhaandtering.krevIkkeNull import no.nav.etterlatte.libs.common.tidspunkt.Tidspunkt fun registrerVedtakHendelseFelles( @@ -14,11 +15,11 @@ fun registrerVedtakHendelseFelles( hendelser: HendelseDao, ) { if (hendelse.kreverSaksbehandler()) { - requireNotNullWithMessage(saksbehandler, "Vedtakshendelsen krever en saksbehandler") + krevIkkeNull(saksbehandler) { "Vedtakshendelsen krever en saksbehandler" } } if (hendelse.erUnderkjent()) { - requireNotNullWithMessage(kommentar, "Underkjent vedtak må ha en kommentar") - requireNotNullWithMessage(begrunnelse, "Underkjent vedtak må ha en begrunnelse") + krevIkkeNull(kommentar) { "Underkjent vedtak må ha en kommentar" } + krevIkkeNull(begrunnelse) { "Underkjent vedtak må ha en begrunnelse" } } hendelser.vedtakHendelse( @@ -33,17 +34,6 @@ fun registrerVedtakHendelseFelles( ) } -fun requireNotNullWithMessage( - value: Any?, - message: String, -): Any { - if (value == null) { - throw NullPointerException(message) - } else { - return value - } -} - private fun HendelseType.kreverSaksbehandler() = this in listOf(HendelseType.FATTET, HendelseType.ATTESTERT, HendelseType.UNDERKJENT) private fun HendelseType.erUnderkjent() = this == HendelseType.UNDERKJENT diff --git a/apps/etterlatte-behandling/src/main/kotlin/behandling/klage/KlageBrevService.kt b/apps/etterlatte-behandling/src/main/kotlin/behandling/klage/KlageBrevService.kt index 144a5c65ce0..7ec691a9de1 100644 --- a/apps/etterlatte-behandling/src/main/kotlin/behandling/klage/KlageBrevService.kt +++ b/apps/etterlatte-behandling/src/main/kotlin/behandling/klage/KlageBrevService.kt @@ -8,6 +8,7 @@ import no.nav.etterlatte.libs.common.behandling.Klage import no.nav.etterlatte.libs.common.behandling.KlageOversendelsebrev import no.nav.etterlatte.libs.common.behandling.KlageUtfallMedData import no.nav.etterlatte.libs.common.behandling.KlageVedtaksbrev +import no.nav.etterlatte.libs.common.feilhaandtering.krevIkkeNull import no.nav.etterlatte.libs.common.sak.SakId import no.nav.etterlatte.libs.common.tidspunkt.Tidspunkt import no.nav.etterlatte.libs.ktor.token.BrukerTokenInfo @@ -144,7 +145,7 @@ class KlageBrevService( "Brev med id=$brevId har status ${eksisterendeInnstillingsbrev.status} og er allerede " + "journalført på journalpostId=${eksisterendeInnstillingsbrev.mottakere.first().journalpostId}", ) - requireNotNull(eksisterendeInnstillingsbrev.mottakere.first().journalpostId) { + krevIkkeNull(eksisterendeInnstillingsbrev.mottakere.first().journalpostId) { "Har et brev med id=$brevId med status=${eksisterendeInnstillingsbrev.status} som mangler journalpostId" } } diff --git a/apps/etterlatte-behandling/src/main/kotlin/behandling/sjekkliste/SjekklisteRoute.kt b/apps/etterlatte-behandling/src/main/kotlin/behandling/sjekkliste/SjekklisteRoute.kt index 78e9d495737..225366680ce 100644 --- a/apps/etterlatte-behandling/src/main/kotlin/behandling/sjekkliste/SjekklisteRoute.kt +++ b/apps/etterlatte-behandling/src/main/kotlin/behandling/sjekkliste/SjekklisteRoute.kt @@ -9,6 +9,7 @@ import io.ktor.server.routing.get import io.ktor.server.routing.post import io.ktor.server.routing.put import io.ktor.server.routing.route +import no.nav.etterlatte.libs.common.feilhaandtering.krevIkkeNull import no.nav.etterlatte.libs.ktor.route.BEHANDLINGID_CALL_PARAMETER import no.nav.etterlatte.libs.ktor.route.behandlingId import no.nav.etterlatte.tilgangsstyring.kunSaksbehandlerMedSkrivetilgang @@ -38,7 +39,11 @@ internal fun Route.sjekklisteRoute(sjekklisteService: SjekklisteService) { post("/item/{sjekklisteItemId}") { kunSaksbehandlerMedSkrivetilgang { - val sjekklisteItemId = requireNotNull(call.parameters["sjekklisteItemId"]).toLong() + val sjekklisteItemId = + krevIkkeNull(call.parameters["sjekklisteItemId"]?.toLong()) { + "SjekklistepunktID mangler – dette er mest sannsynlig en systemfeil" + } + val oppdatering = call.receive() val result = diff --git a/apps/etterlatte-behandling/src/main/kotlin/behandling/sjekkliste/SjekklisteService.kt b/apps/etterlatte-behandling/src/main/kotlin/behandling/sjekkliste/SjekklisteService.kt index 651b5a941bc..2404eea23c8 100644 --- a/apps/etterlatte-behandling/src/main/kotlin/behandling/sjekkliste/SjekklisteService.kt +++ b/apps/etterlatte-behandling/src/main/kotlin/behandling/sjekkliste/SjekklisteService.kt @@ -12,6 +12,7 @@ import no.nav.etterlatte.libs.common.behandling.Revurderingaarsak import no.nav.etterlatte.libs.common.behandling.SakType import no.nav.etterlatte.libs.common.feilhaandtering.IkkeTillattException import no.nav.etterlatte.libs.common.feilhaandtering.UgyldigForespoerselException +import no.nav.etterlatte.libs.common.feilhaandtering.krevIkkeNull import no.nav.etterlatte.oppgave.OppgaveService import java.util.UUID @@ -28,7 +29,9 @@ class SjekklisteService( fun opprettSjekkliste(behandlingId: UUID): Sjekkliste { val behandling = inTransaction { - requireNotNull(behandlingService.hentBehandling(behandlingId)) + krevIkkeNull(behandlingService.hentBehandling(behandlingId)) { + "Fant ikke behandling – kan ikke opprette sjekkliste" + } } if (!kanEndres(behandling)) { @@ -74,7 +77,9 @@ class SjekklisteService( dao.opprettSjekkliste(behandling.id, sjekklisteItems) } - return requireNotNull(hentSjekkliste(behandling.id)) + return krevIkkeNull(hentSjekkliste(behandling.id)) { + "Kunne ikke hente ut sjekkliste som nettopp ble opprettet" + } } fun oppdaterSjekkliste( @@ -82,7 +87,10 @@ class SjekklisteService( oppdaterSjekkliste: OppdatertSjekkliste, ): Sjekkliste = inTransaction { - val behandling = requireNotNull(behandlingService.hentBehandling(behandlingId)) + val behandling = + krevIkkeNull(behandlingService.hentBehandling(behandlingId)) { + "Fant ikke behandling – kan ikke oppdatere sjekkliste" + } if (!(kanEndres(behandling) && behandling.oppgaveUnderArbeidErTildeltGjeldendeSaksbehandler())) { throw SjekklisteIkkeTillattException( @@ -101,7 +109,10 @@ class SjekklisteService( oppdatering: OppdaterSjekklisteItem, ): SjekklisteItem = inTransaction { - val behandling = requireNotNull(behandlingService.hentBehandling(behandlingId)) + val behandling = + krevIkkeNull(behandlingService.hentBehandling(behandlingId)) { + "Fant ikke behandling - kan ikke oppdatere sjekklistepunkt" + } if (!(kanEndres(behandling) && behandling.oppgaveUnderArbeidErTildeltGjeldendeSaksbehandler())) { throw SjekklisteIkkeTillattException( diff --git a/apps/etterlatte-behandling/src/main/kotlin/behandling/tilbakekreving/TilbakekrevingRoutes.kt b/apps/etterlatte-behandling/src/main/kotlin/behandling/tilbakekreving/TilbakekrevingRoutes.kt index 009cadc1be4..01d6027ab87 100644 --- a/apps/etterlatte-behandling/src/main/kotlin/behandling/tilbakekreving/TilbakekrevingRoutes.kt +++ b/apps/etterlatte-behandling/src/main/kotlin/behandling/tilbakekreving/TilbakekrevingRoutes.kt @@ -10,7 +10,6 @@ import io.ktor.server.routing.post import io.ktor.server.routing.put import io.ktor.server.routing.route import no.nav.etterlatte.libs.common.feilhaandtering.IkkeFunnetException -import no.nav.etterlatte.libs.common.sak.SakId import no.nav.etterlatte.libs.common.tilbakekreving.Kravgrunnlag import no.nav.etterlatte.libs.common.tilbakekreving.TilbakekrevingPeriode import no.nav.etterlatte.libs.common.tilbakekreving.TilbakekrevingVurdering @@ -108,7 +107,6 @@ internal fun Route.tilbakekrevingRoutes(service: TilbakekrevingService) { put("/oppgave-status") { kunSystembruker { medBody { - val sakId = requireNotNull(call.parameters["sakId"]).toLong().let { SakId(it) } service.endreTilbakekrevingOppgaveStatus(sakId, it.paaVent) call.respond(HttpStatusCode.OK) } @@ -118,7 +116,6 @@ internal fun Route.tilbakekrevingRoutes(service: TilbakekrevingService) { put("/avbryt") { kunSystembruker { medBody { - val sakId = requireNotNull(call.parameters["sakId"]).toLong().let { SakId(it) } service.avbrytTilbakekreving(sakId, it.merknad) call.respond(HttpStatusCode.OK) } diff --git a/apps/etterlatte-behandling/src/main/kotlin/behandling/tilbakekreving/TilbakekrevingService.kt b/apps/etterlatte-behandling/src/main/kotlin/behandling/tilbakekreving/TilbakekrevingService.kt index 7d7f9321fa9..3f550760bb7 100644 --- a/apps/etterlatte-behandling/src/main/kotlin/behandling/tilbakekreving/TilbakekrevingService.kt +++ b/apps/etterlatte-behandling/src/main/kotlin/behandling/tilbakekreving/TilbakekrevingService.kt @@ -8,6 +8,7 @@ import no.nav.etterlatte.behandling.klienter.TilbakekrevingKlient import no.nav.etterlatte.behandling.klienter.VedtakKlient import no.nav.etterlatte.inTransaction import no.nav.etterlatte.libs.common.behandling.PaaVentAarsak +import no.nav.etterlatte.libs.common.feilhaandtering.krevIkkeNull import no.nav.etterlatte.libs.common.oppgave.OppgaveKilde import no.nav.etterlatte.libs.common.oppgave.OppgaveType import no.nav.etterlatte.libs.common.sak.SakId @@ -523,8 +524,16 @@ class TilbakekrevingService( enhet = vedtak.enhet, dato = vedtak.dato, ), - aarsak = requireNotNull(tilbakekreving.tilbakekreving.vurdering?.aarsak), - hjemmel = hjemmelFraVurdering(requireNotNull(tilbakekreving.tilbakekreving.vurdering)), + aarsak = + krevIkkeNull(tilbakekreving.tilbakekreving.vurdering?.aarsak) { + "Årsak for tilbakekreving mangler" + }, + hjemmel = + hjemmelFraVurdering( + krevIkkeNull(tilbakekreving.tilbakekreving.vurdering) { + "Kan ikke opprette hjemmel uten vurdering" + }, + ), kravgrunnlagId = tilbakekreving.tilbakekreving.kravgrunnlag.kravgrunnlagId.value .toString(), @@ -536,7 +545,9 @@ class TilbakekrevingService( if (vurdering.vilkaarsresultat == TilbakekrevingVilkaar.IKKE_OPPFYLT) { TilbakekrevingHjemmel.TJUETO_FEMTEN_FEMTE_LEDD } else { - requireNotNull(vurdering.rettsligGrunnlag) + krevIkkeNull(vurdering.rettsligGrunnlag) { + "Rettslig grunnlag mangler" + } } private fun tilbakekrevingForStatistikk(tilbakekreving: TilbakekrevingBehandling): StatistikkTilbakekrevingDto { diff --git a/apps/etterlatte-behandling/src/main/kotlin/oppgave/OppgaveDaoMedEndringssporing.kt b/apps/etterlatte-behandling/src/main/kotlin/oppgave/OppgaveDaoMedEndringssporing.kt index b593f2006b1..bdd06b27d8c 100644 --- a/apps/etterlatte-behandling/src/main/kotlin/oppgave/OppgaveDaoMedEndringssporing.kt +++ b/apps/etterlatte-behandling/src/main/kotlin/oppgave/OppgaveDaoMedEndringssporing.kt @@ -6,6 +6,7 @@ import no.nav.etterlatte.behandling.objectMapper import no.nav.etterlatte.common.ConnectionAutoclosing import no.nav.etterlatte.libs.common.Enhetsnummer import no.nav.etterlatte.libs.common.behandling.PaaVentAarsak +import no.nav.etterlatte.libs.common.feilhaandtering.krevIkkeNull import no.nav.etterlatte.libs.common.oppgave.OppgaveIntern import no.nav.etterlatte.libs.common.oppgave.OppgaveKilde import no.nav.etterlatte.libs.common.oppgave.OppgaveType @@ -36,12 +37,12 @@ class OppgaveDaoMedEndringssporingImpl( block: () -> Unit, ) { val foer = - requireNotNull(hentOppgave(oppgaveId)) { + krevIkkeNull(hentOppgave(oppgaveId)) { "Må ha en oppgave for å kunne endre den" } block() val etter = - requireNotNull(hentOppgave(oppgaveId)) { + krevIkkeNull(hentOppgave(oppgaveId)) { "Må ha en oppgave etter endring" } lagreEndringerPaaOppgave(foer, etter) diff --git a/apps/etterlatte-behandling/src/main/kotlin/oppgave/OppgaveService.kt b/apps/etterlatte-behandling/src/main/kotlin/oppgave/OppgaveService.kt index e7bc4499e16..d1b5250191a 100644 --- a/apps/etterlatte-behandling/src/main/kotlin/oppgave/OppgaveService.kt +++ b/apps/etterlatte-behandling/src/main/kotlin/oppgave/OppgaveService.kt @@ -15,6 +15,7 @@ import no.nav.etterlatte.libs.common.behandling.PaaVentAarsak import no.nav.etterlatte.libs.common.feilhaandtering.IkkeFunnetException import no.nav.etterlatte.libs.common.feilhaandtering.InternfeilException import no.nav.etterlatte.libs.common.feilhaandtering.UgyldigForespoerselException +import no.nav.etterlatte.libs.common.feilhaandtering.krevIkkeNull import no.nav.etterlatte.libs.common.oppgave.OppgaveIntern import no.nav.etterlatte.libs.common.oppgave.OppgaveKilde import no.nav.etterlatte.libs.common.oppgave.OppgaveType @@ -336,7 +337,7 @@ class OppgaveService( ferdigstillOppgave(oppgaveUnderbehandling, saksbehandler, merknad) - return requireNotNull(oppgaveDao.hentOppgave(oppgaveUnderbehandling.id)) { + return krevIkkeNull(oppgaveDao.hentOppgave(oppgaveUnderbehandling.id)) { "Oppgaven vi akkurat ferdigstilte kunne ikke hentes ut" } } catch (e: NoSuchElementException) { @@ -536,7 +537,7 @@ class OppgaveService( sikreAtSaksbehandlerSomLukkerOppgaveEierOppgaven(oppgaveUnderbehandling, saksbehandler) oppgaveDao.endreStatusPaaOppgave(oppgaveUnderbehandling.id, Status.AVBRUTT) - return requireNotNull(oppgaveDao.hentOppgave(oppgaveUnderbehandling.id)) { + return krevIkkeNull(oppgaveDao.hentOppgave(oppgaveUnderbehandling.id)) { "Oppgaven vi akkurat avbrøt kunne ikke hentes ut" } } catch (e: NoSuchElementException) { diff --git a/apps/etterlatte-behandling/src/main/kotlin/sak/SakRoutes.kt b/apps/etterlatte-behandling/src/main/kotlin/sak/SakRoutes.kt index 35db6183b0a..2cf3f56ead5 100644 --- a/apps/etterlatte-behandling/src/main/kotlin/sak/SakRoutes.kt +++ b/apps/etterlatte-behandling/src/main/kotlin/sak/SakRoutes.kt @@ -27,6 +27,7 @@ import no.nav.etterlatte.libs.common.feilhaandtering.GenerellIkkeFunnetException import no.nav.etterlatte.libs.common.feilhaandtering.IkkeFunnetException import no.nav.etterlatte.libs.common.feilhaandtering.InternfeilException import no.nav.etterlatte.libs.common.feilhaandtering.UgyldigForespoerselException +import no.nav.etterlatte.libs.common.feilhaandtering.krevIkkeNull import no.nav.etterlatte.libs.common.sak.HentSakerRequest import no.nav.etterlatte.libs.common.sak.Sak import no.nav.etterlatte.libs.common.sak.SakId @@ -167,7 +168,7 @@ internal fun Route.sakSystemRoutes( post("personer/saker/{type}") { withFoedselsnummerInternal(tilgangService) { fnr -> val type: SakType = - enumValueOf(requireNotNull(call.parameters["type"]) { "Må ha en Saktype for å finne eller opprette sak" }) + enumValueOf(krevIkkeNull(call.parameters["type"]) { "Må ha en Saktype for å finne eller opprette sak" }) val message = inTransaction { sakService.finnEllerOpprettSakMedGrunnlag(fnr = fnr.value, type) } requestLogger.loggRequest(brukerTokenInfo, fnr, "personer/saker") call.respond(message) @@ -177,7 +178,7 @@ internal fun Route.sakSystemRoutes( post("personer/getsak/{type}") { withFoedselsnummerInternal(tilgangService) { fnr -> val type: SakType = - enumValueOf(requireNotNull(call.parameters["type"]) { "Må ha en Saktype for å finne sak" }) + enumValueOf(krevIkkeNull(call.parameters["type"]) { "Må ha en Saktype for å finne sak" }) requestLogger.loggRequest(brukerTokenInfo, fnr, "personer/getsak/{type}") @@ -377,7 +378,7 @@ internal fun Route.sakWebRoutes( val opprettHvisIkkeFinnes = call.request.queryParameters["opprettHvisIkkeFinnes"].toBoolean() val type: SakType = - requireNotNull(call.parameters["type"]) { + krevIkkeNull(call.parameters["type"]) { "Mangler påkrevd parameter {type} for å hente sak på bruker" }.let { enumValueOf(it) } diff --git a/apps/etterlatte-behandling/src/main/kotlin/sak/SakSkrivDao.kt b/apps/etterlatte-behandling/src/main/kotlin/sak/SakSkrivDao.kt index 8567d2a4c1f..a54f3e04ae0 100644 --- a/apps/etterlatte-behandling/src/main/kotlin/sak/SakSkrivDao.kt +++ b/apps/etterlatte-behandling/src/main/kotlin/sak/SakSkrivDao.kt @@ -4,6 +4,7 @@ import no.nav.etterlatte.grunnlagsendring.SakMedEnhet import no.nav.etterlatte.libs.common.Enhetsnummer import no.nav.etterlatte.libs.common.behandling.SakType import no.nav.etterlatte.libs.common.feilhaandtering.krev +import no.nav.etterlatte.libs.common.feilhaandtering.krevIkkeNull import no.nav.etterlatte.libs.common.person.AdressebeskyttelseGradering import no.nav.etterlatte.libs.common.person.Folkeregisteridentifikator import no.nav.etterlatte.libs.common.sak.Sak @@ -62,7 +63,7 @@ class SakSkrivDao( statement.setString(2, fnr) statement.setString(3, enhet.enhetNr) statement.setTidspunkt(4, Tidspunkt.now()) - requireNotNull( + krevIkkeNull( statement .executeQuery() .singleOrNull(mapTilSak), diff --git a/apps/etterlatte-behandling/src/main/kotlin/sak/SakendringerDao.kt b/apps/etterlatte-behandling/src/main/kotlin/sak/SakendringerDao.kt index c888e7155db..8658198a26c 100644 --- a/apps/etterlatte-behandling/src/main/kotlin/sak/SakendringerDao.kt +++ b/apps/etterlatte-behandling/src/main/kotlin/sak/SakendringerDao.kt @@ -2,6 +2,7 @@ package no.nav.etterlatte.sak import no.nav.etterlatte.Kontekst import no.nav.etterlatte.common.ConnectionAutoclosing +import no.nav.etterlatte.libs.common.feilhaandtering.krevIkkeNull import no.nav.etterlatte.libs.common.sak.Sak import no.nav.etterlatte.libs.common.sak.SakId import no.nav.etterlatte.libs.common.tidspunkt.Tidspunkt @@ -19,11 +20,11 @@ class SakendringerDao( kallendeMetode: String, block: (connection: Connection) -> Unit, ): Int { - val foer = requireNotNull(hentSak(id)) { "Må ha en sak for å kunne endre den" } + val foer = krevIkkeNull(hentSak(id)) { "Må ha en sak for å kunne endre den" } connectionAutoclosing.hentConnection { connection -> block(connection) } - val etter = requireNotNull(hentSak(id)) { "Må ha en sak etter endring" } + val etter = krevIkkeNull(hentSak(id)) { "Må ha en sak etter endring" } return lagreEndringerPaaSak(foer, etter, kallendeMetode) } @@ -32,11 +33,11 @@ class SakendringerDao( kallendeMetode: String, block: (connection: Connection) -> Unit, ) = saker.forEach { - val foer = requireNotNull(hentSak(it)) { "Må ha en sak for å kunne endre den" } + val foer = krevIkkeNull(hentSak(it)) { "Må ha en sak for å kunne endre den" } connectionAutoclosing.hentConnection { connection -> block(connection) } - val etter = requireNotNull(hentSak(it)) { "Må ha en sak etter endring" } + val etter = krevIkkeNull(hentSak(it)) { "Må ha en sak etter endring" } lagreEndringerPaaSak(foer, etter, kallendeMetode) } diff --git a/apps/etterlatte-beregning-kafka/src/main/kotlin/no/nav/etterlatte/beregningkafka/OmregningHendelserBeregningRiver.kt b/apps/etterlatte-beregning-kafka/src/main/kotlin/no/nav/etterlatte/beregningkafka/OmregningHendelserBeregningRiver.kt index 99fe9053710..24513a1b380 100644 --- a/apps/etterlatte-beregning-kafka/src/main/kotlin/no/nav/etterlatte/beregningkafka/OmregningHendelserBeregningRiver.kt +++ b/apps/etterlatte-beregning-kafka/src/main/kotlin/no/nav/etterlatte/beregningkafka/OmregningHendelserBeregningRiver.kt @@ -12,6 +12,7 @@ import no.nav.etterlatte.libs.common.beregning.BeregningDTO import no.nav.etterlatte.libs.common.beregning.Beregningsperiode import no.nav.etterlatte.libs.common.beregning.MottattInntektsjusteringAvkortigRequest import no.nav.etterlatte.libs.common.feilhaandtering.ForespoerselException +import no.nav.etterlatte.libs.common.feilhaandtering.krevIkkeNull import no.nav.etterlatte.libs.common.rapidsandrivers.setEventNameForHendelseType import no.nav.etterlatte.omregning.OmregningData import no.nav.etterlatte.omregning.OmregningDataPacket @@ -155,21 +156,23 @@ internal class OmregningHendelserBeregningRiver( ) { val dato = packet.omregningData.hentFraDato() val forrige = - requireNotNull(beregning.forrigeBeregning.beregningsperioder.paaDato(dato)) - .let { - Pair(it.utbetaltBeloep, it.grunnbelop) - }.also { - packet[ReguleringEvents.BEREGNING_BELOEP_FOER] = it.first - packet[ReguleringEvents.BEREGNING_G_FOER] = it.second - } + krevIkkeNull(beregning.forrigeBeregning.beregningsperioder.paaDato(dato)) { + "Forrige beregning mangler beregningsperiode på dato $dato" + }.let { + Pair(it.utbetaltBeloep, it.grunnbelop) + }.also { + packet[ReguleringEvents.BEREGNING_BELOEP_FOER] = it.first + packet[ReguleringEvents.BEREGNING_G_FOER] = it.second + } val naavaerende = - requireNotNull(beregning.beregning.beregningsperioder.paaDato(dato)) - .let { - Pair(it.utbetaltBeloep, it.grunnbelop) - }.also { - packet[ReguleringEvents.BEREGNING_BELOEP_ETTER] = it.first - packet[ReguleringEvents.BEREGNING_G_ETTER] = it.second - } + krevIkkeNull(beregning.beregning.beregningsperioder.paaDato(dato)) { + "Beregning mangler beregningsperiode på dato $dato" + }.let { + Pair(it.utbetaltBeloep, it.grunnbelop) + }.also { + packet[ReguleringEvents.BEREGNING_BELOEP_ETTER] = it.first + packet[ReguleringEvents.BEREGNING_G_ETTER] = it.second + } packet[ReguleringEvents.BEREGNING_BRUKT_OMREGNINGSFAKTOR] = BigDecimal(naavaerende.first).divide(BigDecimal(forrige.first)) @@ -192,7 +195,10 @@ internal class OmregningHendelserBeregningRiver( .first() .datoFOM .atDay(1) - val sistePeriodeNy = requireNotNull(ny.beregningsperioder.paaDato(dato)) + val sistePeriodeNy = + krevIkkeNull(ny.beregningsperioder.paaDato(dato)) { + "Fant ingen beregningsperiode på dato $dato" + } val nyttBeloep = sistePeriodeNy.utbetaltBeloep val sistePeriodeGammel = gammel.beregningsperioder.paaDato(dato) val gammeltBeloep = sistePeriodeGammel?.utbetaltBeloep diff --git a/apps/etterlatte-beregning/src/main/kotlin/avkorting/Avkorting.kt b/apps/etterlatte-beregning/src/main/kotlin/avkorting/Avkorting.kt index 6edba61430a..b17791a6340 100644 --- a/apps/etterlatte-beregning/src/main/kotlin/avkorting/Avkorting.kt +++ b/apps/etterlatte-beregning/src/main/kotlin/avkorting/Avkorting.kt @@ -13,6 +13,7 @@ import no.nav.etterlatte.libs.common.beregning.AvkortingGrunnlagFrontend import no.nav.etterlatte.libs.common.beregning.AvkortingGrunnlagLagreDto import no.nav.etterlatte.libs.common.beregning.SanksjonertYtelse import no.nav.etterlatte.libs.common.feilhaandtering.InternfeilException +import no.nav.etterlatte.libs.common.feilhaandtering.krevIkkeNull import no.nav.etterlatte.libs.common.grunnlag.Grunnlagsopplysning import no.nav.etterlatte.libs.common.periode.Periode import no.nav.etterlatte.libs.common.tidspunkt.Tidspunkt @@ -392,7 +393,7 @@ data class Avkorting( ) // Ytelse etter avkorting må reberegnes fra første sanksjon som ikke er "sett" i tidlegere beregninger val tidligsteFomIkkeBeregnetSanksjon = - requireNotNull(sorterteSanksjonerInnenforAarsoppgjoer.firstOrNull { it.fom >= senesteInntektsjusteringFom }?.fom) { + krevIkkeNull(sorterteSanksjonerInnenforAarsoppgjoer.firstOrNull { it.fom >= senesteInntektsjusteringFom }?.fom) { "Fant tidligere at vi har en sanksjon som er etter siste inntektsjustering, men finner ingen nå" } val ytelseMedAlleSanksjoner = diff --git a/apps/etterlatte-beregning/src/main/kotlin/beregning/BeregnOverstyrBeregningService.kt b/apps/etterlatte-beregning/src/main/kotlin/beregning/BeregnOverstyrBeregningService.kt index db81f10ed9c..a1d09e813f3 100644 --- a/apps/etterlatte-beregning/src/main/kotlin/beregning/BeregnOverstyrBeregningService.kt +++ b/apps/etterlatte-beregning/src/main/kotlin/beregning/BeregnOverstyrBeregningService.kt @@ -20,6 +20,7 @@ import no.nav.etterlatte.libs.common.behandling.virkningstidspunkt import no.nav.etterlatte.libs.common.beregning.BeregningsMetode import no.nav.etterlatte.libs.common.beregning.Beregningsperiode import no.nav.etterlatte.libs.common.beregning.Beregningstype +import no.nav.etterlatte.libs.common.feilhaandtering.krevIkkeNull import no.nav.etterlatte.libs.common.grunnlag.Grunnlag import no.nav.etterlatte.libs.common.grunnlag.Grunnlagsopplysning import no.nav.etterlatte.libs.common.objectMapper @@ -53,7 +54,7 @@ class BeregnOverstyrBeregningService( val virkningstidspunkt = behandling.virkningstidspunkt().dato val beregningsGrunnlag = - requireNotNull( + krevIkkeNull( beregningsGrunnlagService.hentOverstyrBeregningGrunnlag(behandling.id), ) { "Behandling ${behandling.id} mangler overstyr beregningsgrunnlag" } @@ -202,7 +203,7 @@ class BeregnOverstyrBeregningService( ) val grunnbeloep = - requireNotNull(periodisertResultat.resultat.finnAnvendtGrunnbeloep(grunnbeloep)) { + krevIkkeNull(periodisertResultat.resultat.finnAnvendtGrunnbeloep(grunnbeloep)) { "Anvendt grunnbeløp ikke funnet for perioden" } diff --git a/apps/etterlatte-brev-api/src/main/kotlin/no/nav/etterlatte/brev/JournalfoerBrevService.kt b/apps/etterlatte-brev-api/src/main/kotlin/no/nav/etterlatte/brev/JournalfoerBrevService.kt index 85312649639..67d87cbcdb2 100644 --- a/apps/etterlatte-brev-api/src/main/kotlin/no/nav/etterlatte/brev/JournalfoerBrevService.kt +++ b/apps/etterlatte-brev-api/src/main/kotlin/no/nav/etterlatte/brev/JournalfoerBrevService.kt @@ -21,6 +21,7 @@ import no.nav.etterlatte.brev.model.OpprettJournalpostResponse import no.nav.etterlatte.brev.model.Status import no.nav.etterlatte.brev.vedtaksbrev.VedtaksbrevService import no.nav.etterlatte.libs.common.feilhaandtering.UgyldigForespoerselException +import no.nav.etterlatte.libs.common.feilhaandtering.krevIkkeNull import no.nav.etterlatte.libs.common.sak.Sak import no.nav.etterlatte.libs.ktor.token.BrukerTokenInfo import no.nav.etterlatte.libs.ktor.token.Fagsaksystem @@ -124,8 +125,14 @@ class JournalfoerBrevService( mottaker: Mottaker, sak: Sak, ): JournalpostRequest { - val innhold = requireNotNull(db.hentBrevInnhold(brevId)) - val pdf = requireNotNull(db.hentPdf(brevId)) + val innhold = + krevIkkeNull(db.hentBrevInnhold(brevId)) { + "Brevet mangler innhold – dette er mest sannsynlig en systemfeil" + } + val pdf = + krevIkkeNull(db.hentPdf(brevId)) { + "Brevet mangler PDF – dette er mest sannsynlig en systemfeil" + } val tittel = when (mottaker.type) { diff --git a/apps/etterlatte-brev-api/src/main/kotlin/no/nav/etterlatte/brev/RedigerbartVedleggHenter.kt b/apps/etterlatte-brev-api/src/main/kotlin/no/nav/etterlatte/brev/RedigerbartVedleggHenter.kt index c6c8f799d76..6f1ac50bbad 100644 --- a/apps/etterlatte-brev-api/src/main/kotlin/no/nav/etterlatte/brev/RedigerbartVedleggHenter.kt +++ b/apps/etterlatte-brev-api/src/main/kotlin/no/nav/etterlatte/brev/RedigerbartVedleggHenter.kt @@ -17,6 +17,7 @@ import no.nav.etterlatte.libs.common.behandling.FeilutbetalingValg import no.nav.etterlatte.libs.common.behandling.Prosesstype import no.nav.etterlatte.libs.common.behandling.Revurderingaarsak import no.nav.etterlatte.libs.common.behandling.SakType +import no.nav.etterlatte.libs.common.feilhaandtering.krevIkkeNull import no.nav.etterlatte.libs.common.sak.SakId import no.nav.etterlatte.libs.common.vedtak.VedtakType import no.nav.etterlatte.libs.ktor.token.BrukerTokenInfo @@ -217,7 +218,10 @@ class RedigerbartVedleggHenter( ): Boolean = coroutineScope { val brevutfall = async { behandlingId?.let { behandlingService.hentBrevutfall(it, bruker) } } - val brevutfallHentet = requireNotNull(brevutfall.await()) + val brevutfallHentet = + krevIkkeNull(brevutfall.await()) { + "Fant ingen brevutfall" + } brevutfallHentet.feilutbetaling?.valg == FeilutbetalingValg.JA_VARSEL } } diff --git a/apps/etterlatte-brev-api/src/main/kotlin/no/nav/etterlatte/brev/db/BrevRepository.kt b/apps/etterlatte-brev-api/src/main/kotlin/no/nav/etterlatte/brev/db/BrevRepository.kt index 4b5526a1c5f..d6e45176651 100644 --- a/apps/etterlatte-brev-api/src/main/kotlin/no/nav/etterlatte/brev/db/BrevRepository.kt +++ b/apps/etterlatte-brev-api/src/main/kotlin/no/nav/etterlatte/brev/db/BrevRepository.kt @@ -41,6 +41,7 @@ import no.nav.etterlatte.brev.model.Status import no.nav.etterlatte.brev.model.opprettBrevFra import no.nav.etterlatte.libs.common.deserialize import no.nav.etterlatte.libs.common.feilhaandtering.krev +import no.nav.etterlatte.libs.common.feilhaandtering.krevIkkeNull import no.nav.etterlatte.libs.common.person.MottakerFoedselsnummer import no.nav.etterlatte.libs.common.sak.SakId import no.nav.etterlatte.libs.common.tidspunkt.Tidspunkt @@ -366,7 +367,7 @@ class BrevRepository( ).asUpdateAndReturnGeneratedKey, ) - requireNotNull(brevId) { "Brev ikke opprettet!" } + krevIkkeNull(brevId) { "Brev ikke opprettet!" } ulagretBrev.mottakere .sumOf { tx.opprettMottaker(brevId, it) } diff --git a/apps/etterlatte-brev-api/src/main/kotlin/no/nav/etterlatte/brev/dokument/DokumentRoute.kt b/apps/etterlatte-brev-api/src/main/kotlin/no/nav/etterlatte/brev/dokument/DokumentRoute.kt index 33a27caa21a..85516d6eb6a 100644 --- a/apps/etterlatte-brev-api/src/main/kotlin/no/nav/etterlatte/brev/dokument/DokumentRoute.kt +++ b/apps/etterlatte-brev-api/src/main/kotlin/no/nav/etterlatte/brev/dokument/DokumentRoute.kt @@ -15,6 +15,7 @@ import no.nav.etterlatte.brev.dokarkiv.DokarkivService import no.nav.etterlatte.brev.dokarkiv.KnyttTilAnnenSakRequest import no.nav.etterlatte.brev.dokarkiv.OppdaterJournalpostRequest import no.nav.etterlatte.libs.common.Enhetsnummer +import no.nav.etterlatte.libs.common.feilhaandtering.krevIkkeNull import no.nav.etterlatte.libs.common.person.Folkeregisteridentifikator import no.nav.etterlatte.libs.ktor.route.Tilgangssjekker import no.nav.etterlatte.libs.ktor.token.Saksbehandler @@ -111,7 +112,7 @@ fun Route.dokumentRoute( private inline val PipelineContext<*, ApplicationCall>.journalpostId: String get() = - requireNotNull(call.parameters["journalpostId"]) { + krevIkkeNull(call.parameters["journalpostId"]) { "JournalpostID mangler i requesten" } diff --git a/apps/etterlatte-brev-api/src/main/kotlin/no/nav/etterlatte/brev/hentinformasjon/BrevdataFacade.kt b/apps/etterlatte-brev-api/src/main/kotlin/no/nav/etterlatte/brev/hentinformasjon/BrevdataFacade.kt index a3299765593..99cc41a9c51 100644 --- a/apps/etterlatte-brev-api/src/main/kotlin/no/nav/etterlatte/brev/hentinformasjon/BrevdataFacade.kt +++ b/apps/etterlatte-brev-api/src/main/kotlin/no/nav/etterlatte/brev/hentinformasjon/BrevdataFacade.kt @@ -16,6 +16,7 @@ import no.nav.etterlatte.brev.hentinformasjon.vedtaksvurdering.VedtaksvurderingS import no.nav.etterlatte.brev.model.Spraak import no.nav.etterlatte.libs.common.Vedtaksloesning import no.nav.etterlatte.libs.common.behandling.Revurderingaarsak +import no.nav.etterlatte.libs.common.feilhaandtering.krevIkkeNull import no.nav.etterlatte.libs.common.objectMapper import no.nav.etterlatte.libs.common.sak.Sak import no.nav.etterlatte.libs.common.sak.SakId @@ -87,7 +88,7 @@ class BrevdataFacade( val relatertKlageId = when (behandling?.revurderingsaarsak) { Revurderingaarsak.OMGJOERING_ETTER_KLAGE -> { - requireNotNull(behandling.relatertBehandlingId) { + krevIkkeNull(behandling.relatertBehandlingId) { "Vi må få med den relaterte klagen til behanldingen hvis dette vedtaket er en omgjøring " + "etter klage, for å få riktig brev." } diff --git a/apps/etterlatte-brev-api/src/main/kotlin/no/nav/etterlatte/brev/hentinformasjon/beregning/BeregningService.kt b/apps/etterlatte-brev-api/src/main/kotlin/no/nav/etterlatte/brev/hentinformasjon/beregning/BeregningService.kt index 9871677061c..3ae8ac68e78 100644 --- a/apps/etterlatte-brev-api/src/main/kotlin/no/nav/etterlatte/brev/hentinformasjon/beregning/BeregningService.kt +++ b/apps/etterlatte-brev-api/src/main/kotlin/no/nav/etterlatte/brev/hentinformasjon/beregning/BeregningService.kt @@ -11,6 +11,7 @@ import no.nav.etterlatte.libs.common.beregning.BeregningsGrunnlagFellesDto import no.nav.etterlatte.libs.common.beregning.BeregningsMetode import no.nav.etterlatte.libs.common.feilhaandtering.InternfeilException import no.nav.etterlatte.libs.common.feilhaandtering.UgyldigForespoerselException +import no.nav.etterlatte.libs.common.feilhaandtering.krevIkkeNull import no.nav.etterlatte.libs.common.vedtak.VedtakType import no.nav.etterlatte.libs.ktor.token.BrukerTokenInfo import no.nav.etterlatte.regler.ANTALL_DESIMALER_INNTENKT @@ -65,7 +66,9 @@ class BeregningService( // ved manuelt overstyrt beregning har vi ikke grunnlag return beregningsGrunnlag?.beregningsMetode?.beregningsMetode - ?: requireNotNull(it.beregningsMetode) + ?: krevIkkeNull(it.beregningsMetode) { + "Beregningsmetode mangler" + } } suspend fun finnUtbetalingsinfoNullable( @@ -91,7 +94,10 @@ class BeregningService( trygdetidForIdent = it.trygdetidForIdent, prorataBroek = prorataBroek, institusjon = it.institusjonsopphold != null, - beregningsMetodeAnvendt = requireNotNull(it.beregningsMetode), + beregningsMetodeAnvendt = + krevIkkeNull(it.beregningsMetode) { + "Beregningsmetode mangler" + }, beregningsMetodeFraGrunnlag = finnBeregningsmetodeIGrunnlag(beregningsGrunnlag, it), avdoedeForeldre = it.avdoedeForeldre, ) diff --git a/apps/etterlatte-brev-api/src/main/kotlin/no/nav/etterlatte/brev/hentinformasjon/vedtaksvurdering/VedtaksvurderingService.kt b/apps/etterlatte-brev-api/src/main/kotlin/no/nav/etterlatte/brev/hentinformasjon/vedtaksvurdering/VedtaksvurderingService.kt index 1970d1730e6..c8263580961 100644 --- a/apps/etterlatte-brev-api/src/main/kotlin/no/nav/etterlatte/brev/hentinformasjon/vedtaksvurdering/VedtaksvurderingService.kt +++ b/apps/etterlatte-brev-api/src/main/kotlin/no/nav/etterlatte/brev/hentinformasjon/vedtaksvurdering/VedtaksvurderingService.kt @@ -1,5 +1,6 @@ package no.nav.etterlatte.brev.hentinformasjon.vedtaksvurdering +import no.nav.etterlatte.libs.common.feilhaandtering.krevIkkeNull import no.nav.etterlatte.libs.common.vedtak.VedtakStatus import no.nav.etterlatte.libs.ktor.token.BrukerTokenInfo import java.util.UUID @@ -11,7 +12,10 @@ class VedtaksvurderingService( behandlingId: UUID, brukerTokenInfo: BrukerTokenInfo, ): Pair { - val vedtakDto = requireNotNull(vedtaksvurderingKlient.hentVedtak(behandlingId, brukerTokenInfo)) + val vedtakDto = + krevIkkeNull(vedtaksvurderingKlient.hentVedtak(behandlingId, brukerTokenInfo)) { + "Fant ikke vedtak for behandling (id=$behandlingId)" + } val saksbehandlerIdent = vedtakDto.vedtakFattet?.ansvarligSaksbehandler ?: brukerTokenInfo.ident() return Pair(saksbehandlerIdent, vedtakDto.status) diff --git a/apps/etterlatte-brev-api/src/main/kotlin/no/nav/etterlatte/brev/model/BrevDataMapperFerdigstillingVedtak.kt b/apps/etterlatte-brev-api/src/main/kotlin/no/nav/etterlatte/brev/model/BrevDataMapperFerdigstillingVedtak.kt index 1ed734202f1..33cc6ffb9b6 100644 --- a/apps/etterlatte-brev-api/src/main/kotlin/no/nav/etterlatte/brev/model/BrevDataMapperFerdigstillingVedtak.kt +++ b/apps/etterlatte-brev-api/src/main/kotlin/no/nav/etterlatte/brev/model/BrevDataMapperFerdigstillingVedtak.kt @@ -40,6 +40,7 @@ import no.nav.etterlatte.libs.common.behandling.Klage import no.nav.etterlatte.libs.common.behandling.Revurderingaarsak import no.nav.etterlatte.libs.common.behandling.SakType import no.nav.etterlatte.libs.common.behandling.UtlandstilknytningType +import no.nav.etterlatte.libs.common.feilhaandtering.krevIkkeNull import no.nav.etterlatte.libs.common.sak.SakId import no.nav.etterlatte.libs.common.tilbakekreving.Tilbakekreving import no.nav.etterlatte.libs.common.vedtak.VedtakType @@ -261,7 +262,7 @@ class BrevDataMapperFerdigstillingVedtak( erUnder18Aar = soekerUnder18, utbetalingsinfo = utbetalingsinfo.await(), etterbetaling = etterbetaling.await(), - trygdetid = requireNotNull(trygdetid.await()) { "Mangler trygdetid" }, + trygdetid = krevIkkeNull(trygdetid.await()) { "Mangler trygdetid" }, grunnbeloep = grunnbeloep.await(), utlandstilknytning = utlandstilknytningType, avdoede = avdoede, @@ -317,8 +318,8 @@ class BrevDataMapperFerdigstillingVedtak( utbetalingsinfo.await(), forrigeUtbetalingsinfo.await(), etterbetaling.await(), - requireNotNull(trygdetid.await()) { "Mangler trygdetid" }, - requireNotNull(grunnbeloep.await()) { "Mangler grunnbeloep" }, + krevIkkeNull(trygdetid.await()) { "Mangler trygdetid" }, + krevIkkeNull(grunnbeloep.await()) { "Mangler grunnbeloep" }, utlandstilknytningType, brevutfall.await() ?: throw ManglerBrevutfall(behandlingId), revurderingaarsak, @@ -361,8 +362,8 @@ class BrevDataMapperFerdigstillingVedtak( innholdMedVedlegg, utbetalingsinfo.await(), etterbetaling.await(), - requireNotNull(trygdetid.await()) { "Mangler trygdetid" }, - requireNotNull(grunnbeloep.await()) { "Mangler grunnbeloep" }, + krevIkkeNull(trygdetid.await()) { "Mangler trygdetid" }, + krevIkkeNull(grunnbeloep.await()) { "Mangler grunnbeloep" }, utlandstilknytningType, brevutfall.await() ?: throw ManglerBrevutfall(behandlingId), loependeIPesys, @@ -377,8 +378,8 @@ class BrevDataMapperFerdigstillingVedtak( avdoede, utbetalingsinfo.await(), etterbetaling.await(), - requireNotNull(trygdetid.await()) { "Mangler trygdetid" }, - requireNotNull(grunnbeloep.await()) { "Mangler grunnbeløp" }, + krevIkkeNull(trygdetid.await()) { "Mangler trygdetid" }, + krevIkkeNull(grunnbeloep.await()) { "Mangler grunnbeløp" }, utlandstilknytningType, brevutfall.await() ?: throw ManglerBrevutfall(behandlingId), erGjenoppretting = systemkilde == Vedtaksloesning.GJENOPPRETTA, @@ -448,8 +449,8 @@ class BrevDataMapperFerdigstillingVedtak( innholdMedVedlegg, avkortingsinfo.await(), etterbetaling.await(), - requireNotNull(trygdetid.await()) { "Mangler trygdetid" }.single(), - requireNotNull(vilkaarsvurdering.await()) { "Mangler vilkårsvurdering" }, + krevIkkeNull(trygdetid.await()) { "Mangler trygdetid" }.single(), + krevIkkeNull(vilkaarsvurdering.await()) { "Mangler vilkårsvurdering" }, avdoede, utlandstilknytningType, behandling, @@ -503,10 +504,10 @@ class BrevDataMapperFerdigstillingVedtak( OmstillingsstoenadRevurdering.fra( innholdMedVedlegg, avkortingsinfo.await(), - requireNotNull(trygdetid.await()) { "Mangler trygdetid" }.single(), + krevIkkeNull(trygdetid.await()) { "Mangler trygdetid" }.single(), brevutfall.await() ?: throw ManglerBrevutfall(behandlingId), revurderingaarsak, - requireNotNull(vilkaarsvurdering.await()) { "Mangler vilkarsvurdering" }, + krevIkkeNull(vilkaarsvurdering.await()) { "Mangler vilkarsvurdering" }, datoVedtakOmgjoering, utlandstilknytningType, behandling, @@ -559,7 +560,7 @@ class BrevDataMapperFerdigstillingVedtak( OmstillingsstoenadInntektsjusteringVedtak.fra( innholdMedVedlegg = innholdMedVedlegg, avkortingsinfo = avkortingsinfo.await(), - trygdetid = requireNotNull(trygdetid.await()) { "Mangler trygdetid" }.single(), + trygdetid = krevIkkeNull(trygdetid.await()) { "Mangler trygdetid" }.single(), vilkaarsVurdering = vilkaarsvurdering.await(), behandling = behandling, navnAvdoed = avdoede.single().navn, diff --git a/apps/etterlatte-brev-api/src/main/kotlin/no/nav/etterlatte/brev/model/BrevDataMapperRedigerbartUtfallVedtak.kt b/apps/etterlatte-brev-api/src/main/kotlin/no/nav/etterlatte/brev/model/BrevDataMapperRedigerbartUtfallVedtak.kt index 1dd5b9454d0..462703cddf2 100644 --- a/apps/etterlatte-brev-api/src/main/kotlin/no/nav/etterlatte/brev/model/BrevDataMapperRedigerbartUtfallVedtak.kt +++ b/apps/etterlatte-brev-api/src/main/kotlin/no/nav/etterlatte/brev/model/BrevDataMapperRedigerbartUtfallVedtak.kt @@ -26,6 +26,7 @@ import no.nav.etterlatte.libs.common.behandling.Klage import no.nav.etterlatte.libs.common.behandling.Revurderingaarsak import no.nav.etterlatte.libs.common.behandling.SakType import no.nav.etterlatte.libs.common.behandling.UtlandstilknytningType +import no.nav.etterlatte.libs.common.feilhaandtering.krevIkkeNull import no.nav.etterlatte.libs.common.person.ForelderVerge import no.nav.etterlatte.libs.common.vedtak.VedtakType import no.nav.etterlatte.libs.ktor.token.BrukerTokenInfo @@ -331,7 +332,7 @@ class BrevDataMapperRedigerbartUtfallVedtak( OmstillingsstoenadInnvilgelseRedigerbartUtfall.fra( utbetalingsinfo.await(), - requireNotNull(avkortingsinfo.await()), + krevIkkeNull(avkortingsinfo.await()) { "Avkortingsinfo mangler i brevutfall" }, etterbetaling.await(), behandling.tidligereFamiliepleier?.svar ?: false, ) @@ -360,7 +361,7 @@ class BrevDataMapperRedigerbartUtfallVedtak( val behandling = behandlingService.hentBehandling(behandlingId, bruker) OmstillingsstoenadRevurderingRedigerbartUtfall.fra( - requireNotNull(avkortingsinfo.await()), + krevIkkeNull(avkortingsinfo.await()) { "Avkortingsinfo mangler i brevutfall" }, behandling, brevutfall.await() ?: throw ManglerBrevutfall(behandlingId), etterbetaling.await(), diff --git a/apps/etterlatte-brev-api/src/main/kotlin/no/nav/etterlatte/brev/model/bp/BarnepensjonOmregnetNyttRegelverk.kt b/apps/etterlatte-brev-api/src/main/kotlin/no/nav/etterlatte/brev/model/bp/BarnepensjonOmregnetNyttRegelverk.kt index 17023d5b623..515baa07187 100644 --- a/apps/etterlatte-brev-api/src/main/kotlin/no/nav/etterlatte/brev/model/bp/BarnepensjonOmregnetNyttRegelverk.kt +++ b/apps/etterlatte-brev-api/src/main/kotlin/no/nav/etterlatte/brev/model/bp/BarnepensjonOmregnetNyttRegelverk.kt @@ -12,6 +12,7 @@ import no.nav.etterlatte.brev.model.EtterbetalingDTO import no.nav.etterlatte.brev.model.InnholdMedVedlegg import no.nav.etterlatte.grunnbeloep.Grunnbeloep import no.nav.etterlatte.libs.common.behandling.UtlandstilknytningType +import no.nav.etterlatte.libs.common.feilhaandtering.krevIkkeNull import no.nav.etterlatte.libs.common.trygdetid.TrygdetidDto import no.nav.pensjon.brevbaker.api.model.Kroner @@ -78,7 +79,7 @@ data class BarnepensjonOmregnetNyttRegelverk( avdoede: List, ): BarnepensjonOmregnetNyttRegelverk { val erUnder18AarNonNull = - requireNotNull(erUnder18Aar) { + krevIkkeNull(erUnder18Aar) { "Klarte ikke å bestemme om alder på søker er under eller over 18 år. Kan dermed ikke velge riktig brev" } @@ -99,9 +100,7 @@ data class BarnepensjonOmregnetNyttRegelverk( etterbetaling = etterbetaling?.let { dto -> Etterbetaling.fraBarnepensjonDTO(dto) }, frivilligSkattetrekk = etterbetaling?.frivilligSkattetrekk ?: false, erBosattUtlandet = - ( - requireNotNull(utlandstilknytning) - ) == UtlandstilknytningType.BOSATT_UTLAND, + krevIkkeNull(utlandstilknytning) { "Utlandstilknytning mangler" } == UtlandstilknytningType.BOSATT_UTLAND, ) } } diff --git a/apps/etterlatte-brev-api/src/main/kotlin/no/nav/etterlatte/brev/model/bp/BarnepensjonOpphoer.kt b/apps/etterlatte-brev-api/src/main/kotlin/no/nav/etterlatte/brev/model/bp/BarnepensjonOpphoer.kt index e2fc3e885be..e4b28a149b2 100644 --- a/apps/etterlatte-brev-api/src/main/kotlin/no/nav/etterlatte/brev/model/bp/BarnepensjonOpphoer.kt +++ b/apps/etterlatte-brev-api/src/main/kotlin/no/nav/etterlatte/brev/model/bp/BarnepensjonOpphoer.kt @@ -11,6 +11,7 @@ import no.nav.etterlatte.brev.model.vedleggHvisFeilutbetaling import no.nav.etterlatte.libs.common.behandling.Aldersgruppe import no.nav.etterlatte.libs.common.behandling.BrevutfallDto import no.nav.etterlatte.libs.common.behandling.UtlandstilknytningType +import no.nav.etterlatte.libs.common.feilhaandtering.krevIkkeNull import java.time.LocalDate data class BarnepensjonOpphoer( @@ -28,7 +29,10 @@ data class BarnepensjonOpphoer( brevutfall: BrevutfallDto, virkningsdato: LocalDate?, ): BarnepensjonOpphoer { - val feilutbetaling = toFeilutbetalingType(requireNotNull(brevutfall.feilutbetaling?.valg)) + val feilutbetaling = + krevIkkeNull(brevutfall.feilutbetaling?.valg?.let(::toFeilutbetalingType)) { + "Feilutbetaling mangler i brevutfall" + } return BarnepensjonOpphoer( innhold = innhold.innhold(), @@ -40,7 +44,7 @@ data class BarnepensjonOpphoer( ), brukerUnder18Aar = brevutfall.aldersgruppe == Aldersgruppe.UNDER_18, bosattUtland = utlandstilknytning == UtlandstilknytningType.BOSATT_UTLAND, - virkningsdato = requireNotNull(virkningsdato), + virkningsdato = krevIkkeNull(virkningsdato) { "Virkningsdato mangler" }, feilutbetaling = feilutbetaling, ) } @@ -53,7 +57,10 @@ data class BarnepensjonOpphoerRedigerbarUtfall( companion object { fun fra(brevutfall: BrevutfallDto): BarnepensjonOpphoerRedigerbarUtfall = BarnepensjonOpphoerRedigerbarUtfall( - feilutbetaling = toFeilutbetalingType(requireNotNull(brevutfall.feilutbetaling?.valg)), + feilutbetaling = + krevIkkeNull(brevutfall.feilutbetaling?.valg?.let(::toFeilutbetalingType)) { + "Feilutbetaling mangler i brevutfall" + }, ) } } diff --git a/apps/etterlatte-brev-api/src/main/kotlin/no/nav/etterlatte/brev/model/bp/BarnepensjonRevurdering.kt b/apps/etterlatte-brev-api/src/main/kotlin/no/nav/etterlatte/brev/model/bp/BarnepensjonRevurdering.kt index 0c239b41657..a6677246dfe 100644 --- a/apps/etterlatte-brev-api/src/main/kotlin/no/nav/etterlatte/brev/model/bp/BarnepensjonRevurdering.kt +++ b/apps/etterlatte-brev-api/src/main/kotlin/no/nav/etterlatte/brev/model/bp/BarnepensjonRevurdering.kt @@ -20,6 +20,7 @@ import no.nav.etterlatte.libs.common.behandling.Aldersgruppe import no.nav.etterlatte.libs.common.behandling.BrevutfallDto import no.nav.etterlatte.libs.common.behandling.Revurderingaarsak import no.nav.etterlatte.libs.common.behandling.UtlandstilknytningType +import no.nav.etterlatte.libs.common.feilhaandtering.krevIkkeNull import no.nav.etterlatte.libs.common.trygdetid.TrygdetidDto import java.time.LocalDate @@ -57,7 +58,11 @@ data class BarnepensjonRevurdering( erMigrertYrkesskade: Boolean, ): BarnepensjonRevurdering { val beregningsperioder = barnepensjonBeregningsperioder(utbetalingsinfo) - val feilutbetaling = toFeilutbetalingType(requireNotNull(brevutfall.feilutbetaling?.valg)) + val feilutbetaling = + krevIkkeNull(brevutfall.feilutbetaling?.valg?.let(::toFeilutbetalingType)) { + "Feilutbetaling mangler i brevutfall" + } + val frivilligSkattetrekk = brevutfall.frivilligSkattetrekk ?: etterbetaling?.frivilligSkattetrekk ?: throw ManglerFrivilligSkattetrekk(brevutfall.behandlingId) @@ -125,8 +130,14 @@ data class BarnepensjonRevurderingRedigerbartUtfall( return BarnepensjonRevurderingRedigerbartUtfall( erEtterbetaling = etterbetaling != null, harUtbetaling = utbetalingsinfo.beregningsperioder.any { it.utbetaltBeloep.value > 0 }, - feilutbetaling = toFeilutbetalingType(requireNotNull(brevutfall.feilutbetaling?.valg)), - brukerUnder18Aar = requireNotNull(brevutfall.aldersgruppe) == Aldersgruppe.UNDER_18, + feilutbetaling = + krevIkkeNull(brevutfall.feilutbetaling?.valg?.let(::toFeilutbetalingType)) { + "Feilutbetaling mangler i brevutfall" + }, + brukerUnder18Aar = + krevIkkeNull(brevutfall.aldersgruppe) { + "Aldersgruppe mangler i brevutfall" + } == Aldersgruppe.UNDER_18, bosattUtland = utlandstilknytning == UtlandstilknytningType.BOSATT_UTLAND, frivilligSkattetrekk = frivilligSkattetrekk, ) diff --git a/apps/etterlatte-brev-api/src/main/kotlin/no/nav/etterlatte/brev/model/oms/OmstillingsstoenadOpphoer.kt b/apps/etterlatte-brev-api/src/main/kotlin/no/nav/etterlatte/brev/model/oms/OmstillingsstoenadOpphoer.kt index 4b0b6683452..ee6ce6f50e0 100644 --- a/apps/etterlatte-brev-api/src/main/kotlin/no/nav/etterlatte/brev/model/oms/OmstillingsstoenadOpphoer.kt +++ b/apps/etterlatte-brev-api/src/main/kotlin/no/nav/etterlatte/brev/model/oms/OmstillingsstoenadOpphoer.kt @@ -10,6 +10,7 @@ import no.nav.etterlatte.brev.model.toFeilutbetalingType import no.nav.etterlatte.brev.model.vedleggHvisFeilutbetaling import no.nav.etterlatte.libs.common.behandling.BrevutfallDto import no.nav.etterlatte.libs.common.behandling.UtlandstilknytningType +import no.nav.etterlatte.libs.common.feilhaandtering.krevIkkeNull import java.time.LocalDate data class OmstillingsstoenadOpphoer( @@ -26,7 +27,10 @@ data class OmstillingsstoenadOpphoer( virkningsdato: LocalDate?, utlandstilknytningType: UtlandstilknytningType?, ): OmstillingsstoenadOpphoer { - val feilutbetaling = toFeilutbetalingType(requireNotNull(brevutfall.feilutbetaling?.valg)) + val feilutbetaling = + krevIkkeNull(brevutfall.feilutbetaling?.valg?.let(::toFeilutbetalingType)) { + "Feilutbetaling mangler i brevutfall" + } return OmstillingsstoenadOpphoer( innhold = innholdMedVedlegg.innhold(), @@ -37,7 +41,10 @@ data class OmstillingsstoenadOpphoer( BrevVedleggKey.OMS_FORHAANDSVARSEL_FEILUTBETALING, ), bosattUtland = utlandstilknytningType == UtlandstilknytningType.BOSATT_UTLAND, - virkningsdato = requireNotNull(virkningsdato), + virkningsdato = + krevIkkeNull(virkningsdato) { + "Virkningsdato mangler i brevutfall" + }, feilutbetaling = feilutbetaling, ) } @@ -50,7 +57,10 @@ data class OmstillingsstoenadOpphoerRedigerbartUtfall( companion object { fun fra(brevutfall: BrevutfallDto): OmstillingsstoenadOpphoerRedigerbartUtfall = OmstillingsstoenadOpphoerRedigerbartUtfall( - feilutbetaling = toFeilutbetalingType(requireNotNull(brevutfall.feilutbetaling?.valg)), + feilutbetaling = + krevIkkeNull(brevutfall.feilutbetaling?.valg?.let(::toFeilutbetalingType)) { + "Feilutbetaling mangler i brevutfall" + }, ) } } diff --git a/apps/etterlatte-brev-api/src/main/kotlin/no/nav/etterlatte/brev/model/oms/OmstillingsstoenadRevurdering.kt b/apps/etterlatte-brev-api/src/main/kotlin/no/nav/etterlatte/brev/model/oms/OmstillingsstoenadRevurdering.kt index 8e6b63b79c4..493a8b58f00 100644 --- a/apps/etterlatte-brev-api/src/main/kotlin/no/nav/etterlatte/brev/model/oms/OmstillingsstoenadRevurdering.kt +++ b/apps/etterlatte-brev-api/src/main/kotlin/no/nav/etterlatte/brev/model/oms/OmstillingsstoenadRevurdering.kt @@ -22,6 +22,7 @@ import no.nav.etterlatte.libs.common.behandling.Revurderingaarsak import no.nav.etterlatte.libs.common.behandling.UtlandstilknytningType import no.nav.etterlatte.libs.common.behandling.virkningstidspunkt import no.nav.etterlatte.libs.common.feilhaandtering.InternfeilException +import no.nav.etterlatte.libs.common.feilhaandtering.krevIkkeNull import no.nav.etterlatte.libs.common.trygdetid.TrygdetidDto import no.nav.etterlatte.libs.common.vilkaarsvurdering.Utfall import no.nav.etterlatte.libs.common.vilkaarsvurdering.VilkaarType @@ -66,7 +67,10 @@ data class OmstillingsstoenadRevurdering( val beregningsperioder = avkortingsinfo.beregningsperioder.map { it.tilOmstillingsstoenadBeregningsperiode() } - val feilutbetaling = toFeilutbetalingType(requireNotNull(brevutfall.feilutbetaling?.valg)) + val feilutbetaling = + krevIkkeNull(brevutfall.feilutbetaling?.valg?.let(::toFeilutbetalingType)) { + "Feilutbetaling mangler i brevutfall" + } val beregningsperioderOpphoer = utledBeregningsperioderOpphoer(behandling, beregningsperioder) val sisteBeregningsperiode = beregningsperioderOpphoer.sisteBeregningsperiode @@ -176,7 +180,10 @@ data class OmstillingsstoenadRevurderingRedigerbartUtfall( beregningsperioder, ) }, - feilutbetaling = toFeilutbetalingType(requireNotNull(brevutfall.feilutbetaling?.valg)), + feilutbetaling = + krevIkkeNull(brevutfall.feilutbetaling?.valg?.let(::toFeilutbetalingType)) { + "Feilutbetaling mangler i brevutfall" + }, harFlereUtbetalingsperioder = beregningsperioder.size > 1, harUtbetaling = beregningsperioder.any { it.utbetaltBeloep.value > 0 }, inntekt = sisteBeregningsperiode.inntekt, diff --git a/apps/etterlatte-brev-api/src/main/kotlin/no/nav/etterlatte/brev/notat/NotatRoute.kt b/apps/etterlatte-brev-api/src/main/kotlin/no/nav/etterlatte/brev/notat/NotatRoute.kt index 0240a28a953..fef3fda37ce 100644 --- a/apps/etterlatte-brev-api/src/main/kotlin/no/nav/etterlatte/brev/notat/NotatRoute.kt +++ b/apps/etterlatte-brev-api/src/main/kotlin/no/nav/etterlatte/brev/notat/NotatRoute.kt @@ -19,6 +19,7 @@ import no.nav.etterlatte.brev.SamordningManueltBehandletRequest import no.nav.etterlatte.brev.Slate import no.nav.etterlatte.libs.common.behandling.Klage import no.nav.etterlatte.libs.common.feilhaandtering.UgyldigForespoerselException +import no.nav.etterlatte.libs.common.feilhaandtering.krevIkkeNull import no.nav.etterlatte.libs.ktor.route.SAKID_CALL_PARAMETER import no.nav.etterlatte.libs.ktor.route.Tilgangssjekker import no.nav.etterlatte.libs.ktor.route.kunSystembruker @@ -43,7 +44,7 @@ const val NOTAT_ID_CALL_PARAMETER = "notatId" inline val PipelineContext<*, ApplicationCall>.notatId: NotatID get() = - requireNotNull(call.parameters[NOTAT_ID_CALL_PARAMETER]?.toLong()) { + krevIkkeNull(call.parameters[NOTAT_ID_CALL_PARAMETER]?.toLong()) { "Gosys oppgaveId er ikke i path params" } diff --git a/apps/etterlatte-brev-api/src/main/kotlin/no/nav/etterlatte/brev/oversendelsebrev/OversendelseBrevService.kt b/apps/etterlatte-brev-api/src/main/kotlin/no/nav/etterlatte/brev/oversendelsebrev/OversendelseBrevService.kt index d744b0580b6..9a6440ac467 100644 --- a/apps/etterlatte-brev-api/src/main/kotlin/no/nav/etterlatte/brev/oversendelsebrev/OversendelseBrevService.kt +++ b/apps/etterlatte-brev-api/src/main/kotlin/no/nav/etterlatte/brev/oversendelsebrev/OversendelseBrevService.kt @@ -31,6 +31,7 @@ import no.nav.etterlatte.libs.common.behandling.SakType import no.nav.etterlatte.libs.common.feilhaandtering.GenerellIkkeFunnetException import no.nav.etterlatte.libs.common.feilhaandtering.InternfeilException import no.nav.etterlatte.libs.common.feilhaandtering.UgyldigForespoerselException +import no.nav.etterlatte.libs.common.feilhaandtering.krevIkkeNull import no.nav.etterlatte.libs.common.sak.SakId import no.nav.etterlatte.libs.common.tidspunkt.Tidspunkt import no.nav.etterlatte.libs.ktor.token.BrukerTokenInfo @@ -164,7 +165,11 @@ class OversendelseBrevServiceImpl( ) } - val klage = behandlingService.hentKlage(requireNotNull(brev.behandlingId), brukerTokenInfo) + val klage = + behandlingService.hentKlage( + klageId = krevIkkeNull(brev.behandlingId) { "Behandlingid mangler i brevet" }, + brukerTokenInfo = brukerTokenInfo, + ) return pdfGenerator.genererPdf( id = brev.id, bruker = brukerTokenInfo, diff --git a/apps/etterlatte-brev-api/src/main/kotlin/no/nav/etterlatte/brev/pdf/PDFGenerator.kt b/apps/etterlatte-brev-api/src/main/kotlin/no/nav/etterlatte/brev/pdf/PDFGenerator.kt index 1f63e7f1b77..03e1a7e2b15 100644 --- a/apps/etterlatte-brev-api/src/main/kotlin/no/nav/etterlatte/brev/pdf/PDFGenerator.kt +++ b/apps/etterlatte-brev-api/src/main/kotlin/no/nav/etterlatte/brev/pdf/PDFGenerator.kt @@ -24,6 +24,7 @@ import no.nav.etterlatte.brev.model.InnholdMedVedlegg import no.nav.etterlatte.brev.model.Pdf import no.nav.etterlatte.brev.vedtaksbrev.UgyldigMottakerKanIkkeFerdigstilles import no.nav.etterlatte.libs.common.Enhetsnummer +import no.nav.etterlatte.libs.common.feilhaandtering.krevIkkeNull import no.nav.etterlatte.libs.common.logging.sikkerlogger import no.nav.etterlatte.libs.common.retryOgPakkUt import no.nav.etterlatte.libs.common.sak.Sak @@ -76,10 +77,10 @@ class PDFGenerator( if (!brev.kanEndres()) { logger.info("Brev har status ${brev.status} - returnerer lagret innhold") - return requireNotNull(db.hentPdf(brev.id)) { "Fant ikke pdf for brev med id=${brev.id}" } + return krevIkkeNull(db.hentPdf(brev.id)) { "Fant ikke pdf for brev med id=${brev.id}" } } else if (brev.prosessType == BrevProsessType.OPPLASTET_PDF) { logger.info("Brev er en opplastet PDF – returnerer lagret innhold") - return requireNotNull(db.hentPdf(brev.id)) { "Fant ikke pdf for brev med id=${brev.id}" } + return krevIkkeNull(db.hentPdf(brev.id)) { "Fant ikke pdf for brev med id=${brev.id}" } } val behandlingId = brev.behandlingId?.takeIf { brev.brevtype.erKobletTilEnBehandling() } @@ -169,12 +170,12 @@ class PDFGenerator( } private fun hentLagretInnhold(brev: Brev) = - requireNotNull( + krevIkkeNull( db.hentBrevPayload(brev.id), ) { "Fant ikke payload for brev ${brev.id}" }.elements private fun hentLagretInnholdVedlegg(brev: Brev) = - requireNotNull(db.hentBrevPayloadVedlegg(brev.id)) { + krevIkkeNull(db.hentBrevPayloadVedlegg(brev.id)) { "Fant ikke payloadvedlegg for brev ${brev.id}" } diff --git a/apps/etterlatte-brev-api/src/main/kotlin/no/nav/etterlatte/brev/varselbrev/BrevDataMapperFerdigstillVarsel.kt b/apps/etterlatte-brev-api/src/main/kotlin/no/nav/etterlatte/brev/varselbrev/BrevDataMapperFerdigstillVarsel.kt index ffbab6c2a84..4ec83873f4e 100644 --- a/apps/etterlatte-brev-api/src/main/kotlin/no/nav/etterlatte/brev/varselbrev/BrevDataMapperFerdigstillVarsel.kt +++ b/apps/etterlatte-brev-api/src/main/kotlin/no/nav/etterlatte/brev/varselbrev/BrevDataMapperFerdigstillVarsel.kt @@ -16,6 +16,7 @@ import no.nav.etterlatte.brev.model.oms.OmstillingsstoenadAktivitetspliktVarsel import no.nav.etterlatte.libs.common.behandling.Revurderingaarsak import no.nav.etterlatte.libs.common.behandling.SakType import no.nav.etterlatte.libs.common.behandling.UtlandstilknytningType +import no.nav.etterlatte.libs.common.feilhaandtering.krevIkkeNull import no.nav.etterlatte.libs.common.vilkaarsvurdering.VilkaarsvurderingUtfall import java.time.YearMonth import java.util.UUID @@ -50,7 +51,7 @@ class BrevDataMapperFerdigstillVarsel( private suspend fun hentBrevDataFerdigstillingBarnepensjon(request: BrevDataFerdigstillingRequest) = coroutineScope { - val behandlingId = requireNotNull(request.behandlingId) + val behandlingId = krevIkkeNull(request.behandlingId) { "BehandlingId mangler" } val beregning = if (hentUtfall(request) == VilkaarsvurderingUtfall.IKKE_OPPFYLT) { null @@ -91,7 +92,7 @@ class BrevDataMapperFerdigstillVarsel( utbetalingsinfo = utbetalingsinfo.await(), grunnbeloep = grunnbeloep.await(), beregningsperioder = barnepensjonBeregningsperioder(utbetalingsinfo.await()), - trygdetid = requireNotNull(trygdetid.await()), + trygdetid = krevIkkeNull(trygdetid.await()) { "Fant ingen trygdetid for behandling $behandlingId" }, erForeldreloes = request.erForeldreloes, ) } diff --git a/apps/etterlatte-brev-api/src/main/kotlin/no/nav/etterlatte/brev/varselbrev/VarselbrevRoute.kt b/apps/etterlatte-brev-api/src/main/kotlin/no/nav/etterlatte/brev/varselbrev/VarselbrevRoute.kt index 5dc72dc6de9..55b46578a78 100644 --- a/apps/etterlatte-brev-api/src/main/kotlin/no/nav/etterlatte/brev/varselbrev/VarselbrevRoute.kt +++ b/apps/etterlatte-brev-api/src/main/kotlin/no/nav/etterlatte/brev/varselbrev/VarselbrevRoute.kt @@ -8,6 +8,7 @@ import io.ktor.server.routing.get import io.ktor.server.routing.post import io.ktor.server.routing.route import no.nav.etterlatte.brev.BREV_ID_CALL_PARAMETER +import no.nav.etterlatte.brev.brevId import no.nav.etterlatte.libs.ktor.route.BEHANDLINGID_CALL_PARAMETER import no.nav.etterlatte.libs.ktor.route.Tilgangssjekker import no.nav.etterlatte.libs.ktor.route.behandlingId @@ -58,8 +59,6 @@ internal fun Route.varselbrevRoute( get("/pdf") { withBehandlingId(tilgangssjekker) { - val brevId = requireNotNull(call.parameters["brevId"]).toLong() - logger.info("Genererer PDF for varselbrev (id=$brevId)") measureTimedValue { @@ -75,8 +74,6 @@ internal fun Route.varselbrevRoute( route("brev/{$BREV_ID_CALL_PARAMETER}/varsel") { post("/ferdigstill") { withSakId(tilgangssjekker, skrivetilgang = true) { - val brevId = requireNotNull(call.parameters[BREV_ID_CALL_PARAMETER]).toLong() - logger.info("Genererer og ferdigstiller PDF for varselbrev (id=$brevId)") measureTimedValue { diff --git a/apps/etterlatte-brev-api/src/main/kotlin/no/nav/etterlatte/brev/vedtaksbrev/VedtaksbrevRoute.kt b/apps/etterlatte-brev-api/src/main/kotlin/no/nav/etterlatte/brev/vedtaksbrev/VedtaksbrevRoute.kt index baf6945df28..bb11ca74cbf 100644 --- a/apps/etterlatte-brev-api/src/main/kotlin/no/nav/etterlatte/brev/vedtaksbrev/VedtaksbrevRoute.kt +++ b/apps/etterlatte-brev-api/src/main/kotlin/no/nav/etterlatte/brev/vedtaksbrev/VedtaksbrevRoute.kt @@ -13,7 +13,9 @@ import io.ktor.server.routing.route import no.nav.etterlatte.brev.Brevtype import no.nav.etterlatte.brev.JournalfoerBrevService import no.nav.etterlatte.brev.VedtakTilJournalfoering +import no.nav.etterlatte.brev.brevId import no.nav.etterlatte.brev.model.GenererOgFerdigstillVedtaksbrev +import no.nav.etterlatte.libs.common.feilhaandtering.krevIkkeNull import no.nav.etterlatte.libs.common.sak.SakId import no.nav.etterlatte.libs.ktor.route.BEHANDLINGID_CALL_PARAMETER import no.nav.etterlatte.libs.ktor.route.Tilgangssjekker @@ -81,7 +83,10 @@ fun Route.vedtaksbrevRoute( get("vedtak/pdf") { withBehandlingId(tilgangssjekker) { - val brevId = requireNotNull(call.parameters["brevId"]).toLong() + val brevId = + krevIkkeNull(call.request.queryParameters["brevId"]?.toLong()) { + "Kan ikke generere PDF uten brevId" + } logger.info("Genererer PDF for vedtaksbrev (id=$brevId)") diff --git a/apps/etterlatte-brev-api/src/main/kotlin/no/nav/etterlatte/brev/vedtaksbrev/VedtaksbrevService.kt b/apps/etterlatte-brev-api/src/main/kotlin/no/nav/etterlatte/brev/vedtaksbrev/VedtaksbrevService.kt index b5a2aebe16f..a6583054070 100644 --- a/apps/etterlatte-brev-api/src/main/kotlin/no/nav/etterlatte/brev/vedtaksbrev/VedtaksbrevService.kt +++ b/apps/etterlatte-brev-api/src/main/kotlin/no/nav/etterlatte/brev/vedtaksbrev/VedtaksbrevService.kt @@ -22,6 +22,7 @@ import no.nav.etterlatte.libs.common.behandling.SakType import no.nav.etterlatte.libs.common.feilhaandtering.IkkeTillattException import no.nav.etterlatte.libs.common.feilhaandtering.UgyldigForespoerselException import no.nav.etterlatte.libs.common.feilhaandtering.krev +import no.nav.etterlatte.libs.common.feilhaandtering.krevIkkeNull import no.nav.etterlatte.libs.common.logging.sikkerlogger import no.nav.etterlatte.libs.common.sak.SakId import no.nav.etterlatte.libs.common.toJson @@ -135,7 +136,7 @@ class VedtaksbrevService( migrering: Boolean = false, ) { val brev = - requireNotNull(hentVedtaksbrev(behandlingId)) { + krevIkkeNull(hentVedtaksbrev(behandlingId)) { "Fant ingen brev for behandling (id=$behandlingId)" } diff --git a/apps/etterlatte-grunnlag/src/main/kotlin/grunnlag/adresse/PersondataAdresse.kt b/apps/etterlatte-grunnlag/src/main/kotlin/grunnlag/adresse/PersondataAdresse.kt index 8e8b109db51..f85c75d4d0e 100644 --- a/apps/etterlatte-grunnlag/src/main/kotlin/grunnlag/adresse/PersondataAdresse.kt +++ b/apps/etterlatte-grunnlag/src/main/kotlin/grunnlag/adresse/PersondataAdresse.kt @@ -2,6 +2,7 @@ package no.nav.etterlatte.grunnlag.adresse import com.fasterxml.jackson.annotation.JsonSubTypes import com.fasterxml.jackson.annotation.JsonTypeInfo +import no.nav.etterlatte.libs.common.feilhaandtering.krevIkkeNull import no.nav.etterlatte.libs.common.person.BrevMottaker import no.nav.etterlatte.libs.common.person.MottakerAdresse import no.nav.etterlatte.libs.common.person.MottakerFoedselsnummer @@ -142,7 +143,7 @@ private fun utledLandkode( if (landkodeRegnesSomNorsk(landkode) && landRegnesSomNorsk(land)) { "NO" } else { - requireNotNull(landkode) { "Landkode kunne ikke settes " } + krevIkkeNull(landkode) { "Landkode kunne ikke settes " } } private fun landkodeRegnesSomNorsk(landkode: String?) = landkode.isNullOrBlank() || listOf("no", "nor").contains(landkode.lowercase()) diff --git a/apps/etterlatte-gyldig-soeknad/src/main/kotlin/no/nav/etterlatte/gyldigsoeknad/config/AppBuilder.kt b/apps/etterlatte-gyldig-soeknad/src/main/kotlin/no/nav/etterlatte/gyldigsoeknad/config/AppBuilder.kt index 5e64af58ea5..7d1fad006d0 100644 --- a/apps/etterlatte-gyldig-soeknad/src/main/kotlin/no/nav/etterlatte/gyldigsoeknad/config/AppBuilder.kt +++ b/apps/etterlatte-gyldig-soeknad/src/main/kotlin/no/nav/etterlatte/gyldigsoeknad/config/AppBuilder.kt @@ -13,6 +13,7 @@ import no.nav.etterlatte.gyldigsoeknad.pdf.PdfGeneratorKlient import no.nav.etterlatte.inntektsjustering.JournalfoerInntektsjusteringService import no.nav.etterlatte.libs.common.EnvEnum import no.nav.etterlatte.libs.common.Miljoevariabler +import no.nav.etterlatte.libs.common.feilhaandtering.krevIkkeNull import no.nav.etterlatte.libs.ktor.AzureEnums.AZURE_APP_OUTBOUND_SCOPE import no.nav.etterlatte.libs.ktor.httpClient import no.nav.etterlatte.libs.ktor.ktor.clientCredential @@ -52,7 +53,10 @@ class AppBuilder( auth = { it.install(Auth) { clientCredential { - config = env.append(AZURE_APP_OUTBOUND_SCOPE) { requireNotNull(it[scope]) } + config = + env.append(AZURE_APP_OUTBOUND_SCOPE) { + krevIkkeNull(it[scope]) { "Azure outbound scope mangler" } + } } } }, diff --git a/apps/etterlatte-klage/src/main/kotlin/no/nav/etterlatte/klage/BehandlingKlient.kt b/apps/etterlatte-klage/src/main/kotlin/no/nav/etterlatte/klage/BehandlingKlient.kt index 7f9443c1b13..40cf3dc0407 100644 --- a/apps/etterlatte-klage/src/main/kotlin/no/nav/etterlatte/klage/BehandlingKlient.kt +++ b/apps/etterlatte-klage/src/main/kotlin/no/nav/etterlatte/klage/BehandlingKlient.kt @@ -13,6 +13,7 @@ import no.nav.etterlatte.klage.modell.KlageinstansUtfall import no.nav.etterlatte.libs.common.behandling.BehandlingResultat import no.nav.etterlatte.libs.common.behandling.KabalStatus import no.nav.etterlatte.libs.common.behandling.Kabalrespons +import no.nav.etterlatte.libs.common.feilhaandtering.krevIkkeNull import no.nav.etterlatte.libs.common.objectMapper import no.nav.klage.kodeverk.Fagsystem import org.apache.kafka.clients.consumer.ConsumerRecord @@ -51,7 +52,9 @@ class BehandlingKlient( BehandlingEventType.KLAGEBEHANDLING_AVSLUTTET -> Kabalrespons( KabalStatus.FERDIGSTILT, - requireNotNull(klageHendelse.detaljer.klagebehandlingAvsluttet).utfall.tilResultat(), + krevIkkeNull(klageHendelse.detaljer.klagebehandlingAvsluttet) { + "Detaljer på klage mangler" + }.utfall.tilResultat(), ) // TODO: Se på hvordan vi håndterer anke -- det burde nok sette et eget flagg @@ -65,16 +68,17 @@ class BehandlingKlient( BehandlingEventType.ANKEBEHANDLING_AVSLUTTET -> Kabalrespons( KabalStatus.FERDIGSTILT, - requireNotNull(klageHendelse.detaljer.ankebehandlingAvsluttet).utfall.tilResultat(), + krevIkkeNull(klageHendelse.detaljer.ankebehandlingAvsluttet) { + "Detailjer på avsluttet anke mangler" + }.utfall.tilResultat(), ) BehandlingEventType.ANKE_I_TRYGDERETTENBEHANDLING_OPPRETTET -> Kabalrespons( KabalStatus.OPPRETTET, - requireNotNull( - klageHendelse.detaljer.ankeITrygderettenbehandlingOpprettet, - ).utfall?.tilResultat() - ?: BehandlingResultat.IKKE_SATT, + krevIkkeNull(klageHendelse.detaljer.ankeITrygderettenbehandlingOpprettet) { + "Detaljer på anke i trygderetten mangler" + }.utfall?.tilResultat() ?: BehandlingResultat.IKKE_SATT, ) BehandlingEventType.BEHANDLING_FEILREGISTRERT -> @@ -86,12 +90,16 @@ class BehandlingKlient( BehandlingEventType.BEHANDLING_ETTER_TRYGDERETTEN_OPPHEVET_AVSLUTTET -> Kabalrespons( KabalStatus.FERDIGSTILT, - requireNotNull(klageHendelse.detaljer.klagebehandlingAvsluttet).utfall.tilResultat(), + krevIkkeNull(klageHendelse.detaljer.klagebehandlingAvsluttet) { + "Detaljer på avsluttet klagebehandling mangler" + }.utfall.tilResultat(), ) BehandlingEventType.OMGJOERINGSKRAVBEHANDLING_AVSLUTTET -> Kabalrespons( KabalStatus.FERDIGSTILT, - requireNotNull(klageHendelse.detaljer.klagebehandlingAvsluttet).utfall.tilResultat(), + krevIkkeNull(klageHendelse.detaljer.klagebehandlingAvsluttet) { + "Detaljer på avsluttet klagebehandling mangler" + }.utfall.tilResultat(), ) } } catch (e: Exception) { diff --git a/apps/etterlatte-testdata/src/main/kotlin/no/nav/etterlatte/testdata/JsonMessage.kt b/apps/etterlatte-testdata/src/main/kotlin/no/nav/etterlatte/testdata/JsonMessage.kt index 470375af024..8a0e7b4cc26 100644 --- a/apps/etterlatte-testdata/src/main/kotlin/no/nav/etterlatte/testdata/JsonMessage.kt +++ b/apps/etterlatte-testdata/src/main/kotlin/no/nav/etterlatte/testdata/JsonMessage.kt @@ -9,6 +9,7 @@ import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper import no.nav.etterlatte.libs.common.Miljoevariabler import no.nav.etterlatte.libs.common.NaisKey +import no.nav.etterlatte.libs.common.feilhaandtering.krevIkkeNull import no.nav.etterlatte.libs.common.tidspunkt.Tidspunkt import no.nav.etterlatte.libs.common.tidspunkt.toLocalDatetimeUTC import java.net.InetAddress @@ -56,7 +57,7 @@ open class JsonMessage( } operator fun get(key: String): JsonNode = - requireNotNull(recognizedKeys[key]) { + krevIkkeNull(recognizedKeys[key]) { "$key is unknown; keys must be declared as required, forbidden, or interesting" } diff --git a/apps/etterlatte-tilbakekreving/src/main/kotlin/tilbakekreving/TilbakekrevingRoutes.kt b/apps/etterlatte-tilbakekreving/src/main/kotlin/tilbakekreving/TilbakekrevingRoutes.kt index bffd98de47a..ca6f7ba463b 100644 --- a/apps/etterlatte-tilbakekreving/src/main/kotlin/tilbakekreving/TilbakekrevingRoutes.kt +++ b/apps/etterlatte-tilbakekreving/src/main/kotlin/tilbakekreving/TilbakekrevingRoutes.kt @@ -8,9 +8,10 @@ import io.ktor.server.routing.Route import io.ktor.server.routing.get import io.ktor.server.routing.post import io.ktor.server.routing.route -import no.nav.etterlatte.libs.common.sak.SakId +import no.nav.etterlatte.libs.common.feilhaandtering.krevIkkeNull import no.nav.etterlatte.libs.common.tilbakekreving.TilbakekrevingVedtak import no.nav.etterlatte.libs.ktor.route.kunSystembruker +import no.nav.etterlatte.libs.ktor.route.sakId import org.slf4j.LoggerFactory fun Route.tilbakekrevingRoutes(tilbakekrevingService: TilbakekrevingService) { @@ -30,8 +31,8 @@ fun Route.tilbakekrevingRoutes(tilbakekrevingService: TilbakekrevingService) { get("/kravgrunnlag/{kravgrunnlagId}") { kunSystembruker { - val sakId = SakId(requireNotNull(call.parameters["sakId"]).toLong()) - val kravgrunnlagId = requireNotNull(call.parameters["kravgrunnlagId"]).toLong() + val kravgrunnlagId = + krevIkkeNull(call.parameters["kravgrunnlagId"]?.toLong()) { "KravgrunnlagId mangler" } logger.info("Henter oppdatert kravgrunnlag for sak $sakId med kravgrunnlagId $kravgrunnlagId") diff --git a/apps/etterlatte-tilbakekreving/src/main/kotlin/tilbakekreving/klienter/TilbakekrevingskomponentenKlient.kt b/apps/etterlatte-tilbakekreving/src/main/kotlin/tilbakekreving/klienter/TilbakekrevingskomponentenKlient.kt index 80c50bbe606..387d3c3ca45 100644 --- a/apps/etterlatte-tilbakekreving/src/main/kotlin/tilbakekreving/klienter/TilbakekrevingskomponentenKlient.kt +++ b/apps/etterlatte-tilbakekreving/src/main/kotlin/tilbakekreving/klienter/TilbakekrevingskomponentenKlient.kt @@ -13,6 +13,7 @@ import io.ktor.http.ContentType import io.ktor.http.contentType import kotlinx.coroutines.runBlocking import net.logstash.logback.argument.StructuredArguments.kv +import no.nav.etterlatte.libs.common.feilhaandtering.krevIkkeNull import no.nav.etterlatte.libs.common.logging.sikkerlogger import no.nav.etterlatte.libs.common.objectMapper import no.nav.etterlatte.libs.common.sak.SakId @@ -185,11 +186,11 @@ class TilbakekrevingskomponentenKlient( kodeKlasse = klasseKode belopOpprUtbet = bruttoUtbetaling.medToDesimaler() belopNy = nyBruttoUtbetaling.medToDesimaler() - belopTilbakekreves = requireNotNull(bruttoTilbakekreving).medToDesimaler() - belopSkatt = requireNotNull(skatt).medToDesimaler() - kodeResultat = requireNotNull(resultat).name + belopTilbakekreves = krevIkkeNull(bruttoTilbakekreving?.medToDesimaler()) { "Tilbakekrevingsbeløp mangler" } + belopSkatt = krevIkkeNull(skatt?.medToDesimaler()) { "Skattebeløp mangler" } + kodeResultat = krevIkkeNull(resultat?.name) { "Resultatkode mangler" } kodeAarsak = mapFraTilbakekrevingAarsak(aarsak) - kodeSkyld = requireNotNull(skyld).name + kodeSkyld = krevIkkeNull(skyld?.name) { "Skyldkode mangler" } } private fun mapFraTilbakekrevingAarsak(aarsak: TilbakekrevingAarsak): String = @@ -204,7 +205,7 @@ class TilbakekrevingskomponentenKlient( kodeKlasse = klasseKode belopOpprUtbet = bruttoUtbetaling.medToDesimaler() belopNy = nyBruttoUtbetaling.medToDesimaler() - belopTilbakekreves = requireNotNull(bruttoTilbakekreving).medToDesimaler() + belopTilbakekreves = krevIkkeNull(bruttoTilbakekreving?.medToDesimaler()) { "Tilbakekrevingsbeløp mangler" } } private fun toKravgrunnlagHentDetaljRequest(kravgrunnlagId: Long): KravgrunnlagHentDetaljRequest = diff --git a/apps/etterlatte-trygdetid/src/main/kotlin/trygdetid/TrygdetidRoutes.kt b/apps/etterlatte-trygdetid/src/main/kotlin/trygdetid/TrygdetidRoutes.kt index 3c10644e8e6..c16087a9059 100644 --- a/apps/etterlatte-trygdetid/src/main/kotlin/trygdetid/TrygdetidRoutes.kt +++ b/apps/etterlatte-trygdetid/src/main/kotlin/trygdetid/TrygdetidRoutes.kt @@ -14,6 +14,7 @@ import io.ktor.server.routing.route import io.ktor.util.pipeline.PipelineContext import no.nav.etterlatte.libs.common.feilhaandtering.GenerellIkkeFunnetException import no.nav.etterlatte.libs.common.feilhaandtering.UgyldigForespoerselException +import no.nav.etterlatte.libs.common.feilhaandtering.krevIkkeNull import no.nav.etterlatte.libs.common.grunnlag.Grunnlagsopplysning import no.nav.etterlatte.libs.common.tidspunkt.Tidspunkt import no.nav.etterlatte.libs.common.trygdetid.BeregnetTrygdetidGrunnlagDto @@ -340,7 +341,7 @@ fun Trygdetid.toDto(): TrygdetidDto = opplysninger = this.opplysninger.toDto(), overstyrtNorskPoengaar = this.overstyrtNorskPoengaar, ident = this.ident, - opplysningerDifferanse = requireNotNull(opplysningerDifferanse), + opplysningerDifferanse = krevIkkeNull(opplysningerDifferanse) { "Differanseopplysninger mangler" }, ) private fun DetaljertBeregnetTrygdetid.toDto(): DetaljertBeregnetTrygdetidDto = diff --git a/apps/etterlatte-trygdetid/src/main/kotlin/trygdetid/TrygdetidService.kt b/apps/etterlatte-trygdetid/src/main/kotlin/trygdetid/TrygdetidService.kt index 861a1cf4b47..bee1ceb5051 100644 --- a/apps/etterlatte-trygdetid/src/main/kotlin/trygdetid/TrygdetidService.kt +++ b/apps/etterlatte-trygdetid/src/main/kotlin/trygdetid/TrygdetidService.kt @@ -19,6 +19,7 @@ import no.nav.etterlatte.libs.common.feilhaandtering.GenerellIkkeFunnetException import no.nav.etterlatte.libs.common.feilhaandtering.IkkeTillattException import no.nav.etterlatte.libs.common.feilhaandtering.UgyldigForespoerselException import no.nav.etterlatte.libs.common.feilhaandtering.krev +import no.nav.etterlatte.libs.common.feilhaandtering.krevIkkeNull import no.nav.etterlatte.libs.common.grunnlag.Grunnlagsdata import no.nav.etterlatte.libs.common.grunnlag.Grunnlagsopplysning import no.nav.etterlatte.libs.common.grunnlag.hentDoedsdato @@ -296,7 +297,7 @@ class TrygdetidServiceImpl( ) = avdoede .map { avdoed -> val fnr = - requireNotNull(avdoed.hentFoedselsnummer()?.verdi?.value) { + krevIkkeNull(avdoed.hentFoedselsnummer()?.verdi?.value) { "Kunne ikke hente identifikator for avdød til trygdetid i " + "behandlingen med id=${behandling.id}" } @@ -626,13 +627,13 @@ class TrygdetidServiceImpl( val ident = if (tidligereFamiliepleier) { - requireNotNull(behandling.soeker) { + krevIkkeNull(behandling.soeker) { "Kunne ikke hente identifikator for soeker til trygdetid i " + "behandlingen med id=$behandlingId" } } else { avdoed?.let { - requireNotNull(it.hentFoedselsnummer()?.verdi?.value) { + krevIkkeNull(it.hentFoedselsnummer()?.verdi?.value) { "Kunne ikke hente identifikator for avdød til trygdetid i " + "behandlingen med id=$behandlingId" } diff --git a/apps/etterlatte-vedtaksvurdering/src/main/kotlin/no/nav/etterlatte/vedtaksvurdering/VedtakBehandlingService.kt b/apps/etterlatte-vedtaksvurdering/src/main/kotlin/no/nav/etterlatte/vedtaksvurdering/VedtakBehandlingService.kt index 8049fa878c3..86c4ac10479 100644 --- a/apps/etterlatte-vedtaksvurdering/src/main/kotlin/no/nav/etterlatte/vedtaksvurdering/VedtakBehandlingService.kt +++ b/apps/etterlatte-vedtaksvurdering/src/main/kotlin/no/nav/etterlatte/vedtaksvurdering/VedtakBehandlingService.kt @@ -11,6 +11,7 @@ import no.nav.etterlatte.libs.common.behandling.virkningstidspunkt import no.nav.etterlatte.libs.common.beregning.Beregningsperiode import no.nav.etterlatte.libs.common.feilhaandtering.InternfeilException import no.nav.etterlatte.libs.common.feilhaandtering.UgyldigForespoerselException +import no.nav.etterlatte.libs.common.feilhaandtering.krevIkkeNull import no.nav.etterlatte.libs.common.oppgave.SakIdOgReferanse import no.nav.etterlatte.libs.common.oppgave.VedtakEndringDTO import no.nav.etterlatte.libs.common.person.Folkeregisteridentifikator @@ -458,7 +459,7 @@ class VedtakBehandlingService( } private fun hentVedtakNonNull(behandlingId: UUID): Vedtak = - requireNotNull(repository.hentVedtak(behandlingId)) { + krevIkkeNull(repository.hentVedtak(behandlingId)) { "Vedtak for behandling $behandlingId finnes ikke" } @@ -617,7 +618,7 @@ class VedtakBehandlingService( when (sakType) { SakType.BARNEPENSJON -> { val beregningsperioder = - requireNotNull(beregningOgAvkorting?.beregning?.beregningsperioder) { + krevIkkeNull(beregningOgAvkorting?.beregning?.beregningsperioder) { "Mangler beregning" } beregningsperioder.map { @@ -735,7 +736,7 @@ class VedtakBehandlingService( } private fun vilkaarsvurderingUtfallNonNull(vilkaarsvurderingUtfall: VilkaarsvurderingUtfall?) = - requireNotNull(vilkaarsvurderingUtfall) { "Behandling mangler utfall på vilkårsvurdering" } + krevIkkeNull(vilkaarsvurderingUtfall) { "Behandling mangler utfall på vilkårsvurdering" } fun tilbakestillIkkeIverksatteVedtak(behandlingId: UUID): Vedtak? = repository.tilbakestillIkkeIverksatteVedtak(behandlingId) diff --git a/apps/etterlatte-vedtaksvurdering/src/main/kotlin/no/nav/etterlatte/vedtaksvurdering/VedtakTilbakekrevingService.kt b/apps/etterlatte-vedtaksvurdering/src/main/kotlin/no/nav/etterlatte/vedtaksvurdering/VedtakTilbakekrevingService.kt index 653be032d85..59ab94ede18 100644 --- a/apps/etterlatte-vedtaksvurdering/src/main/kotlin/no/nav/etterlatte/vedtaksvurdering/VedtakTilbakekrevingService.kt +++ b/apps/etterlatte-vedtaksvurdering/src/main/kotlin/no/nav/etterlatte/vedtaksvurdering/VedtakTilbakekrevingService.kt @@ -2,6 +2,7 @@ package no.nav.etterlatte.vedtaksvurdering import io.ktor.server.plugins.NotFoundException import kotlinx.coroutines.runBlocking +import no.nav.etterlatte.libs.common.feilhaandtering.krevIkkeNull import no.nav.etterlatte.libs.common.rapidsandrivers.SKAL_SENDE_BREV import no.nav.etterlatte.libs.common.tidspunkt.Tidspunkt import no.nav.etterlatte.libs.common.vedtak.Attestasjon @@ -81,7 +82,7 @@ class VedtakTilbakekrevingService( logger.info("Attesterer vedtak for tilbakekreving=${tilbakekrevingVedtakData.tilbakekrevingId}") val tilbakekrevingId = tilbakekrevingVedtakData.tilbakekrevingId val vedtak = - requireNotNull(repository.hentVedtak(tilbakekrevingId)) { + krevIkkeNull(repository.hentVedtak(tilbakekrevingId)) { "Vedtak for tilbakekreving $tilbakekrevingId finnes ikke" } verifiserGyldigVedtakStatus(tilbakekrevingId, listOf(VedtakStatus.FATTET_VEDTAK)) @@ -119,7 +120,9 @@ class VedtakTilbakekrevingService( ), ) - requireNotNull(attestertVedtak.vedtakFattet).let { + krevIkkeNull(attestertVedtak.vedtakFattet) { + "Fattet vedtak mangler" + }.let { TilbakekrevingVedtakLagretDto( id = attestertVedtak.id, fattetAv = it.ansvarligSaksbehandler, diff --git a/apps/etterlatte-vedtaksvurdering/src/main/kotlin/no/nav/etterlatte/vedtaksvurdering/VedtaksvurderingRepository.kt b/apps/etterlatte-vedtaksvurdering/src/main/kotlin/no/nav/etterlatte/vedtaksvurdering/VedtaksvurderingRepository.kt index 126f7663b81..70653cc4595 100644 --- a/apps/etterlatte-vedtaksvurdering/src/main/kotlin/no/nav/etterlatte/vedtaksvurdering/VedtaksvurderingRepository.kt +++ b/apps/etterlatte-vedtaksvurdering/src/main/kotlin/no/nav/etterlatte/vedtaksvurdering/VedtaksvurderingRepository.kt @@ -13,6 +13,7 @@ import no.nav.etterlatte.libs.common.beregning.AvkortetYtelseDto import no.nav.etterlatte.libs.common.beregning.AvkortingDto import no.nav.etterlatte.libs.common.deserialize import no.nav.etterlatte.libs.common.feilhaandtering.krev +import no.nav.etterlatte.libs.common.feilhaandtering.krevIkkeNull import no.nav.etterlatte.libs.common.objectMapper import no.nav.etterlatte.libs.common.person.Folkeregisteridentifikator import no.nav.etterlatte.libs.common.sak.SakId @@ -309,7 +310,7 @@ class VedtaksvurderingRepository( private fun hentVedtakNonNull( behandlingId: UUID, tx: TransactionalSession? = null, - ): Vedtak = requireNotNull(hentVedtak(behandlingId, tx)) { "Fant ikke vedtak for behandling $behandlingId" } + ): Vedtak = krevIkkeNull(hentVedtak(behandlingId, tx)) { "Fant ikke vedtak for behandling $behandlingId" } fun hentVedtakForSak( sakId: SakId, diff --git a/apps/etterlatte-vedtaksvurdering/src/main/kotlin/no/nav/etterlatte/vedtaksvurdering/VedtaksvurderingRoute.kt b/apps/etterlatte-vedtaksvurdering/src/main/kotlin/no/nav/etterlatte/vedtaksvurdering/VedtaksvurderingRoute.kt index 28db1a7036d..b2548377c0d 100644 --- a/apps/etterlatte-vedtaksvurdering/src/main/kotlin/no/nav/etterlatte/vedtaksvurdering/VedtaksvurderingRoute.kt +++ b/apps/etterlatte-vedtaksvurdering/src/main/kotlin/no/nav/etterlatte/vedtaksvurdering/VedtaksvurderingRoute.kt @@ -14,6 +14,7 @@ import no.nav.etterlatte.libs.common.behandling.SakType import no.nav.etterlatte.libs.common.feilhaandtering.ForespoerselException import no.nav.etterlatte.libs.common.feilhaandtering.GenerellIkkeFunnetException import no.nav.etterlatte.libs.common.feilhaandtering.IkkeFunnetException +import no.nav.etterlatte.libs.common.feilhaandtering.krevIkkeNull import no.nav.etterlatte.libs.common.person.Folkeregisteridentifikator import no.nav.etterlatte.libs.common.tidspunkt.toNorskTid import no.nav.etterlatte.libs.common.vedtak.AttesterVedtakDto @@ -61,7 +62,8 @@ fun Route.vedtaksvurderingRoute( post("/sak/{$SAKID_CALL_PARAMETER}/samordning/melding") { withSakId(behandlingKlient) { sakId -> - val oppdatering = requireNotNull(call.receive()) + val oppdatering = call.receive() + logger.info("Oppdaterer samordningsmelding=${oppdatering.samId}, sak=$sakId") vedtakBehandlingService.oppdaterSamordningsmelding(oppdatering, brukerTokenInfo).run { rapidService.sendGenerellHendelse( @@ -252,7 +254,10 @@ fun Route.vedtaksvurderingRoute( route("/vedtak") { route("/samordnet") { post("/{vedtakId}") { - val vedtakId = requireNotNull(call.parameters["vedtakId"]).toLong() + val vedtakId = + krevIkkeNull(call.parameters["vedtakId"]?.toLong()) { + "VedtakId mangler" + } val vedtak = vedtakService.hentVedtak(vedtakId) @@ -290,7 +295,10 @@ fun Route.samordningSystembrukerVedtakRoute(vedtakSamordningService: VedtakSamor } get("/{vedtakId}") { - val vedtakId = requireNotNull(call.parameters["vedtakId"]).toLong() + val vedtakId = + krevIkkeNull(call.parameters["vedtakId"]?.toLong()) { + "VedtakId mangler" + } val vedtak = vedtakSamordningService.hentVedtak(vedtakId) diff --git a/libs/etterlatte-behandling-model/src/main/kotlin/no/nav/etterlatte/libs/common/behandling/DetaljertBehandling.kt b/libs/etterlatte-behandling-model/src/main/kotlin/no/nav/etterlatte/libs/common/behandling/DetaljertBehandling.kt index a9c422a7f4e..02649d3e2c5 100644 --- a/libs/etterlatte-behandling-model/src/main/kotlin/no/nav/etterlatte/libs/common/behandling/DetaljertBehandling.kt +++ b/libs/etterlatte-behandling-model/src/main/kotlin/no/nav/etterlatte/libs/common/behandling/DetaljertBehandling.kt @@ -1,6 +1,7 @@ package no.nav.etterlatte.libs.common.behandling import no.nav.etterlatte.libs.common.Vedtaksloesning +import no.nav.etterlatte.libs.common.feilhaandtering.krevIkkeNull import no.nav.etterlatte.libs.common.sak.SakId import java.time.LocalDateTime import java.time.YearMonth @@ -29,6 +30,6 @@ data class DetaljertBehandling( ) fun DetaljertBehandling.virkningstidspunkt() = - requireNotNull(virkningstidspunkt) { + krevIkkeNull(virkningstidspunkt) { "Mangler virkningstidspunkt for behandling=$id" } diff --git a/libs/etterlatte-brev-model/src/main/kotlin/no/nav/etterlatte/brev/behandling/GrunnlagMapper.kt b/libs/etterlatte-brev-model/src/main/kotlin/no/nav/etterlatte/brev/behandling/GrunnlagMapper.kt index 44f3fd55211..01edf5f6d1b 100644 --- a/libs/etterlatte-brev-model/src/main/kotlin/no/nav/etterlatte/brev/behandling/GrunnlagMapper.kt +++ b/libs/etterlatte-brev-model/src/main/kotlin/no/nav/etterlatte/brev/behandling/GrunnlagMapper.kt @@ -4,6 +4,7 @@ import com.fasterxml.jackson.databind.JsonNode import no.nav.etterlatte.brev.model.Spraak import no.nav.etterlatte.libs.common.behandling.Aldersgruppe import no.nav.etterlatte.libs.common.behandling.Persongalleri +import no.nav.etterlatte.libs.common.feilhaandtering.krevIkkeNull import no.nav.etterlatte.libs.common.grunnlag.Grunnlag import no.nav.etterlatte.libs.common.grunnlag.Grunnlagsdata import no.nav.etterlatte.libs.common.grunnlag.hentDoedsdato @@ -63,7 +64,7 @@ fun Grunnlag.mapInnsender(): Innsender? = val opplysning = hentKonstantOpplysning(Opplysningstype.PERSONGALLERI_V1) val persongalleri = - requireNotNull(opplysning?.verdi) { + krevIkkeNull(opplysning?.verdi) { "Sak (id=${metadata.sakId}) mangler opplysningstype PERSONGALLERI_V1" } @@ -76,7 +77,7 @@ fun Grunnlag.mapSpraak(): Spraak = with(this.sak) { val opplysning = hentKonstantOpplysning(Opplysningstype.SPRAAK) - requireNotNull(opplysning?.verdi) { + krevIkkeNull(opplysning?.verdi) { "Sak (id=${metadata.sakId}) mangler opplysningstype SPRAAK" } } @@ -127,7 +128,7 @@ fun Grunnlag.erOver18(aldersgruppe: Aldersgruppe?): Boolean { // TODO henting fra PDL skal fjernes når migrering er unnagjort. Da kan vi alltid bruke brevutfall // TODO denne brukes nå også midlertidig av avslagsbrev siden vi ikke har noe brevutfall der enda val dato18Aar = - requireNotNull(this.soeker.hentFoedselsdato()) { + krevIkkeNull(this.soeker.hentFoedselsdato()) { "Barnet har ikke fødselsdato i grunnlag. Dette skal ikke skje, vi " + "klarer ikke å avgjøre hvor gammelt barnet er" }.verdi.plusYears(18) diff --git a/libs/etterlatte-brev-model/src/main/kotlin/no/nav/etterlatte/brev/distribusjon/DistribusjonModell.kt b/libs/etterlatte-brev-model/src/main/kotlin/no/nav/etterlatte/brev/distribusjon/DistribusjonModell.kt index d232eae8df8..84d4c169dc4 100644 --- a/libs/etterlatte-brev-model/src/main/kotlin/no/nav/etterlatte/brev/distribusjon/DistribusjonModell.kt +++ b/libs/etterlatte-brev-model/src/main/kotlin/no/nav/etterlatte/brev/distribusjon/DistribusjonModell.kt @@ -2,6 +2,7 @@ package no.nav.etterlatte.brev.distribusjon import com.fasterxml.jackson.annotation.JsonProperty import com.fasterxml.jackson.annotation.JsonValue +import no.nav.etterlatte.libs.common.feilhaandtering.krevIkkeNull // https://confluence.adeo.no/pages/viewpage.action?pageId=320038938 data class DistribuerJournalpostRequest( @@ -26,10 +27,10 @@ data class Adresse( ) { init { if (adressetype == AdresseType.NORSK) { - requireNotNull(postnummer) - requireNotNull(poststed) + krevIkkeNull(postnummer) { "Kan ikke distribuere uten postnummer" } + krevIkkeNull(poststed) { "Kan ikke distribuere uten poststed" } } else if (adressetype == AdresseType.UTENLANDSK) { - requireNotNull(adresselinje1) + krevIkkeNull(adresselinje1) { "Kan ikke distribuere uten adresselinjer" } } } } diff --git a/libs/etterlatte-ktor/src/main/kotlin/route/RouteUtils.kt b/libs/etterlatte-ktor/src/main/kotlin/route/RouteUtils.kt index 5f8d7eb9d74..668aa3d4bb1 100644 --- a/libs/etterlatte-ktor/src/main/kotlin/route/RouteUtils.kt +++ b/libs/etterlatte-ktor/src/main/kotlin/route/RouteUtils.kt @@ -9,6 +9,7 @@ import io.ktor.util.pipeline.PipelineContext import no.nav.etterlatte.libs.common.feilhaandtering.ForespoerselException import no.nav.etterlatte.libs.common.feilhaandtering.GenerellIkkeFunnetException import no.nav.etterlatte.libs.common.feilhaandtering.UgyldigForespoerselException +import no.nav.etterlatte.libs.common.feilhaandtering.krevIkkeNull import no.nav.etterlatte.libs.common.grunnlag.Grunnlagsopplysning import no.nav.etterlatte.libs.common.logging.sikkerlogger import no.nav.etterlatte.libs.common.person.Folkeregisteridentifikator @@ -62,19 +63,19 @@ inline val PipelineContext<*, ApplicationCall>.sakId: SakId inline val PipelineContext<*, ApplicationCall>.oppgaveId: UUID get() = - requireNotNull(call.parameters[OPPGAVEID_CALL_PARAMETER]?.let { UUID.fromString(it) }) { + krevIkkeNull(call.parameters[OPPGAVEID_CALL_PARAMETER]?.let { UUID.fromString(it) }) { "OppgaveId er ikke i path params" } inline val PipelineContext<*, ApplicationCall>.klageId: UUID get() = - requireNotNull(call.parameters[KLAGEID_CALL_PARAMETER]?.let { UUID.fromString(it) }) { + krevIkkeNull(call.parameters[KLAGEID_CALL_PARAMETER]?.let { UUID.fromString(it) }) { "KlageId er ikke i path params" } inline val PipelineContext<*, ApplicationCall>.gosysOppgaveId: String get() = - requireNotNull(call.parameters[OPPGAVEID_GOSYS_CALL_PARAMETER]) { + krevIkkeNull(call.parameters[OPPGAVEID_GOSYS_CALL_PARAMETER]) { "Gosys oppgaveId er ikke i path params" } diff --git a/libs/saksbehandling-common/src/main/kotlin/feilhaandtering/Preconditions.kt b/libs/saksbehandling-common/src/main/kotlin/feilhaandtering/Preconditions.kt index 199763307dc..982438e00b8 100644 --- a/libs/saksbehandling-common/src/main/kotlin/feilhaandtering/Preconditions.kt +++ b/libs/saksbehandling-common/src/main/kotlin/feilhaandtering/Preconditions.kt @@ -1,5 +1,10 @@ +@file:OptIn(ExperimentalContracts::class) + package no.nav.etterlatte.libs.common.feilhaandtering +import kotlin.contracts.ExperimentalContracts +import kotlin.contracts.contract + /** * Erstatter Kotlin sin precondition [require] * @@ -9,6 +14,10 @@ inline fun krev( verdi: Boolean, feilmelding: () -> String, ) { + contract { + returns() implies verdi + } + if (!verdi) { throw InternfeilException(feilmelding()) } @@ -25,10 +34,15 @@ inline fun krevIkkeNull( verdi: T?, feilmelding: () -> String, ): T { + contract { + returns() implies (verdi != null) + } + if (verdi == null) { throw InternfeilException(feilmelding()) + } else { + return verdi } - return verdi } /** @@ -40,6 +54,10 @@ inline fun sjekk( verdi: Boolean, feilmelding: () -> String, ) { + contract { + returns() implies verdi + } + if (!verdi) { throw UgyldigForespoerselException(code = "TILSTANDSSJEKK_FEILET", detail = feilmelding()) } @@ -56,8 +74,13 @@ inline fun sjekkIkkeNull( verdi: T?, feilmelding: () -> String, ): T { + contract { + returns() implies (verdi != null) + } + if (verdi == null) { throw UgyldigForespoerselException(code = "VERDI_ER_NULL", detail = feilmelding()) + } else { + return verdi } - return verdi } diff --git a/libs/saksbehandling-common/src/main/kotlin/person/Folkeregisteridentifikator.kt b/libs/saksbehandling-common/src/main/kotlin/person/Folkeregisteridentifikator.kt index ef54d15e331..bdfca313b8d 100644 --- a/libs/saksbehandling-common/src/main/kotlin/person/Folkeregisteridentifikator.kt +++ b/libs/saksbehandling-common/src/main/kotlin/person/Folkeregisteridentifikator.kt @@ -3,6 +3,7 @@ package no.nav.etterlatte.libs.common.person import com.fasterxml.jackson.annotation.JsonCreator import com.fasterxml.jackson.annotation.JsonValue import no.nav.etterlatte.libs.common.feilhaandtering.UgyldigForespoerselException +import no.nav.etterlatte.libs.common.feilhaandtering.krevIkkeNull import no.nav.etterlatte.libs.common.logging.sikkerlogger import java.time.LocalDate import java.time.temporal.ChronoUnit @@ -25,7 +26,9 @@ class Folkeregisteridentifikator private constructor( if (fnr.isNullOrEmpty()) { throw InvalidFoedselsnummerException("Fødselsnummer er tomt") } else { - return requireNotNull(ofNullable(fnr)) + return krevIkkeNull(ofNullable(fnr)) { + "Fødselsnummer mangler" + } } }