Skip to content

Commit

Permalink
EY-4669 Fjerne alle checks i appen (#6297)
Browse files Browse the repository at this point in the history
* EY-4669 Fjerne alle checks i appen

* Internfeil på upsert av aks

* Hadde snudd logikken her
  • Loading branch information
sebassonav authored Nov 13, 2024
1 parent 92d6eb6 commit 0c38459
Show file tree
Hide file tree
Showing 13 changed files with 107 additions and 35 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import no.nav.etterlatte.common.ConnectionAutoclosing
import no.nav.etterlatte.libs.common.aktivitetsplikt.AktivitetspliktAktivitetsgradDto
import no.nav.etterlatte.libs.common.aktivitetsplikt.VurdertAktivitetsgrad
import no.nav.etterlatte.libs.common.feilhaandtering.InternfeilException
import no.nav.etterlatte.libs.common.feilhaandtering.checkInternFeil
import no.nav.etterlatte.libs.common.grunnlag.Grunnlagsopplysning
import no.nav.etterlatte.libs.common.sak.SakId
import no.nav.etterlatte.libs.database.setSakId
Expand All @@ -32,8 +33,8 @@ class AktivitetspliktAktivitetsgradDao(
oppgaveId: UUID? = null,
behandlingId: UUID? = null,
) = connectionAutoclosing.hentConnection {
check(oppgaveId != null || behandlingId != null) {
"Kan ikke opprette aktivitetsgrad som ikke er koblet på en behandling eller oppgave"
checkInternFeil(oppgaveId != null || behandlingId != null) {
"Kan ikke opprette aktivitetsgrad som ikke er koblet på en behandling eller oppgave. $sakId"
}

with(it) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import no.nav.etterlatte.inTransaction
import no.nav.etterlatte.libs.common.Enhetsnummer
import no.nav.etterlatte.libs.common.feilhaandtering.IkkeFunnetException
import no.nav.etterlatte.libs.common.feilhaandtering.UgyldigForespoerselException
import no.nav.etterlatte.libs.common.feilhaandtering.checkUgyldigForespoerselException
import no.nav.etterlatte.libs.common.oppgave.OppgaveIntern
import no.nav.etterlatte.libs.common.oppgave.OppgaveKilde
import no.nav.etterlatte.libs.common.oppgave.OppgaveSaksbehandler
Expand Down Expand Up @@ -246,14 +247,14 @@ class GosysOppgaveServiceImpl(
throw StoetterKunFlyttingAvJournalfoeringsoppgave()
}

check(!gosysOppgave.journalpostId.isNullOrBlank()) {
checkUgyldigForespoerselException(value = !gosysOppgave.journalpostId.isNullOrBlank(), code = "KAN_IKKE_FLYTTE_GOSYS_OPPGAVE") {
"Kan ikke flytte oppgave når journalpostId mangler (oppgaveId=${gosysOppgave.id})"
}

val nyOppgave =
inTransaction {
oppgaveService.opprettOppgave(
referanse = gosysOppgave.journalpostId,
referanse = gosysOppgave.journalpostId!!,
sakId = sakId,
kilde = OppgaveKilde.SAKSBEHANDLER,
type = OppgaveType.JOURNALFOERING,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ 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.beregning.OverstyrtBeregningKategori
import no.nav.etterlatte.libs.common.feilhaandtering.checkInternFeil
import no.nav.etterlatte.libs.common.grunnlag.Grunnlagsopplysning
import no.nav.etterlatte.libs.common.grunnlag.Metadata
import no.nav.etterlatte.libs.common.objectMapper
Expand Down Expand Up @@ -219,19 +220,19 @@ private fun toBeregningsperiode(row: Row): BeregningsperiodeDAO =
private fun toBeregning(beregningsperioder: List<BeregningsperiodeDAO>): Beregning {
val base =
beregningsperioder.first().apply {
check(beregningsperioder.all { it.beregningId == beregningId }) {
checkInternFeil(beregningsperioder.all { it.beregningId == beregningId }) {
"Beregningen inneholder forskjellige beregningsIder $beregningId for beregning $beregningId"
}
check(beregningsperioder.all { it.behandlingId == behandlingId }) {
checkInternFeil(beregningsperioder.all { it.behandlingId == behandlingId }) {
"Beregningen inneholder forskjellige behandlingIder $behandlingId for beregning $beregningId"
}
check(beregningsperioder.all { it.type == type }) {
checkInternFeil(beregningsperioder.all { it.type == type }) {
"Beregningen inneholder forskjellige typer $type for beregning $beregningId"
}
check(beregningsperioder.all { it.beregnetDato == beregnetDato }) {
checkInternFeil(beregningsperioder.all { it.beregnetDato == beregnetDato }) {
"Beregningen inneholder forskjellige beregnetDatoer $beregnetDato for beregning $beregningId"
}
check(beregningsperioder.all { it.grunnlagMetadata == grunnlagMetadata }) {
checkInternFeil(beregningsperioder.all { it.grunnlagMetadata == grunnlagMetadata }) {
"Beregningen inneholder forskjellige grunnlagMetadata $grunnlagMetadata for beregning $beregningId"
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import no.nav.etterlatte.beregning.regler.overstyr.RegulerManuellBeregningGrunnl
import no.nav.etterlatte.beregning.regler.overstyr.grunnbeloepUtenGrunnlag
import no.nav.etterlatte.beregning.regler.overstyr.regulerOverstyrtKroneavrundet
import no.nav.etterlatte.grunnbeloep.Grunnbeloep
import no.nav.etterlatte.libs.common.feilhaandtering.checkInternFeil
import no.nav.etterlatte.libs.common.grunnlag.Grunnlagsopplysning
import no.nav.etterlatte.libs.common.objectMapper
import no.nav.etterlatte.libs.common.tidspunkt.Tidspunkt
Expand Down Expand Up @@ -88,17 +89,17 @@ private fun utledGrunnbeloep(reguleringsmaaned: YearMonth) =
).let { resultat ->
when (resultat) {
is RegelkjoeringResultat.Suksess -> {
check(resultat.periodiserteResultater.size == 2) {
checkInternFeil(resultat.periodiserteResultater.size == 2) {
"Fikk uventet antall perioder for utleding av grunnlag: ${resultat.periodiserteResultater.size}"
}
resultat.periodiserteResultater.let {
val gammelG: Grunnbeloep = it[0].resultat.verdi
val forrigeGrunnbeloepDato = reguleringsmaaned.minusYears(1)
check(gammelG.dato == forrigeGrunnbeloepDato) {
checkInternFeil(gammelG.dato == forrigeGrunnbeloepDato) {
"Dato til utledet forrige grunnbeløp er ikke forventet dato $forrigeGrunnbeloepDato"
}
val nyG: Grunnbeloep = it[1].resultat.verdi
check(nyG.dato == reguleringsmaaned) {
checkInternFeil(nyG.dato == reguleringsmaaned) {
"Dato til utledet nytt grunnbeløp er ikke forventet dato $reguleringsmaaned"
}
Pair(gammelG, nyG)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ import no.nav.etterlatte.brev.vedtaksbrev.UgyldigAntallMottakere
import no.nav.etterlatte.brev.vedtaksbrev.UgyldigMottakerKanIkkeFerdigstilles
import no.nav.etterlatte.libs.common.feilhaandtering.InternfeilException
import no.nav.etterlatte.libs.common.feilhaandtering.UgyldigForespoerselException
import no.nav.etterlatte.libs.common.feilhaandtering.checkUgyldigForespoerselException
import no.nav.etterlatte.libs.common.logging.sikkerlogger
import no.nav.etterlatte.libs.common.sak.SakId
import no.nav.etterlatte.libs.common.tidspunkt.Tidspunkt
Expand Down Expand Up @@ -348,7 +349,9 @@ class BrevService(
logger.info("Sjekker om brev med id=$id kan slettes")

val brev = sjekkOmBrevKanEndres(id)
check(brev.behandlingId == null) { "Brev med id=$id er et vedtaksbrev og kan ikke slettes" }
checkUgyldigForespoerselException(value = brev.behandlingId == null, code = "BREV_KAN_IKKE_SLETTES") {
"Brev med id=$id er et vedtaksbrev og kan ikke slettes"
}

val result = db.settBrevSlettet(id, bruker)
logger.info("Brev med id=$id slettet=$result")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package no.nav.etterlatte.brev.dokarkiv

import com.fasterxml.jackson.annotation.JsonInclude
import no.nav.etterlatte.libs.common.Enhetsnummer
import no.nav.etterlatte.libs.common.feilhaandtering.checkInternFeil
import org.slf4j.LoggerFactory

interface OpprettJournalpost {
Expand Down Expand Up @@ -41,7 +42,7 @@ data class JournalpostRequest(
override val tittel: String,
) : OpprettJournalpost {
init {
check(journalposttype != JournalPostType.NOTAT) {
checkInternFeil(journalposttype != JournalPostType.NOTAT) {
"${this::class.simpleName} skal ikke brukes til opprettelse av Notat. " +
"Bruk ${OpprettNotatJournalpostRequest::class.simpleName} i stedet."
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,18 @@ data class BrevkodeRequest(
val revurderingaarsak: Revurderingaarsak?,
)

class VedtakTypeFeilForBrevkode(
val vedtakType: VedtakType?,
) : UgyldigForespoerselException(
code = "FEIL_VEDTAKTYPE",
detail = "Feil vedtakstype $ $vedtakType",
)

class BrevKodeMapperVedtak {
fun brevKode(request: BrevkodeRequest): Brevkoder {
if (request.erMigrering && !request.erForeldreloes) {
check(listOf(VedtakType.INNVILGELSE, VedtakType.ENDRING).contains(request.vedtakType)) {
"Vedtaktype må være ${VedtakType.INNVILGELSE.name} eller ${VedtakType.ENDRING.name} var ${request.vedtakType}"
if (listOf(VedtakType.INNVILGELSE, VedtakType.ENDRING).contains(request.vedtakType)) {
throw VedtakTypeFeilForBrevkode(request.vedtakType)
}
return Brevkoder.OMREGNING
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@ import no.nav.etterlatte.libs.common.deserialize
import no.nav.etterlatte.libs.common.feilhaandtering.GenerellIkkeFunnetException
import no.nav.etterlatte.libs.common.feilhaandtering.IkkeFunnetException
import no.nav.etterlatte.libs.common.feilhaandtering.IkkeTillattException
import no.nav.etterlatte.libs.common.feilhaandtering.InternfeilException
import no.nav.etterlatte.libs.common.feilhaandtering.checkNotNullOrThrowException
import no.nav.etterlatte.libs.common.grunnlag.Grunnlag
import no.nav.etterlatte.libs.common.grunnlag.Grunnlagsopplysning
import no.nav.etterlatte.libs.common.grunnlag.OppdaterGrunnlagRequest
Expand Down Expand Up @@ -374,8 +376,9 @@ class RealGrunnlagService(
hendelsenummer = laastVersjon.hendelsenummer,
)
opplysningDao.laasGrunnlagVersjonForBehandling(skalLaasesId)
return checkNotNull(opplysningDao.hentBehandlingVersjon(skalLaasesId)) {
"Fant ikke låst grunnlagsversjon vi akkurat la inn :("

return checkNotNullOrThrowException(opplysningDao.hentBehandlingVersjon(skalLaasesId)) {
InternfeilException("Fant ikke låst grunnlagsversjon vi akkurat la inn :(")
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import io.ktor.server.routing.Route
import io.ktor.server.routing.get
import io.ktor.server.routing.post
import no.nav.etterlatte.TestDataFeature
import no.nav.etterlatte.libs.common.feilhaandtering.checkInternFeil
import no.nav.etterlatte.libs.common.innsendtsoeknad.common.SoeknadType
import no.nav.etterlatte.libs.ktor.token.Claims
import no.nav.etterlatte.libs.ktor.token.brukerTokenInfo
Expand Down Expand Up @@ -101,7 +102,7 @@ private fun opprettSoeknadJson(
behandlingssteg: Behandlingssteg,
): String {
if (soeknadType == SoeknadType.BARNEPENSJON) {
check(barnFnr.isNotEmpty()) {
checkInternFeil(barnFnr.isNotEmpty()) {
"Kan ikke opprette barnepensjon uten fnr på barn!"
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package no.nav.etterlatte.utbetaling.avstemming.vedtak

import no.nav.etterlatte.libs.common.feilhaandtering.UgyldigForespoerselException
import no.nav.etterlatte.utbetaling.iverksetting.utbetaling.Utbetaling
import no.nav.etterlatte.utbetaling.iverksetting.utbetaling.Utbetalingslinje
import no.nav.etterlatte.utbetaling.iverksetting.utbetaling.Utbetalingsperiode
Expand All @@ -8,6 +9,20 @@ import no.nav.etterlatte.utbetaling.iverksetting.utbetaling.Utbetalingsvedtak
import java.math.BigDecimal
import java.time.YearMonth

class FeilBeloep(
msg: String,
) : UgyldigForespoerselException(
code = "FEIL_BELOEP",
detail = msg,
)

class FeilTomPeriodeVedtak(
msg: String,
) : UgyldigForespoerselException(
code = "FEIL_TOM_PERIODE_VEDTAK",
detail = msg,
)

class Vedtaksverifiserer {
fun verifiser(
utbetaling: Utbetaling,
Expand All @@ -30,17 +45,22 @@ class Vedtaksverifiserer {
fraVedtak: Utbetalingsperiode,
korresponderendeUtbetalingslinje: Utbetalingslinje,
) {
check(sammenlignBeloep(fraVedtak, korresponderendeUtbetalingslinje)) {
"Beløp fra vedtak $vedtakId var ${fraVedtak.beloep}, men i utbetalingslinje ${korresponderendeUtbetalingslinje.beloep}"
if (!sammenlignBeloep(fraVedtak, korresponderendeUtbetalingslinje)) {
throw FeilBeloep(
"Beløp fra vedtak $vedtakId var ${fraVedtak.beloep}, men i utbetalingslinje ${korresponderendeUtbetalingslinje.beloep}",
)
}
check(fraVedtak.periode.tom == korresponderendeUtbetalingslinje.periode.til?.let { YearMonth.from(it) }) {
"Tom-periode fra vedtak $vedtakId var ${fraVedtak.periode.tom}, men i utbetalingslinje ${
korresponderendeUtbetalingslinje.periode.til?.let {
YearMonth.from(
it,
)
}
}"

if (fraVedtak.periode.tom != korresponderendeUtbetalingslinje.periode.til?.let { YearMonth.from(it) }) {
throw FeilTomPeriodeVedtak(
"Tom-periode fra vedtak $vedtakId var ${fraVedtak.periode.tom}, men i utbetalingslinje ${
korresponderendeUtbetalingslinje.periode.til?.let {
YearMonth.from(
it,
)
}
}",
)
}
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package no.nav.etterlatte.no.nav.etterlatte.vedtaksvurdering

import no.nav.etterlatte.libs.common.feilhaandtering.checkInternFeil
import no.nav.etterlatte.libs.common.vedtak.Periode
import no.nav.etterlatte.libs.common.vedtak.UtbetalingsperiodeType
import no.nav.etterlatte.libs.common.vedtak.VedtakType
Expand Down Expand Up @@ -41,7 +42,7 @@ object VedtakOgBeregningSammenligner {
?: beregning.beregning.beregningsperioder.sortedBy { it.datoFOM }.map {
PeriodeMedBeloep(fom = it.datoFOM, tom = it.datoTOM, beloep = it.utbetaltBeloep)
}
check(perioder.size == beregningsperioder.size) {
checkInternFeil(perioder.size == beregningsperioder.size) {
"Forventa like mange perioder i vedtak som i beregning for vedtak ${vedtak.id} i sak ${vedtak.sakId}. " +
"Vedtak hadde ${perioder.size}, mens beregning hadde ${beregningsperioder.size}. " +
"Alle perioder fra vedtak: ${perioder.map { "${it.periode}: ${it.beloep}" }}. " +
Expand All @@ -53,10 +54,10 @@ object VedtakOgBeregningSammenligner {
val periode = perioder[i]
val beregningsperiode = beregningsperioder[i]

check(BigDecimal(beregningsperiode.beloep) == periode.beloep) {
checkInternFeil(BigDecimal(beregningsperiode.beloep) == periode.beloep) {
"Beløp for periode ${periode.periode} i vedtak ${vedtak.id} og behandling ${vedtak.behandlingId} var ${periode.beloep} i vedtak, men ${beregningsperiode.beloep} fra beregning og eventuell avkorting"
}
check(Periode(beregningsperiode.fom, beregningsperiode.tom) == periode.periode) {
checkInternFeil(Periode(beregningsperiode.fom, beregningsperiode.tom) == periode.periode) {
"FOM og TOM for periode ${periode.periode} i vedtak ${vedtak.id} " +
"og behandling ${vedtak.behandlingId} i vedtak, men ${Periode(
beregningsperiode.fom,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import no.nav.etterlatte.libs.common.beregning.AvkortingDto
import no.nav.etterlatte.libs.common.beregning.BeregningDTO
import no.nav.etterlatte.libs.common.beregning.Beregningsperiode
import no.nav.etterlatte.libs.common.beregning.Beregningstype
import no.nav.etterlatte.libs.common.feilhaandtering.InternfeilException
import no.nav.etterlatte.libs.common.tidspunkt.Tidspunkt
import no.nav.etterlatte.libs.common.vedtak.Periode
import no.nav.etterlatte.libs.common.vedtak.Utbetalingsperiode
Expand All @@ -33,14 +34,14 @@ class VedtakOgBeregningSammenlignerTest {

@Test
fun `sammenligner behandling feiler naar sum for beregning og utbetaling ikke stemmer`() {
assertThrows<IllegalStateException> {
assertThrows<InternfeilException> {
VedtakOgBeregningSammenligner.sammenlign(BeregningOgAvkorting(lagBeregning(100), null), lagVedtak())
}
}

@Test
fun `sammenligner behandling feiler naar periode for beregning og utbetaling ikke stemmer`() {
assertThrows<IllegalStateException> {
assertThrows<InternfeilException> {
VedtakOgBeregningSammenligner.sammenlign(
BeregningOgAvkorting(
lagBeregning(
Expand All @@ -59,7 +60,7 @@ class VedtakOgBeregningSammenlignerTest {

@Test
fun `sammenligner behandling feiler naar beloep fra avkorting og utbetaling ikke stemmer`() {
assertThrows<IllegalStateException> {
assertThrows<InternfeilException> {
VedtakOgBeregningSammenligner.sammenlign(
BeregningOgAvkorting(lagBeregning(), lagAvkorting(1200)),
lagVedtak(),
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
package no.nav.etterlatte.libs.common.feilhaandtering

fun <T : Any> checkNotNullOrThrowException(
value: T?,
throwable: () -> Throwable,
): T {
if (value == null) {
throw throwable()
} else {
return value
}
}

fun checkInternFeil(
value: Boolean,
message: () -> String,
) {
if (!value) {
throw InternfeilException(message())
}
}

fun checkUgyldigForespoerselException(
value: Boolean,
code: String,
message: () -> String,
) {
if (!value) {
throw UgyldigForespoerselException(code = code, detail = message())
}
}

0 comments on commit 0c38459

Please sign in to comment.