Skip to content

Commit

Permalink
Merge pull request #331 from navikt/feature/try-catch-alle-kall
Browse files Browse the repository at this point in the history
Lagt til try/cath på resterende eksterne kall
  • Loading branch information
rinnan17 authored Apr 10, 2024
2 parents c4da7ba + dc56d9d commit 4aa1325
Show file tree
Hide file tree
Showing 11 changed files with 497 additions and 371 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ data class HentInntektListeResponseIntern(
val httpStatus: HttpStatusCode,
val melding: String,
val arbeidsInntektMaanedIntern: List<ArbeidsInntektMaanedIntern>?,
val exceptionKastet: Boolean,
)

data class ArbeidsInntektMaanedIntern(
Expand Down
12 changes: 12 additions & 0 deletions src/main/kotlin/no/nav/bidrag/grunnlag/model/OppdaterAinntekt.kt
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,18 @@ class OppdaterAinntekt(
val hentInntektListeResponseIntern = inntektskomponentenService.hentInntekt(hentInntektListeRequest)
SECURE_LOGGER.info("Inntektskomponenten ga følgende respons: $hentInntektListeResponseIntern")

if (hentInntektListeResponseIntern.exceptionKastet) {
this.add(
OppdaterGrunnlagDto(
type = GrunnlagRequestType.AINNTEKT,
personId = hentInntektListeRequest.ident.identifikator,
status = GrunnlagRequestStatus.FEILET,
statusMelding = "Feil ved henting av inntekter for periode ${hentInntektListeRequest.maanedFom} - " +
"${hentInntektListeRequest.maanedTom}.",
),
)
}

if (hentInntektListeResponseIntern.httpStatus.is2xxSuccessful) {
var antallPerioderFunnet = 0

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,61 +44,72 @@ class OppdaterBarnetillegg(
LOGGER.info("Kaller barnetillegg pensjon")
SECURE_LOGGER.info("Kaller barnetillegg pensjon med request: $hentBarnetilleggPensjonRequest")

when (
val restResponseBarnetilleggPensjon =
pensjonConsumer.hentBarnetilleggPensjon(hentBarnetilleggPensjonRequest)
) {
is RestResponse.Success -> {
val barnetilleggPensjonResponse = restResponseBarnetilleggPensjon.body
try {
when (
val restResponseBarnetilleggPensjon =
pensjonConsumer.hentBarnetilleggPensjon(hentBarnetilleggPensjonRequest)
) {
is RestResponse.Success -> {
val barnetilleggPensjonResponse = restResponseBarnetilleggPensjon.body

SECURE_LOGGER.info("Barnetillegg pensjon ga følgende respons: $barnetilleggPensjonResponse")
SECURE_LOGGER.info("Barnetillegg pensjon ga følgende respons: $barnetilleggPensjonResponse")

persistenceService.oppdaterEksisterendeBarnetilleggPensjonTilInaktiv(
grunnlagspakkeId = grunnlagspakkeId,
personIdListe = historiskeIdenterMap[personIdOgPeriode.personId] ?: listOf(personIdOgPeriode.personId),
timestampOppdatering = timestampOppdatering,
)
barnetilleggPensjonResponse.forEach { bt ->
antallPerioderFunnet++
persistenceService.opprettBarnetillegg(
BarnetilleggBo(
grunnlagspakkeId = grunnlagspakkeId,
partPersonId = personIdOgPeriode.personId,
barnPersonId = bt.barn,
barnetilleggType = Barnetilleggstype.PENSJON.toString(),
periodeFra = bt.fom,
// justerer frem tildato med én dag for å ha lik logikk som resten av appen. Tildato skal angis som til, men ikke inkludert, dato.
periodeTil = bt.tom.plusMonths(1)?.withDayOfMonth(1),
aktiv = true,
brukFra = timestampOppdatering,
brukTil = null,
belopBrutto = bt.beloep,
barnType = if (bt.erFellesbarn) BarnType.FELLES.toString() else BarnType.SÆRKULL.toString(),
hentetTidspunkt = timestampOppdatering,
persistenceService.oppdaterEksisterendeBarnetilleggPensjonTilInaktiv(
grunnlagspakkeId = grunnlagspakkeId,
personIdListe = historiskeIdenterMap[personIdOgPeriode.personId] ?: listOf(personIdOgPeriode.personId),
timestampOppdatering = timestampOppdatering,
)
barnetilleggPensjonResponse.forEach { bt ->
antallPerioderFunnet++
persistenceService.opprettBarnetillegg(
BarnetilleggBo(
grunnlagspakkeId = grunnlagspakkeId,
partPersonId = personIdOgPeriode.personId,
barnPersonId = bt.barn,
barnetilleggType = Barnetilleggstype.PENSJON.toString(),
periodeFra = bt.fom,
// justerer frem tildato med én dag for å ha lik logikk som resten av appen. Tildato skal angis som til, men ikke inkludert, dato.
periodeTil = bt.tom.plusMonths(1)?.withDayOfMonth(1),
aktiv = true,
brukFra = timestampOppdatering,
brukTil = null,
belopBrutto = bt.beloep,
barnType = if (bt.erFellesbarn) BarnType.FELLES.toString() else BarnType.SÆRKULL.toString(),
hentetTidspunkt = timestampOppdatering,
),
)
}
this.add(
OppdaterGrunnlagDto(
GrunnlagRequestType.BARNETILLEGG,
personIdOgPeriode.personId,
GrunnlagRequestStatus.HENTET,
"Antall perioder funnet: $antallPerioderFunnet",
),
)
}
this.add(

is RestResponse.Failure -> this.add(
OppdaterGrunnlagDto(
GrunnlagRequestType.BARNETILLEGG,
personIdOgPeriode.personId,
GrunnlagRequestStatus.HENTET,
"Antall perioder funnet: $antallPerioderFunnet",
if (restResponseBarnetilleggPensjon.statusCode == HttpStatus.NOT_FOUND) {
GrunnlagRequestStatus.IKKE_FUNNET
} else {
GrunnlagRequestStatus.FEILET
},
"Feil ved henting av barnetillegg pensjon for perioden: ${personIdOgPeriode.periodeFra} - " +
"${personIdOgPeriode.periodeTil}.",
),
)
}

is RestResponse.Failure -> this.add(
} catch (e: Exception) {
this.add(
OppdaterGrunnlagDto(
GrunnlagRequestType.BARNETILLEGG,
personIdOgPeriode.personId,
if (restResponseBarnetilleggPensjon.statusCode == HttpStatus.NOT_FOUND) {
GrunnlagRequestStatus.IKKE_FUNNET
} else {
GrunnlagRequestStatus.FEILET
},
"Feil ved henting av barnetillegg pensjon for perioden: ${personIdOgPeriode.periodeFra} - " +
"${personIdOgPeriode.periodeTil}.",
type = GrunnlagRequestType.BARNETILLEGG,
personId = personIdOgPeriode.personId,
status = GrunnlagRequestStatus.FEILET,
statusMelding = "Feil ved henting av barnetillegg fra pensjon. Exception: ${e.message}",
),
)
}
Expand Down
97 changes: 54 additions & 43 deletions src/main/kotlin/no/nav/bidrag/grunnlag/model/OppdaterBarnetilsyn.kt
Original file line number Diff line number Diff line change
Expand Up @@ -45,58 +45,69 @@ class OppdaterBarnetilsyn(
LOGGER.info("Henter barnetilsyn for enslig forsørger")
SECURE_LOGGER.info("Kaller barnetilsyn enslig forsørger med request: $barnetilsynRequest")

when (
val restResponseBarnetilsyn =
familieEfSakConsumer.hentBarnetilsyn(barnetilsynRequest)
) {
is RestResponse.Success -> {
val barnetilsynResponse = restResponseBarnetilsyn.body
SECURE_LOGGER.info("Barnetilsyn ga følgende respons: $barnetilsynResponse")

persistenceService.oppdaterEksisterendeBarnetilsynTilInaktiv(
grunnlagspakkeId = grunnlagspakkeId,
personIdListe = historiskeIdenterMap[personIdOgPeriode.personId] ?: listOf(personIdOgPeriode.personId),
timestampOppdatering = timestampOppdatering,
)

barnetilsynResponse.barnetilsynBisysPerioder.forEach { bts ->
antallPerioderFunnet++
for (barnIdent in bts.barnIdenter) {
persistenceService.opprettBarnetilsyn(
BarnetilsynBo(
grunnlagspakkeId = grunnlagspakkeId,
partPersonId = personIdOgPeriode.personId,
barnPersonId = barnIdent,
periodeFra = bts.periode.fom,
// justerer frem tildato med én dag for å ha lik logikk som resten av appen. Tildato skal angis som til, men ikke inkludert, dato.
periodeTil = bts.periode.tom.plusMonths(1).withDayOfMonth(1),
aktiv = true,
brukFra = timestampOppdatering,
brukTil = null,
belop = null,
tilsynstype = null,
skolealder = null,
hentetTidspunkt = timestampOppdatering,
),
)
try {
when (
val restResponseBarnetilsyn =
familieEfSakConsumer.hentBarnetilsyn(barnetilsynRequest)
) {
is RestResponse.Success -> {
val barnetilsynResponse = restResponseBarnetilsyn.body
SECURE_LOGGER.info("Barnetilsyn ga følgende respons: $barnetilsynResponse")

persistenceService.oppdaterEksisterendeBarnetilsynTilInaktiv(
grunnlagspakkeId = grunnlagspakkeId,
personIdListe = historiskeIdenterMap[personIdOgPeriode.personId] ?: listOf(personIdOgPeriode.personId),
timestampOppdatering = timestampOppdatering,
)

barnetilsynResponse.barnetilsynBisysPerioder.forEach { bts ->
antallPerioderFunnet++
for (barnIdent in bts.barnIdenter) {
persistenceService.opprettBarnetilsyn(
BarnetilsynBo(
grunnlagspakkeId = grunnlagspakkeId,
partPersonId = personIdOgPeriode.personId,
barnPersonId = barnIdent,
periodeFra = bts.periode.fom,
// justerer frem tildato med én dag for å ha lik logikk som resten av appen. Tildato skal angis som til, men ikke inkludert, dato.
periodeTil = bts.periode.tom.plusMonths(1).withDayOfMonth(1),
aktiv = true,
brukFra = timestampOppdatering,
brukTil = null,
belop = null,
tilsynstype = null,
skolealder = null,
hentetTidspunkt = timestampOppdatering,
),
)
}
}
this.add(
OppdaterGrunnlagDto(
GrunnlagRequestType.BARNETILSYN,
personIdOgPeriode.personId,
GrunnlagRequestStatus.HENTET,
"Antall perioder funnet: $antallPerioderFunnet",
),
)
}
this.add(

is RestResponse.Failure -> this.add(
OppdaterGrunnlagDto(
GrunnlagRequestType.BARNETILSYN,
personIdOgPeriode.personId,
GrunnlagRequestStatus.HENTET,
"Antall perioder funnet: $antallPerioderFunnet",
GrunnlagRequestStatus.IKKE_FUNNET,
"Feil ved henting av barnetilsyn for perioden: ${personIdOgPeriode.periodeFra} - ${personIdOgPeriode.periodeTil}.",
),
)
}

is RestResponse.Failure -> this.add(
} catch (e: Exception) {
this.add(
OppdaterGrunnlagDto(
GrunnlagRequestType.BARNETILSYN,
personIdOgPeriode.personId,
GrunnlagRequestStatus.IKKE_FUNNET,
"Feil ved henting av barnetilsyn for perioden: ${personIdOgPeriode.periodeFra} - ${personIdOgPeriode.periodeTil}.",
type = GrunnlagRequestType.BARNETILSYN,
personId = personIdOgPeriode.personId,
status = GrunnlagRequestStatus.FEILET,
statusMelding = "Feil ved henting av barnetillegg fra enslig forsørger. Exception: ${e.message}",
),
)
}
Expand Down
Loading

0 comments on commit 4aa1325

Please sign in to comment.