From 7da823a5029434dadf682ea09d62e17fb1df0d92 Mon Sep 17 00:00:00 2001 From: Espen Waaga <36693523+espenwaaga@users.noreply.github.com> Date: Mon, 3 Mar 2025 12:34:34 +0100 Subject: [PATCH] =?UTF-8?q?DIGDIR:=20Legger=20til=20nytt=20POST=20endepunk?= =?UTF-8?q?t=20for=20=C3=A5=20hente=20ut=20spr=C3=A5k=20(#1603)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../no/nav/digdir/DigdirKrrProxyMock.java | 39 ++++++++++++++++--- .../no/nav/digdir/Kontaktinformasjon.java | 1 + .../no/nav/digdir/Kontaktinformasjoner.java | 31 +++++++++++++++ .../no/nav/digdir/DigdirKrrProxyMockTest.java | 31 +++++++++------ 4 files changed, 84 insertions(+), 18 deletions(-) create mode 100644 mocks/digdir-mock/src/main/java/no/nav/digdir/Kontaktinformasjoner.java diff --git a/mocks/digdir-mock/src/main/java/no/nav/digdir/DigdirKrrProxyMock.java b/mocks/digdir-mock/src/main/java/no/nav/digdir/DigdirKrrProxyMock.java index 731f5833b..c51f4afae 100644 --- a/mocks/digdir-mock/src/main/java/no/nav/digdir/DigdirKrrProxyMock.java +++ b/mocks/digdir-mock/src/main/java/no/nav/digdir/DigdirKrrProxyMock.java @@ -1,22 +1,26 @@ package no.nav.digdir; -import static jakarta.ws.rs.core.HttpHeaders.AUTHORIZATION; - +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.validation.Valid; import jakarta.validation.constraints.NotNull; import jakarta.ws.rs.Consumes; import jakarta.ws.rs.GET; import jakarta.ws.rs.HeaderParam; +import jakarta.ws.rs.POST; import jakarta.ws.rs.Path; import jakarta.ws.rs.Produces; import jakarta.ws.rs.core.MediaType; import jakarta.ws.rs.core.Response; - -import io.swagger.v3.oas.annotations.Operation; -import io.swagger.v3.oas.annotations.tags.Tag; import no.nav.foreldrepenger.vtp.testmodell.repo.TestscenarioBuilderRepository; import no.nav.foreldrepenger.vtp.testmodell.repo.impl.BasisdataProviderFileImpl; import no.nav.foreldrepenger.vtp.testmodell.repo.impl.TestscenarioRepositoryImpl; +import java.util.HashMap; +import java.util.List; + +import static jakarta.ws.rs.core.HttpHeaders.AUTHORIZATION; + @Tag(name = "digdir-krr-proxy") @Path("/digdir") public class DigdirKrrProxyMock { @@ -29,6 +33,7 @@ public DigdirKrrProxyMock() { scenarioRepository = TestscenarioRepositoryImpl.getInstance(BasisdataProviderFileImpl.getInstance()); } + @Deprecated(forRemoval = true) @GET @Path("/rest/v1/person") @Produces(MediaType.APPLICATION_JSON) @@ -45,7 +50,26 @@ public Response hentKontaktinformasjon(@HeaderParam(HEADER_NAV_PERSONIDENT) @Not return Response.ok(kontaktinformasjon).build(); } - public String hentUtForetrukketSpråkFraBruker(String fnr) { + @POST + @Path("/rest/v1/personer") + @Produces(MediaType.APPLICATION_JSON) + @Consumes(MediaType.APPLICATION_JSON) + @Operation(description = "Henter kontaktinformasjon for person") + public Response hentKontaktinformasjon(@Valid @NotNull Personidenter personidenter) { + var kontatkinformasjonerMap = new HashMap(); + var feilMap = new HashMap(); + for (var personident : personidenter.personidenter()) { + var spraak = hentUtForetrukketSpråkFraBruker(personident); + if (spraak != null) { + kontatkinformasjonerMap.put(personident, new Kontaktinformasjoner.Kontaktinformasjon(spraak)); + } else { + feilMap.put(personident, Kontaktinformasjoner.FeilKode.person_ikke_funnet); + } + } + return Response.ok(new Kontaktinformasjoner(kontatkinformasjonerMap, feilMap)).build(); + } + + private String hentUtForetrukketSpråkFraBruker(String fnr) { var personIndeks = scenarioRepository.getPersonIndeks(); var personopplysninger = personIndeks.finnPersonopplysningerByIdent(fnr); @@ -60,4 +84,7 @@ public Response hentKontaktinformasjon(@HeaderParam(HEADER_NAV_PERSONIDENT) @Not return null; } } + + public record Personidenter(List<@NotNull String> personidenter) { + } } diff --git a/mocks/digdir-mock/src/main/java/no/nav/digdir/Kontaktinformasjon.java b/mocks/digdir-mock/src/main/java/no/nav/digdir/Kontaktinformasjon.java index 3c06c7bee..4e72d7b0d 100644 --- a/mocks/digdir-mock/src/main/java/no/nav/digdir/Kontaktinformasjon.java +++ b/mocks/digdir-mock/src/main/java/no/nav/digdir/Kontaktinformasjon.java @@ -2,6 +2,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; +@Deprecated public class Kontaktinformasjon { @JsonProperty("epostadresse") private String epostadresse = "noreply@nav.no"; diff --git a/mocks/digdir-mock/src/main/java/no/nav/digdir/Kontaktinformasjoner.java b/mocks/digdir-mock/src/main/java/no/nav/digdir/Kontaktinformasjoner.java new file mode 100644 index 000000000..96c7a1dfc --- /dev/null +++ b/mocks/digdir-mock/src/main/java/no/nav/digdir/Kontaktinformasjoner.java @@ -0,0 +1,31 @@ +package no.nav.digdir; + +import java.util.Map; + +public record Kontaktinformasjoner(Map personer, Map feil) { + + public record Kontaktinformasjon(String epostadresse, + boolean kanVarsles, + String mobiltelefonnummer, + String personident, + boolean reservert, + String spraak) { + public Kontaktinformasjon(String spraak) { + this("noreply@nav.no", + true, + "99999999", + null, + false, + spraak); + } + } + + public enum FeilKode { + person_ikke_funnet, + skjermet, + fortrolig_adresse, + strengt_fortrolig_adresse, + strengt_fortrolig_utenlandsk_adresse, + noen_andre + } +} diff --git a/mocks/digdir-mock/src/test/java/no/nav/digdir/DigdirKrrProxyMockTest.java b/mocks/digdir-mock/src/test/java/no/nav/digdir/DigdirKrrProxyMockTest.java index 6c5bdcd6f..19a32386b 100644 --- a/mocks/digdir-mock/src/test/java/no/nav/digdir/DigdirKrrProxyMockTest.java +++ b/mocks/digdir-mock/src/test/java/no/nav/digdir/DigdirKrrProxyMockTest.java @@ -1,17 +1,17 @@ package no.nav.digdir; -import static org.assertj.core.api.Assertions.assertThat; - -import java.util.Collections; - -import org.junit.jupiter.api.BeforeAll; -import org.junit.jupiter.api.Test; - import no.nav.foreldrepenger.vtp.testmodell.TestscenarioHenter; import no.nav.foreldrepenger.vtp.testmodell.personopplysning.SøkerModell; import no.nav.foreldrepenger.vtp.testmodell.repo.impl.BasisdataProviderFileImpl; import no.nav.foreldrepenger.vtp.testmodell.repo.impl.DelegatingTestscenarioRepository; import no.nav.foreldrepenger.vtp.testmodell.repo.impl.TestscenarioRepositoryImpl; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; + +import java.util.Collections; +import java.util.List; + +import static org.assertj.core.api.Assertions.assertThat; public class DigdirKrrProxyMockTest { @@ -33,18 +33,25 @@ public static void setup() { @Test void hentSpråkFraDigdirKrrProxy() { - var response = digdirKrrProxyMock.hentKontaktinformasjon(søker.getIdent(), null); - var kontaktinformasjon = (Kontaktinformasjon) response.getEntity(); + var response = digdirKrrProxyMock.hentKontaktinformasjon(new DigdirKrrProxyMock.Personidenter(List.of(søker.getIdent()))); + var kontaktinformasjon = (Kontaktinformasjoner) response.getEntity(); assertThat(kontaktinformasjon).isNotNull(); - assertThat(kontaktinformasjon.getSpraak()).isEqualTo("NB"); + assertThat(kontaktinformasjon.personer()).hasSize(1); + assertThat(kontaktinformasjon.personer().get(søker.getIdent()).spraak()).isEqualTo("NB"); } @Test void hentSpråkFraDigdirKrrProxyNårPersonIkkeFinnesKaster404() { - var response = digdirKrrProxyMock.hentKontaktinformasjon("11111122222", null); - assertThat(response.getStatus()).isEqualTo(404); + var identSomIkkeFinnes = "11111122222"; + var response = digdirKrrProxyMock.hentKontaktinformasjon(new DigdirKrrProxyMock.Personidenter(List.of(identSomIkkeFinnes))); + var kontaktinformasjon = (Kontaktinformasjoner) response.getEntity(); + + assertThat(kontaktinformasjon.personer()).isEmpty(); + assertThat(kontaktinformasjon.feil()).hasSize(1); + assertThat(kontaktinformasjon.feil().get(identSomIkkeFinnes)).isEqualTo(Kontaktinformasjoner.FeilKode.person_ikke_funnet); + } }