Skip to content

Commit

Permalink
Merge pull request #324 from navikt/feature/try-catch-feil-eksterne-kall
Browse files Browse the repository at this point in the history
Try/catch rundt kall til Sigrun
  • Loading branch information
rinnan17 authored Mar 13, 2024
2 parents dd7c4be + 968b2d1 commit 46f77ea
Showing 1 changed file with 72 additions and 62 deletions.
134 changes: 72 additions & 62 deletions src/main/kotlin/no/nav/bidrag/grunnlag/model/OppdaterSkattegrunnlag.kt
Original file line number Diff line number Diff line change
Expand Up @@ -58,85 +58,95 @@ class OppdaterSkattegrunnlag(
LOGGER.info("Kaller Sigrun (skattegrunnlag)")
SECURE_LOGGER.info("Kaller Sigrun (skattegrunnlag) med request: $skattegrunnlagRequest")

when (
val restResponseSkattegrunnlag =
sigrunConsumer.hentSummertSkattegrunnlag(skattegrunnlagRequest)
) {
is RestResponse.Success -> {
var antallSkattegrunnlagsposter = 0
val skattegrunnlagResponse = restResponseSkattegrunnlag.body
SECURE_LOGGER.info("Sigrun (skattegrunnlag) ga følgende respons: $skattegrunnlagResponse")
try {
val restResponseSkattegrunnlag = sigrunConsumer.hentSummertSkattegrunnlag(skattegrunnlagRequest)

val skattegrunnlagsPosterOrdinaer = mutableListOf<Skattegrunnlag>()
val skattegrunnlagsPosterSvalbard = mutableListOf<Skattegrunnlag>()
skattegrunnlagsPosterOrdinaer.addAll(skattegrunnlagResponse.grunnlag!!.toMutableList())
skattegrunnlagsPosterSvalbard.addAll(skattegrunnlagResponse.svalbardGrunnlag!!.toMutableList())
when (restResponseSkattegrunnlag) {
is RestResponse.Success -> {
var antallSkattegrunnlagsposter = 0
val skattegrunnlagResponse = restResponseSkattegrunnlag.body
SECURE_LOGGER.info("Sigrun (skattegrunnlag) ga følgende respons: $skattegrunnlagResponse")

if (skattegrunnlagsPosterOrdinaer.isNotEmpty() || skattegrunnlagsPosterSvalbard.isNotEmpty()) {
val skattegrunnlag = SkattegrunnlagBo(
grunnlagspakkeId = grunnlagspakkeId,
personId = personIdOgPeriode.personId,
periodeFra = LocalDate.parse("$inntektAar-01-01"),
// justerer frem tildato med én dag for å ha lik logikk som resten av appen. Tildato skal angis som til, men ikke inkludert, dato.
periodeTil = LocalDate.parse("$inntektAar-01-01").plusYears(1),
brukFra = timestampOppdatering,
hentetTidspunkt = timestampOppdatering,
)
val skattegrunnlagsposter = mutableListOf<SkattegrunnlagspostBo>()
skattegrunnlagsPosterOrdinaer.forEach { skattegrunnlagsPost ->
antallSkattegrunnlagsposter++
skattegrunnlagsposter.add(
SkattegrunnlagspostBo(
skattegrunnlagType = Skattegrunnlagstype.ORDINÆR.toString(),
inntektType = skattegrunnlagsPost.tekniskNavn,
belop = BigDecimal(skattegrunnlagsPost.beloep),
),
)
}
skattegrunnlagsPosterSvalbard.forEach { skattegrunnlagsPost ->
antallSkattegrunnlagsposter++
skattegrunnlagsposter.add(
SkattegrunnlagspostBo(
skattegrunnlagType = Skattegrunnlagstype.SVALBARD.toString(),
inntektType = skattegrunnlagsPost.tekniskNavn,
belop = BigDecimal(skattegrunnlagsPost.beloep),
),
val skattegrunnlagsPosterOrdinaer = mutableListOf<Skattegrunnlag>()
val skattegrunnlagsPosterSvalbard = mutableListOf<Skattegrunnlag>()
skattegrunnlagsPosterOrdinaer.addAll(skattegrunnlagResponse.grunnlag!!.toMutableList())
skattegrunnlagsPosterSvalbard.addAll(skattegrunnlagResponse.svalbardGrunnlag!!.toMutableList())

if (skattegrunnlagsPosterOrdinaer.isNotEmpty() || skattegrunnlagsPosterSvalbard.isNotEmpty()) {
val skattegrunnlag = SkattegrunnlagBo(
grunnlagspakkeId = grunnlagspakkeId,
personId = personIdOgPeriode.personId,
periodeFra = LocalDate.parse("$inntektAar-01-01"),
// justerer frem tildato med én dag for å ha lik logikk som resten av appen. Tildato skal angis som til, men ikke inkludert, dato.
periodeTil = LocalDate.parse("$inntektAar-01-01").plusYears(1),
brukFra = timestampOppdatering,
hentetTidspunkt = timestampOppdatering,
)
val skattegrunnlagsposter = mutableListOf<SkattegrunnlagspostBo>()
skattegrunnlagsPosterOrdinaer.forEach { skattegrunnlagsPost ->
antallSkattegrunnlagsposter++
skattegrunnlagsposter.add(
SkattegrunnlagspostBo(
skattegrunnlagType = Skattegrunnlagstype.ORDINÆR.toString(),
inntektType = skattegrunnlagsPost.tekniskNavn,
belop = BigDecimal(skattegrunnlagsPost.beloep),
),
)
}
skattegrunnlagsPosterSvalbard.forEach { skattegrunnlagsPost ->
antallSkattegrunnlagsposter++
skattegrunnlagsposter.add(
SkattegrunnlagspostBo(
skattegrunnlagType = Skattegrunnlagstype.SVALBARD.toString(),
inntektType = skattegrunnlagsPost.tekniskNavn,
belop = BigDecimal(skattegrunnlagsPost.beloep),
),
)
}
nyeSkattegrunnlag.add(PeriodComparable(skattegrunnlag, skattegrunnlagsposter))
}
nyeSkattegrunnlag.add(PeriodComparable(skattegrunnlag, skattegrunnlagsposter))
persistenceService.oppdaterSkattegrunnlagForGrunnlagspakke(
grunnlagspakkeId = grunnlagspakkeId,
newSkattegrunnlagForPersonId = nyeSkattegrunnlag,
periodeFra = periodeFra,
periodeTil = periodeTil,
personIdListe = historiskeIdenterMap[personIdOgPeriode.personId] ?: listOf(personIdOgPeriode.personId),
timestampOppdatering = timestampOppdatering,
)
this.add(
OppdaterGrunnlagDto(
type = GrunnlagRequestType.SKATTEGRUNNLAG,
personId = personIdOgPeriode.personId,
status = GrunnlagRequestStatus.HENTET,
statusMelding = "Antall skattegrunnlagsposter funnet for inntektsåret $inntektAar: $antallSkattegrunnlagsposter",
),
)
}
persistenceService.oppdaterSkattegrunnlagForGrunnlagspakke(
grunnlagspakkeId = grunnlagspakkeId,
newSkattegrunnlagForPersonId = nyeSkattegrunnlag,
periodeFra = periodeFra,
periodeTil = periodeTil,
personIdListe = historiskeIdenterMap[personIdOgPeriode.personId] ?: listOf(personIdOgPeriode.personId),
timestampOppdatering = timestampOppdatering,
)
this.add(

is RestResponse.Failure -> this.add(
OppdaterGrunnlagDto(
type = GrunnlagRequestType.SKATTEGRUNNLAG,
personId = personIdOgPeriode.personId,
status = GrunnlagRequestStatus.HENTET,
statusMelding = "Antall skattegrunnlagsposter funnet for inntektsåret $inntektAar: $antallSkattegrunnlagsposter",
status = if (restResponseSkattegrunnlag.statusCode == HttpStatus.NOT_FOUND) {
GrunnlagRequestStatus.IKKE_FUNNET
} else {
GrunnlagRequestStatus.FEILET
},
statusMelding = "Feil ved henting av skattegrunnlag for inntektsåret $inntektAar.",
),
)
}

is RestResponse.Failure -> this.add(
inntektAar++
} catch (e: Exception) {
this.add(
OppdaterGrunnlagDto(
type = GrunnlagRequestType.SKATTEGRUNNLAG,
personId = personIdOgPeriode.personId,
status = if (restResponseSkattegrunnlag.statusCode == HttpStatus.NOT_FOUND) {
GrunnlagRequestStatus.IKKE_FUNNET
} else {
GrunnlagRequestStatus.FEILET
},
statusMelding = "Feil ved henting av skattegrunnlag for inntektsåret $inntektAar.",
status = GrunnlagRequestStatus.FEILET,
statusMelding = "Feil ved henting av skattegrunnlag for inntektsåret $inntektAar. Exception: ${e.message}",
),
)
}
inntektAar++
}
}
return this
Expand Down

0 comments on commit 46f77ea

Please sign in to comment.