Skip to content

Commit fd1ca00

Browse files
authored
Merge branch 'main' into feat/tilleggsorba
2 parents 64810f8 + f6bc775 commit fd1ca00

File tree

9 files changed

+41
-16
lines changed

9 files changed

+41
-16
lines changed

src/main/kotlin/no/nav/familie/ba/sak/kjerne/brev/BrevKlient.kt

+8
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package no.nav.familie.ba.sak.kjerne.brev
22

3+
import no.nav.familie.ba.sak.common.FunksjonellFeil
34
import no.nav.familie.ba.sak.common.kallEksternTjeneste
45
import no.nav.familie.ba.sak.internal.TestVerktøyService
56
import no.nav.familie.ba.sak.kjerne.brev.domene.maler.Brev
@@ -10,6 +11,7 @@ import no.nav.familie.http.client.AbstractRestClient
1011
import org.springframework.beans.factory.annotation.Value
1112
import org.springframework.cache.annotation.Cacheable
1213
import org.springframework.stereotype.Component
14+
import org.springframework.web.client.HttpClientErrorException
1315
import org.springframework.web.client.RestTemplate
1416
import java.net.URI
1517

@@ -47,6 +49,12 @@ class BrevKlient(
4749
kallEksternTjeneste(FAMILIE_BREV_TJENESTENAVN, uri, "Henter begrunnelsestekst") {
4850
postForEntity(uri, begrunnelseData)
4951
}
52+
} catch (exception: HttpClientErrorException.BadRequest) {
53+
log.warn("En bad request oppstod ved henting av begrunneelsetekst. Se SecureLogs for detaljer,")
54+
secureLogger.warn("En bad request oppstod ved henting av begrunnelsetekst", exception)
55+
throw FunksjonellFeil(
56+
"Begrunnelsen ${begrunnelseData.apiNavn} passer ikke vedtaksperioden. Hvis du mener dette er feil, ta kontakt med team BAKS.",
57+
)
5058
} catch (e: Exception) {
5159
secureLogger.info("Kall for å hente begrunnelsetest feilet. Autogenerert test:\"" + testVerktøyService.hentBegrunnelsetest(vedtaksperiode.vedtak.behandling.id))
5260
throw e

src/main/kotlin/no/nav/familie/ba/sak/kjerne/brev/BrevService.kt

+2-2
Original file line numberDiff line numberDiff line change
@@ -444,13 +444,13 @@ class BrevService(
444444
landkoder = integrasjonClient.hentLandkoderISO2(),
445445
)
446446
} catch (e: BrevBegrunnelseFeil) {
447-
secureLogger.info(
447+
secureLogger.warn(
448448
"Brevbegrunnelsefeil for behandling $behandlingId, " +
449449
"fagsak ${vedtak.behandling.fagsak.id} " +
450450
"på periode ${vedtaksperiode.fom} - ${vedtaksperiode.tom}. " +
451451
"\nAutogenerert test:\n" + testVerktøyService.hentBegrunnelsetest(behandlingId),
452452
)
453-
throw IllegalStateException(e.message, e)
453+
throw e
454454
}
455455
}
456456

src/main/kotlin/no/nav/familie/ba/sak/kjerne/brev/BrevmalService.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ class BrevmalService(
2323

2424
fun hentVedtaksbrevmal(behandling: Behandling): Brevmal {
2525
if (behandling.resultat == Behandlingsresultat.IKKE_VURDERT) {
26-
throw Feil("Kan ikke opprette brev. Behandlingen er ikke vurdert.")
26+
throw FunksjonellFeil("Kan ikke opprette brev. Behandlingen er ikke vurdert.")
2727
}
2828

2929
val brevmal =

src/main/kotlin/no/nav/familie/ba/sak/kjerne/brev/DokumentGenereringService.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ class DokumentGenereringService(
5858
secureLogger.info("Feil ved dokumentgenerering. Genererer hentVedtaksperioderTest \n ${testVerktøyService.hentVedtaksperioderTest(vedtak.behandling.id)}")
5959

6060
throw Feil(
61-
message = "Klarte ikke generere vedtaksbrev på behandling ${vedtak.behandling}: ${feil.message}",
61+
message = "Klarte ikke generere vedtaksbrev på fagsak/behandling ${vedtak.behandling.fagsak.id}/${vedtak.behandling.id}: ${feil.message}",
6262
frontendFeilmelding = "Det har skjedd en feil, og brevet er ikke sendt. Prøv igjen, og ta kontakt med brukerstøtte hvis problemet vedvarer.",
6363
httpStatus = HttpStatus.INTERNAL_SERVER_ERROR,
6464
throwable = feil,

src/main/kotlin/no/nav/familie/ba/sak/kjerne/brev/DokumentService.kt

+18-3
Original file line numberDiff line numberDiff line change
@@ -63,10 +63,25 @@ class DokumentService(
6363
fun hentBrevForVedtak(vedtak: Vedtak): Ressurs<ByteArray> {
6464
val høyesteRolletilgangForInnloggetBruker = SikkerhetContext.hentHøyesteRolletilgangForInnloggetBruker(rolleConfig)
6565

66-
if (høyesteRolletilgangForInnloggetBruker in listOf(BehandlerRolle.VEILEDER, BehandlerRolle.FORVALTER) && vedtak.stønadBrevPdF == null) {
67-
throw FunksjonellFeil("Det finnes ikke noe vedtaksbrev.")
66+
val funksjonelleRoller =
67+
listOf(
68+
BehandlerRolle.VEILEDER,
69+
BehandlerRolle.FORVALTER,
70+
BehandlerRolle.SAKSBEHANDLER,
71+
BehandlerRolle.BESLUTTER,
72+
)
73+
if (høyesteRolletilgangForInnloggetBruker in funksjonelleRoller && vedtak.stønadBrevPdF == null) {
74+
throw FunksjonellFeil(
75+
melding =
76+
"Klarte ikke finne vedtaksbrev for vedtak med id ${vedtak.id}. Innlogget bruker har rolle: $høyesteRolletilgangForInnloggetBruker",
77+
frontendFeilmelding = "Det finnes ikke noe vedtaksbrev.",
78+
)
6879
} else {
69-
val pdf = vedtak.stønadBrevPdF ?: throw Feil("Klarte ikke finne vedtaksbrev for vedtak med id ${vedtak.id}")
80+
val pdf =
81+
vedtak.stønadBrevPdF ?: throw Feil(
82+
"Klarte ikke finne vedtaksbrev for vedtak med id ${vedtak.id}. " +
83+
"Innlogget bruker har rolle: $høyesteRolletilgangForInnloggetBruker",
84+
)
7085
return Ressurs.success(pdf)
7186
}
7287
}

src/main/kotlin/no/nav/familie/ba/sak/kjerne/brev/brevBegrunnelseProdusent/BrevBegrunnelseProdusent.kt

+5-2
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
package no.nav.familie.ba.sak.kjerne.brev.brevBegrunnelseProdusent
22

33
import no.nav.familie.ba.sak.common.Feil
4+
import no.nav.familie.ba.sak.common.FunksjonellFeil
45
import no.nav.familie.ba.sak.common.TIDENES_MORGEN
56
import no.nav.familie.ba.sak.common.Utils
67
import no.nav.familie.ba.sak.common.forrigeMåned
78
import no.nav.familie.ba.sak.common.tilKortString
89
import no.nav.familie.ba.sak.common.tilMånedÅr
10+
import no.nav.familie.ba.sak.integrasjoner.pdl.logger
911
import no.nav.familie.ba.sak.kjerne.beregning.domene.YtelseType
1012
import no.nav.familie.ba.sak.kjerne.brev.brevPeriodeProdusent.erBetaltDeltUtvidetIPeriode
1113
import no.nav.familie.ba.sak.kjerne.brev.brevPeriodeProdusent.erBetaltUtvidetIPeriode
@@ -494,7 +496,8 @@ private fun ISanityBegrunnelse.validerBrevbegrunnelse(
494496
barnasFødselsdatoer: List<LocalDate>,
495497
) {
496498
if (!gjelderSøker && barnasFødselsdatoer.isEmpty() && !this.gjelderSatsendring && !this.erAvslagUregistrerteBarnBegrunnelse()) {
497-
throw BrevBegrunnelseFeil("Ingen personer på brevbegrunnelse ${this.apiNavn}")
499+
logger.warn("Ingen personer på brevbegrunnelse ${this.apiNavn}")
500+
throw BrevBegrunnelseFeil("Begrunnelsen ${this.navnISystem} er ikke gyldig for denne perioden. Kontakt team BAKS hvis du mener det er feil.")
498501
}
499502
}
500503

@@ -528,4 +531,4 @@ fun ISanityBegrunnelse.erAvslagUregistrerteBarnBegrunnelse() =
528531

529532
class BrevBegrunnelseFeil(
530533
melding: String,
531-
) : IllegalStateException(melding)
534+
) : FunksjonellFeil(melding)

src/main/kotlin/no/nav/familie/ba/sak/kjerne/vedtak/vedtaksperiode/VedtaksperiodeMedBegrunnelserController.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ class VedtaksperiodeMedBegrunnelserController(
163163
"på periode ${vedtaksperiode.fom} - ${vedtaksperiode.tom}. " +
164164
"\nAutogenerert test:\n" + testVerktøyService.hentBegrunnelsetest(behandlingId),
165165
)
166-
throw IllegalStateException(e.message, e)
166+
throw e
167167
}
168168

169169
val begrunnelser =

src/test/enhetstester/kotlin/no/nav/familie/ba/sak/kjerne/brev/BrevmalServiceTest.kt

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ package no.nav.familie.ba.sak.kjerne.brev
22

33
import io.mockk.every
44
import io.mockk.mockk
5-
import no.nav.familie.ba.sak.common.Feil
5+
import no.nav.familie.ba.sak.common.FunksjonellFeil
66
import no.nav.familie.ba.sak.datagenerator.lagAndelTilkjentYtelse
77
import no.nav.familie.ba.sak.datagenerator.lagBehandling
88
import no.nav.familie.ba.sak.kjerne.behandling.domene.Behandling
@@ -42,7 +42,7 @@ internal class BrevmalServiceTest {
4242
val behandling =
4343
lagBehandling(årsak = BehandlingÅrsak.KORREKSJON_VEDTAKSBREV, resultat = Behandlingsresultat.IKKE_VURDERT)
4444

45-
assertThrows<Feil> {
45+
assertThrows<FunksjonellFeil> {
4646
brevmalService.hentVedtaksbrevmal(behandling)
4747
}
4848
}

src/test/enhetstester/kotlin/no/nav/familie/ba/sak/kjerne/brev/DokumentServiceTest.kt

+3-4
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ import io.mockk.slot
77
import io.mockk.spyk
88
import io.mockk.unmockkObject
99
import io.mockk.verify
10-
import no.nav.familie.ba.sak.common.Feil
1110
import no.nav.familie.ba.sak.common.FunksjonellFeil
1211
import no.nav.familie.ba.sak.config.BehandlerRolle
1312
import no.nav.familie.ba.sak.config.TaskRepositoryWrapper
@@ -479,7 +478,7 @@ internal class DokumentServiceTest {
479478
val feilmelding =
480479
assertThrows<FunksjonellFeil> {
481480
dokumentService.hentBrevForVedtak(vedtakUtenStønadBrev)
482-
}.melding
481+
}.frontendFeilmelding
483482

484483
assertThat(feilmelding).isEqualTo("Det finnes ikke noe vedtaksbrev.")
485484
}
@@ -494,11 +493,11 @@ internal class DokumentServiceTest {
494493

495494
// Act && Assert
496495
val feilmelding =
497-
assertThrows<Feil> {
496+
assertThrows<FunksjonellFeil> {
498497
dokumentService.hentBrevForVedtak(vedtakUtenStønadBrev)
499498
}.message
500499

501-
assertThat(feilmelding).isEqualTo("Klarte ikke finne vedtaksbrev for vedtak med id ${vedtakUtenStønadBrev.id}")
500+
assertThat(feilmelding).isEqualTo("Klarte ikke finne vedtaksbrev for vedtak med id ${vedtakUtenStønadBrev.id}. Innlogget bruker har rolle: $rolle")
502501
}
503502

504503
@Test

0 commit comments

Comments
 (0)