From b1d967af30fc859badc6ce09d589a88eaba5ece5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Skarp=C3=A5s?= Date: Thu, 31 Oct 2024 14:19:35 +0100 Subject: [PATCH] F - Legger til validator for epost, som sjekker om den inneholder underscore --- .../nav/eessi/pensjon/prefill/PrefillService.kt | 10 +++++++++- .../nav/eessi/pensjon/prefill/models/KrrPerson.kt | 15 +++++++++++---- .../eessi/pensjon/shared/api/PrefillDataModel.kt | 2 +- .../sed/krav/PrefillP2000_AP_21975717Test.kt | 14 ++++++++++++++ 4 files changed, 35 insertions(+), 6 deletions(-) diff --git a/src/main/kotlin/no/nav/eessi/pensjon/prefill/PrefillService.kt b/src/main/kotlin/no/nav/eessi/pensjon/prefill/PrefillService.kt index 3e662bc7..8e34e1ad 100644 --- a/src/main/kotlin/no/nav/eessi/pensjon/prefill/PrefillService.kt +++ b/src/main/kotlin/no/nav/eessi/pensjon/prefill/PrefillService.kt @@ -3,6 +3,8 @@ package no.nav.eessi.pensjon.prefill import io.micrometer.core.instrument.Metrics import no.nav.eessi.pensjon.eux.model.sed.SED.Companion.setSEDVersion import no.nav.eessi.pensjon.metrics.MetricsHelper +import no.nav.eessi.pensjon.prefill.models.KrrPerson +import no.nav.eessi.pensjon.prefill.models.KrrPerson.Companion.validateEmail import no.nav.eessi.pensjon.prefill.sed.PrefillSEDService import no.nav.eessi.pensjon.shared.api.ApiRequest import no.nav.eessi.pensjon.shared.api.PersonInfo @@ -39,7 +41,13 @@ class PrefillService( try { val norskIdent = innhentingService.hentFnrEllerNpidFraAktoerService(request.aktoerId)!! - val krrPerson = krrService.hentPersonFraKrr(norskIdent) + val krrPerson = krrService.hentPersonFraKrr(norskIdent).also { personResponse -> + KrrPerson( + reservert = personResponse.reservert, + epostadresse = personResponse.epostadresse.validateEmail(), + mobiltelefonnummer = personResponse.mobiltelefonnummer + ) + } val personInfo = if (krrPerson.reservert == true) { PersonInfo(norskIdent, request.aktoerId).also { logger.info("Personen har reservert seg mot digital kommunikasjon")} diff --git a/src/main/kotlin/no/nav/eessi/pensjon/prefill/models/KrrPerson.kt b/src/main/kotlin/no/nav/eessi/pensjon/prefill/models/KrrPerson.kt index e7859116..12a52a51 100644 --- a/src/main/kotlin/no/nav/eessi/pensjon/prefill/models/KrrPerson.kt +++ b/src/main/kotlin/no/nav/eessi/pensjon/prefill/models/KrrPerson.kt @@ -4,7 +4,14 @@ import com.fasterxml.jackson.annotation.JsonIgnoreProperties @JsonIgnoreProperties(ignoreUnknown = true) data class KrrPerson( - val reservert: Boolean? = true, - val epostadresse: String? = null, - val mobiltelefonnummer: String? = null -) \ No newline at end of file + val reservert: Boolean? = true, + val epostadresse: String? = null, + val mobiltelefonnummer: String? = null +) { + companion object { + fun String?.validateEmail(): String? { + val emailRegex = Regex("""[\w.-]+@[\w.-]+\.[a-zA-Z]{2,15}""") + return if (this != null && emailRegex.matches(this)) this else null + } + } +} \ No newline at end of file diff --git a/src/main/kotlin/no/nav/eessi/pensjon/shared/api/PrefillDataModel.kt b/src/main/kotlin/no/nav/eessi/pensjon/shared/api/PrefillDataModel.kt index 34cf805f..2bb314ad 100644 --- a/src/main/kotlin/no/nav/eessi/pensjon/shared/api/PrefillDataModel.kt +++ b/src/main/kotlin/no/nav/eessi/pensjon/shared/api/PrefillDataModel.kt @@ -11,7 +11,7 @@ import no.nav.eessi.pensjon.utils.mapJsonToAny * * services: pdl, person, pen, maybe joark, eux-basis. */ -class PersonInfo(val norskIdent: String, +data class PersonInfo(val norskIdent: String, val aktorId: String, val reservert: Boolean? = true, val epostKrr: String? = null, diff --git a/src/test/kotlin/no/nav/eessi/pensjon/prefill/sed/krav/PrefillP2000_AP_21975717Test.kt b/src/test/kotlin/no/nav/eessi/pensjon/prefill/sed/krav/PrefillP2000_AP_21975717Test.kt index b06c7988..0235c5ed 100644 --- a/src/test/kotlin/no/nav/eessi/pensjon/prefill/sed/krav/PrefillP2000_AP_21975717Test.kt +++ b/src/test/kotlin/no/nav/eessi/pensjon/prefill/sed/krav/PrefillP2000_AP_21975717Test.kt @@ -11,6 +11,7 @@ import no.nav.eessi.pensjon.prefill.InnhentingService import no.nav.eessi.pensjon.prefill.PersonPDLMock import no.nav.eessi.pensjon.prefill.PersonPDLMock.medFodsel import no.nav.eessi.pensjon.prefill.models.EessiInformasjon +import no.nav.eessi.pensjon.prefill.models.KrrPerson.Companion.validateEmail import no.nav.eessi.pensjon.prefill.models.PensjonCollection import no.nav.eessi.pensjon.prefill.models.PersonDataCollection import no.nav.eessi.pensjon.prefill.models.PrefillDataModelMother.initialPrefillDataModel @@ -91,6 +92,19 @@ class PrefillP2000_AP_21975717Test { assertEquals(prefillData.bruker.epostKrr, p2000.nav?.bruker?.person?.kontakt?.email?.get(0)?.adresse) } + @Test + fun `forventet korrekt utfylt P2000 med telefonummer og uten epost som inkluderer underscore`() { + val edited = prefillData.copy( + bruker = prefillData.bruker.copy( + epostKrr = prefillData.bruker.epostKrr.validateEmail() + ) + ) + val p2000 = prefillSEDService.prefill(edited, persondataCollection, pensjonCollection) + + assertEquals(edited.bruker.telefonKrr, p2000.nav?.bruker?.person?.kontakt?.telefon?.get(0)?.nummer) + assertEquals(edited.bruker.epostKrr, p2000.nav?.bruker?.person?.kontakt?.email?.get(0)?.adresse) + } + @Test fun `forventet korrekt utfylt P2000 alderpersjon med mockdata fra testfiler`() {