Skip to content

Commit

Permalink
DIGDIR: Legger til nytt POST endepunkt for å hente ut språk (#1603)
Browse files Browse the repository at this point in the history
  • Loading branch information
espenwaaga authored Mar 3, 2025
1 parent da2eb77 commit 7da823a
Show file tree
Hide file tree
Showing 4 changed files with 84 additions and 18 deletions.
Original file line number Diff line number Diff line change
@@ -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 {
Expand All @@ -29,6 +33,7 @@ public DigdirKrrProxyMock() {
scenarioRepository = TestscenarioRepositoryImpl.getInstance(BasisdataProviderFileImpl.getInstance());
}

@Deprecated(forRemoval = true)
@GET
@Path("/rest/v1/person")
@Produces(MediaType.APPLICATION_JSON)
Expand All @@ -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<String, Kontaktinformasjoner.Kontaktinformasjon>();
var feilMap = new HashMap<String, Kontaktinformasjoner.FeilKode>();
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);

Expand All @@ -60,4 +84,7 @@ public Response hentKontaktinformasjon(@HeaderParam(HEADER_NAV_PERSONIDENT) @Not
return null;
}
}

public record Personidenter(List<@NotNull String> personidenter) {
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import com.fasterxml.jackson.annotation.JsonProperty;

@Deprecated
public class Kontaktinformasjon {
@JsonProperty("epostadresse")
private String epostadresse = "[email protected]";
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
package no.nav.digdir;

import java.util.Map;

public record Kontaktinformasjoner(Map<String, Kontaktinformasjon> personer, Map<String, FeilKode> feil) {

public record Kontaktinformasjon(String epostadresse,
boolean kanVarsles,
String mobiltelefonnummer,
String personident,
boolean reservert,
String spraak) {
public Kontaktinformasjon(String spraak) {
this("[email protected]",
true,
"99999999",
null,
false,
spraak);
}
}

public enum FeilKode {
person_ikke_funnet,
skjermet,
fortrolig_adresse,
strengt_fortrolig_adresse,
strengt_fortrolig_utenlandsk_adresse,
noen_andre
}
}
Original file line number Diff line number Diff line change
@@ -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 {

Expand All @@ -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);

}

}

0 comments on commit 7da823a

Please sign in to comment.