From 9b048701415ac0df986ef5e5093da8f7e9e68b63 Mon Sep 17 00:00:00 2001 From: Jan Kroken Date: Thu, 21 Nov 2024 14:02:45 +0100 Subject: [PATCH] =?UTF-8?q?litt=20mer=20endring=20p=C3=A5=20feilh=C3=A5ndt?= =?UTF-8?q?ering?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../barnetrygd/domain/BarnetrygdException.kt | 2 ++ .../domain/KompletteringsService.kt | 35 +++++++++++++------ .../HentBarnetrygdResponseHandler.kt | 7 ++++ 3 files changed, 34 insertions(+), 10 deletions(-) diff --git a/src/main/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/start/innlesning/barnetrygd/domain/BarnetrygdException.kt b/src/main/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/start/innlesning/barnetrygd/domain/BarnetrygdException.kt index da55769..6437c0c 100644 --- a/src/main/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/start/innlesning/barnetrygd/domain/BarnetrygdException.kt +++ b/src/main/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/start/innlesning/barnetrygd/domain/BarnetrygdException.kt @@ -1,6 +1,7 @@ package no.nav.pensjon.opptjening.omsorgsopptjening.start.innlesning.barnetrygd.domain import no.nav.pensjon.opptjening.omsorgsopptjening.felles.domene.kafka.Rådata +import no.nav.pensjon.opptjening.omsorgsopptjening.felles.domene.kafka.RådataFraKilde import no.nav.pensjon.opptjening.omsorgsopptjening.felles.domene.kafka.messages.domene.IdentRolle import no.nav.pensjon.opptjening.omsorgsopptjening.felles.domene.periode.Periode @@ -15,6 +16,7 @@ sealed class BarnetrygdException(msg: String, cause: Throwable) : RuntimeExcepti class OverlappendePerioder( msg: String, cause: Throwable, + val rådata: Rådata? = null, val perioder: List, ) : BarnetrygdException(msg, cause) diff --git a/src/main/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/start/innlesning/barnetrygd/domain/KompletteringsService.kt b/src/main/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/start/innlesning/barnetrygd/domain/KompletteringsService.kt index f750f99..3cb2fe7 100644 --- a/src/main/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/start/innlesning/barnetrygd/domain/KompletteringsService.kt +++ b/src/main/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/start/innlesning/barnetrygd/domain/KompletteringsService.kt @@ -54,6 +54,17 @@ class KompletteringsService( komplettering.withPersongrunnlag( hentBarnetrygd(komplettering.barnetrygdmottaker, gyldigÅrsIntervall) ) + } catch (e: BarnetrygdException.OverlappendePerioder) { + secureLog.warn("Feil ved henting av barnetrygd", e) + komplettering + .withLøseRådata(e.rådata) + .withFeilinformasjon( + Feilinformasjon.FeilIDataGrunnlag( + message = "Feil i datagrunnlag: ${e.message}", + exceptionType = e::class.java.canonicalName, + exceptionMessage = e.message ?: "", + ) + ) } catch (e: BarnetrygdException.FeilIGrunnlagsdata) { secureLog.warn("Feil ved henting av barnetrygd", e) komplettering @@ -83,7 +94,10 @@ class KompletteringsService( ) ) } catch (e: BarnetrygdException.OverlappendePerioder) { - secureLog.warn("Feil ved oppdatering av fødselsnummer etter henting av barnetrygdgrunnlag", e) + secureLog.warn( + "Feil ved oppdatering av fødselsnummer etter henting av barnetrygdgrunnlag. Overlappende perioder: ${e.perioder}", + e + ) komplettering.withFeilinformasjon( Feilinformasjon.OverlappendeBarnetrygdperioder( message = e.message ?: "", @@ -99,7 +113,10 @@ class KompletteringsService( komplettering.persongrunnlag!!.komprimer() ) } catch (e: BarnetrygdException.OverlappendePerioder) { - secureLog.warn("Feil ved komprimering av persongrunnlag etter henting av barnetrygdgrunnlag", e) + secureLog.warn( + "Feil ved komprimering av persongrunnlag etter henting av barnetrygdgrunnlag. Overlappende perioder: ${e.perioder}", + e + ) komplettering.withFeilinformasjon( Feilinformasjon.OverlappendeBarnetrygdperioder( message = e.message ?: "", @@ -401,14 +418,12 @@ class KompletteringsService( return copy(feilinformasjon = feilinformasjon) } - fun withLøseRådata(rådata: RådataFraKilde): Komplettering { - return copy(løseRådata = løseRådata + rådata) - - } - - fun withLøseRådata(rådata: List): Komplettering { - return copy(løseRådata = løseRådata + rådata) - + fun withLøseRådata(rådata: List?): Komplettering { + return if (rådata == null) { + this + } else { + return copy(løseRådata = løseRådata + rådata) + } } } } \ No newline at end of file diff --git a/src/main/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/start/innlesning/barnetrygd/external/barnetrygd/HentBarnetrygdResponseHandler.kt b/src/main/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/start/innlesning/barnetrygd/external/barnetrygd/HentBarnetrygdResponseHandler.kt index 26e115d..f534315 100644 --- a/src/main/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/start/innlesning/barnetrygd/external/barnetrygd/HentBarnetrygdResponseHandler.kt +++ b/src/main/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/start/innlesning/barnetrygd/external/barnetrygd/HentBarnetrygdResponseHandler.kt @@ -49,6 +49,13 @@ object HentBarnetrygdResponseHandler { barnetrygdsaker = HentBarnetrygdDomainMapper.map(wrapper.fagsaker, filter), rådataFraKilde = rådata ) + } catch (e: UgyldigPersongrunnlag.OverlappendeOmsorgsperiode) { + throw BarnetrygdException.OverlappendePerioder( + msg = "Feil ved deserialisering av barnetrygdsaker", + cause = e, + perioder = e.perioder, + rådata = Rådata(listOf(rådata)) + ) } catch (e: UgyldigPersongrunnlag) { throw BarnetrygdException.FeilIGrunnlagsdata( msg = "Feil ved deserialisering av barnetrygdsaker",