diff --git a/src/main/kotlin/no/nav/tjenestepensjon/simulering/rest/SimuleringEndpoint.kt b/src/main/kotlin/no/nav/tjenestepensjon/simulering/rest/SimuleringEndpoint.kt index d38fd4b0..4112eafd 100644 --- a/src/main/kotlin/no/nav/tjenestepensjon/simulering/rest/SimuleringEndpoint.kt +++ b/src/main/kotlin/no/nav/tjenestepensjon/simulering/rest/SimuleringEndpoint.kt @@ -29,6 +29,9 @@ import no.nav.tjenestepensjon.simulering.v1.service.StillingsprosentService import no.nav.tjenestepensjon.simulering.v2.exceptions.ConnectToIdPortenException import no.nav.tjenestepensjon.simulering.v2.exceptions.ConnectToMaskinPortenException import no.nav.tjenestepensjon.simulering.v2.models.DtoToV2DomainMapper.toSimulerPensjonRequestV2 +import no.nav.tjenestepensjon.simulering.v2.models.response.SimulerOffentligTjenestepensjonResponse +import no.nav.tjenestepensjon.simulering.v2.models.response.SimulerOffentligTjenestepensjonResponse.Companion.ikkeMedlem +import no.nav.tjenestepensjon.simulering.v2.models.response.SimulerOffentligTjenestepensjonResponse.Companion.tpOrdningStoettesIkke import no.nav.tjenestepensjon.simulering.v2.service.SimuleringServiceV2 import org.springframework.beans.factory.annotation.Qualifier import org.springframework.http.HttpStatus @@ -101,7 +104,7 @@ class SimuleringEndpoint( } } catch (e: NoTpOrdningerFoundException) { log.debug { """Request with nav-call-id ${getHeaderFromRequestContext(NAV_CALL_ID)}. No TP-forhold found for person.""" } - ResponseEntity.notFound().build() + ResponseEntity.ok(SimulerOffentligTjenestepensjonResponse.ikkeMedlem()) } catch (e: JsonParseException) { log.warn { """Request with nav-call-id ${getHeaderFromRequestContext(NAV_CALL_ID)}. Unable to parse body to request.""" } ResponseEntity.badRequest().build() @@ -111,7 +114,7 @@ class SimuleringEndpoint( } catch (e: LeveradoerNotFoundException) { metrics.incrementCounter(APP_TOTAL_SIMULERING_TP_ORDNING_STOTTES_IKKE) log.warn { """Request with nav-call-id ${getHeaderFromRequestContext(NAV_CALL_ID)}. No supported TP-Ordning found.""" } - ResponseEntity.notFound().build() + ResponseEntity.ok(SimulerOffentligTjenestepensjonResponse.tpOrdningStoettesIkke()) } catch (e: BrukerKvalifisererIkkeTilTjenestepensjonException) { metrics.incrementCounter(APP_TOTAL_SIMULERING_BRUKER_KVALIFISERER_IKKE) log.warn { """Request with nav-call-id ${getHeaderFromRequestContext(NAV_CALL_ID)}. Bruker kvalifiserer ikke til tjenestepensjon. ${e.message}""" } diff --git a/src/main/kotlin/no/nav/tjenestepensjon/simulering/v2/models/response/SimulerOffentligTjenestepensjonResponse.kt b/src/main/kotlin/no/nav/tjenestepensjon/simulering/v2/models/response/SimulerOffentligTjenestepensjonResponse.kt index 6a1e97c1..c370cbfc 100644 --- a/src/main/kotlin/no/nav/tjenestepensjon/simulering/v2/models/response/SimulerOffentligTjenestepensjonResponse.kt +++ b/src/main/kotlin/no/nav/tjenestepensjon/simulering/v2/models/response/SimulerOffentligTjenestepensjonResponse.kt @@ -4,9 +4,17 @@ import no.nav.tjenestepensjon.simulering.v1.models.response.AbstractSimulerOffen import no.nav.tjenestepensjon.simulering.v2.models.domain.Utbetalingsperiode data class SimulerOffentligTjenestepensjonResponse( - val tpnr: String, - val navnOrdning: String, - val inkluderteOrdningerListe: List = emptyList(), - val leverandorUrl: String? = null, - val utbetalingsperiodeListe: List = emptyList() -) : AbstractSimulerOffentligTjenestepensjonResponse() \ No newline at end of file + val tpnr: String, + val navnOrdning: String, + val inkluderteOrdningerListe: List = emptyList(), + val leverandorUrl: String? = null, + val utbetalingsperiodeListe: List = emptyList(), + var brukerErIkkeMedlemAvTPOrdning: Boolean = false, + var brukerErMedlemAvTPOrdningSomIkkeStoettes: Boolean = false, +) : AbstractSimulerOffentligTjenestepensjonResponse() { + + companion object { + fun Companion.ikkeMedlem() = SimulerOffentligTjenestepensjonResponse("", "", emptyList(), brukerErIkkeMedlemAvTPOrdning = true) + fun Companion.tpOrdningStoettesIkke() = SimulerOffentligTjenestepensjonResponse("", "", emptyList(), brukerErMedlemAvTPOrdningSomIkkeStoettes = true) + } +} \ No newline at end of file diff --git a/src/test/kotlin/no/nav/tjenestepensjon/simulering/v2/models/DefaultObjects.kt b/src/test/kotlin/no/nav/tjenestepensjon/simulering/v2/models/DefaultObjects.kt index 6ddaa006..ba4f4f8c 100644 --- a/src/test/kotlin/no/nav/tjenestepensjon/simulering/v2/models/DefaultObjects.kt +++ b/src/test/kotlin/no/nav/tjenestepensjon/simulering/v2/models/DefaultObjects.kt @@ -24,7 +24,9 @@ val defaultSimulerOffentligTjenestepensjonResponse navnOrdning = "bogus", inkluderteOrdningerListe = listOf("bogus"), leverandorUrl = "bogus", - utbetalingsperiodeListe = defaultUtbetalingsperiodeListe + utbetalingsperiodeListe = defaultUtbetalingsperiodeListe, + brukerErIkkeMedlemAvTPOrdning = false, + brukerErMedlemAvTPOrdningSomIkkeStoettes = false, ) val defaultOpptjeningsperiode @@ -99,7 +101,7 @@ val defaultOpptjeningsperiodeListe get() = listOf(defaultOpptjeningsperiode) const val defaultSimulerOffentligTjenestepensjonResponseJson = - """{"tpnr":"$defaultTpid","navnOrdning":"bogus","inkluderteOrdningerListe":["bogus"],"leverandorUrl":"bogus","utbetalingsperiodeListe":[{"uttaksgrad":0,"arligUtbetaling":0.0,"datoFom":"$defaultFomDateString","datoTom":"$defaultTomDateString","ytelsekode":"bogus"},null]}""" + """{"tpnr":"$defaultTpid","navnOrdning":"bogus","inkluderteOrdningerListe":["bogus"],"leverandorUrl":"bogus","utbetalingsperiodeListe":[{"uttaksgrad":0,"arligUtbetaling":0.0,"datoFom":"$defaultFomDateString","datoTom":"$defaultTomDateString","ytelsekode":"bogus"},null],"brukerErIkkeMedlemAvTPOrdning":false,"brukerErMedlemAvTPOrdningSomIkkeStoettes":false}""" const val defaultOppjeningsperiodeJson = """{"datoFom":"$defaultFomDateString","datoTom":"$defaultTomDateString","stillingsprosent":0.0,"aldersgrense":0,"faktiskHovedlonn":0,"stillingsuavhengigTilleggslonn":0}"""