Skip to content

Commit

Permalink
TFP-5967: Utvider kontrakt for å legge til addressebeskyttelse og skj… (
Browse files Browse the repository at this point in the history
#1585)

TFP-5967: Utvider kontrakt for å legge til addressebeskyttelse og skjermet person (+ utvidelse av skjermet person mock)
  • Loading branch information
espenwaaga authored Jan 30, 2025
1 parent 1500b92 commit 8680af5
Show file tree
Hide file tree
Showing 6 changed files with 104 additions and 35 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package no.nav.foreldrepenger.vtp.kontrakter.v2;

public enum Adressebeskyttelse {
FORTROLIG,
STRENGT_FORTROLIG,
// STRENGT_FORTROLIG_UTLAND, Støttes ikke per nå.
UGRADERT
}
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,15 @@ public record PersonDto(UUID id,
List<PersonstatusDto> personstatus,
List<MedlemskapDto> medlemskap,
List<AdresseDto> adresser,
Adressebeskyttelse adressebeskyttelse,
boolean erSkjermet,
InntektYtelseModellDto inntektytelse) {


private PersonDto(Builder b) {
this(b.id, b.rolle, b.fødselsdato, b.dødsdato, b.språk, b.kjønn, b.geografiskTilknytning, b.familierelasjoner,
b.statsborgerskap, b.sivilstand, b.personstatus, b.medlemskap, b.adresser, b.inntektytelse);
b.statsborgerskap, b.sivilstand, b.personstatus, b.medlemskap, b.adresser, b.adressebeskyttelse,
b.erSkjermet, b.inntektytelse);
}

public static Builder builder() {
Expand All @@ -44,6 +47,8 @@ public static class Builder {
private List<PersonstatusDto> personstatus = new ArrayList<>();
private List<MedlemskapDto> medlemskap = new ArrayList<>();
private List<AdresseDto> adresser = new ArrayList<>();
private Adressebeskyttelse adressebeskyttelse;
private boolean erSkjermet;
private InntektYtelseModellDto inntektytelse;


Expand Down Expand Up @@ -103,6 +108,14 @@ public List<AdresseDto> adresser() {
return adresser;
}

public Adressebeskyttelse adressebeskyttelse() {
return adressebeskyttelse;
}

public boolean erSkjermet() {
return erSkjermet;
}

public InntektYtelseModellDto inntektytelse() {
return inntektytelse;
}
Expand Down Expand Up @@ -172,6 +185,16 @@ public Builder adresser(List<AdresseDto> adresser) {
return this;
}

public Builder addressebeskyttelse(Adressebeskyttelse adressebeskyttelse) {
this.adressebeskyttelse = adressebeskyttelse;
return this;
}

public Builder erSkjermet(boolean erSkjermet) {
this.erSkjermet = erSkjermet;
return this;
}

public Builder inntektytelse(InntektYtelseModellDto inntektytelse) {
this.inntektytelse = inntektytelse;
return this;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,17 +1,19 @@
package no.nav.nom;

import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.ws.rs.Consumes;
import jakarta.ws.rs.POST;
import jakarta.ws.rs.Path;
import jakarta.ws.rs.Produces;
import jakarta.ws.rs.core.Context;
import jakarta.ws.rs.core.MediaType;
import no.nav.foreldrepenger.vtp.testmodell.personopplysning.PersonModell;
import no.nav.foreldrepenger.vtp.testmodell.repo.TestscenarioBuilderRepository;

import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

/*
* Tjeneste for å sjekke om person er skjermet.
Expand All @@ -22,26 +24,39 @@
@Path("/api/nom")
public class SkjermetPersonMock {

private final TestscenarioBuilderRepository scenarioRepository;

public SkjermetPersonMock(@Context TestscenarioBuilderRepository scenarioRepository) {
this.scenarioRepository = scenarioRepository;
}

@POST
@Path("/skjermet")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
@Operation(description = "Person skjermet")
public Boolean personErSkjermet(SkjermetRequestDto request) {
return false;
return erPersonSkjermet(request.personident());
}


@POST
@Path("/skjermetBulk")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public Map<String, Boolean> isSkjermetBulk(SkjermetBulkRequestDto request) {
Map<String, Boolean> response = new LinkedHashMap<>();
request.personidenter().forEach(pi -> response.put(pi, false));
request.personidenter().forEach(pi -> response.put(pi, erPersonSkjermet(pi)));
return response;
}

private boolean erPersonSkjermet(String personident) {
var brukerModell = scenarioRepository.getPersonIndeks().finnByIdent(personident);
if (brukerModell instanceof PersonModell personModell) {
return personModell.getErSkjermet();
}
return false;
}

record SkjermetRequestDto(String personident) { }

record SkjermetBulkRequestDto(List<String> personidenter) { }
Expand Down
Original file line number Diff line number Diff line change
@@ -1,21 +1,20 @@
package no.nav.foreldrepenger.vtp.testmodell.personopplysning;

import java.time.LocalDate;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Locale;
import java.util.Optional;

import com.fasterxml.jackson.annotation.JacksonInject;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
import com.fasterxml.jackson.annotation.JsonProperty;

import no.nav.foreldrepenger.vtp.testmodell.medlemskap.MedlemskapModell;
import no.nav.foreldrepenger.vtp.testmodell.medlemskap.MedlemskapperiodeModell;
import no.nav.foreldrepenger.vtp.testmodell.personopplysning.PersonstatusModell.Personstatuser;

import java.time.LocalDate;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Locale;
import java.util.Optional;

public abstract class PersonModell extends BrukerModell {

@JsonProperty("fornavn")
Expand All @@ -33,6 +32,9 @@ public abstract class PersonModell extends BrukerModell {
@JsonProperty("diskresjonskode")
private Diskresjonskoder diskresjonskode;

@JsonProperty("erSkjermet")
private boolean erSkjermet;

@JsonProperty("språk")
private String språk;

Expand Down Expand Up @@ -124,6 +126,10 @@ public Diskresjonskoder getDiskresjonskodeType() {
return diskresjonskode;
}

public boolean getErSkjermet() {
return erSkjermet;
}

public LocalDate getDødsdato() {
return dødsdato;
}
Expand Down Expand Up @@ -221,6 +227,11 @@ public void setDiskresjonskode(Diskresjonskoder diskresjonskode) {
this.diskresjonskode = diskresjonskode;
}

public PersonModell setErSkjermet(boolean erSkjermet) {
this.erSkjermet = erSkjermet;
return this;
}

public void setDødsdato(LocalDate dødsdato) {
this.dødsdato = dødsdato;
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,8 @@
package no.nav.foreldrepenger.vtp.server.api.scenario.mapper;

import static no.nav.foreldrepenger.fpwsproxy.UtilKlasse.safeStream;

import java.util.List;
import java.util.Map;
import java.util.UUID;
import java.util.stream.Collectors;

import com.neovisionaries.i18n.CountryCode;

import no.nav.foreldrepenger.vtp.kontrakter.v2.AdresseDto;
import no.nav.foreldrepenger.vtp.kontrakter.v2.Adressebeskyttelse;
import no.nav.foreldrepenger.vtp.kontrakter.v2.FamilierelasjonModellDto;
import no.nav.foreldrepenger.vtp.kontrakter.v2.GeografiskTilknytningDto;
import no.nav.foreldrepenger.vtp.kontrakter.v2.Kjønn;
Expand All @@ -30,6 +23,7 @@
import no.nav.foreldrepenger.vtp.testmodell.personopplysning.AnnenPartModell;
import no.nav.foreldrepenger.vtp.testmodell.personopplysning.BarnModell;
import no.nav.foreldrepenger.vtp.testmodell.personopplysning.BrukerModell;
import no.nav.foreldrepenger.vtp.testmodell.personopplysning.Diskresjonskoder;
import no.nav.foreldrepenger.vtp.testmodell.personopplysning.FamilierelasjonModell;
import no.nav.foreldrepenger.vtp.testmodell.personopplysning.GateadresseModell;
import no.nav.foreldrepenger.vtp.testmodell.personopplysning.GeografiskTilknytningModell;
Expand All @@ -43,6 +37,13 @@
import no.nav.foreldrepenger.vtp.testmodell.personopplysning.SøkerModell;
import no.nav.foreldrepenger.vtp.testmodell.personopplysning.UstrukturertAdresseModell;

import java.util.List;
import java.util.Map;
import java.util.UUID;
import java.util.stream.Collectors;

import static no.nav.foreldrepenger.fpwsproxy.UtilKlasse.safeStream;

public class PersonopplysningModellMapper {

private PersonopplysningModellMapper() {
Expand Down Expand Up @@ -108,9 +109,22 @@ private static void setPerson(PersonModell personModell, PersonDto person) {
personModell.setSivilstand(tilSivilstand(person.sivilstand()));
personModell.setPersonstatus(tilPersonstatus(person.personstatus()));
personModell.setAdresser(tilAdresse(person.adresser()));
personModell.setDiskresjonskode(tilDiskresjonskode(person.adressebeskyttelse()));
personModell.setErSkjermet(person.erSkjermet());
personModell.setMedlemskap(tilMedlemskap(person.medlemskap()));
}

private static Diskresjonskoder tilDiskresjonskode(Adressebeskyttelse adressebeskyttelse) {
if (adressebeskyttelse == null) {
return null;
}
return switch (adressebeskyttelse) {
case FORTROLIG -> Diskresjonskoder.SPFO;
case STRENGT_FORTROLIG -> Diskresjonskoder.SPSF;
case UGRADERT -> null;
};
}

private static List<FamilierelasjonModell> tilRelasjoner(List<FamilierelasjonModellDto> familierelasjoner, Map<UUID, BrukerModell> allePersoner) {
return safeStream(familierelasjoner)
.map(f -> tilFamilierelasjonModell(allePersoner, f))
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,6 @@
package no.nav.foreldrepenger.vtp.server.api.scenario;

import static org.assertj.core.api.Assertions.assertThat;

import java.time.LocalDate;
import java.util.List;
import java.util.UUID;

import org.junit.jupiter.api.Test;

import com.neovisionaries.i18n.CountryCode;

import no.nav.foreldrepenger.vtp.kontrakter.v2.AdresseDto;
import no.nav.foreldrepenger.vtp.kontrakter.v2.FamilierelasjonModellDto;
import no.nav.foreldrepenger.vtp.kontrakter.v2.GeografiskTilknytningDto;
Expand All @@ -30,6 +21,13 @@
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.Test;

import java.time.LocalDate;
import java.util.List;
import java.util.UUID;

import static org.assertj.core.api.Assertions.assertThat;

class TestscenarioV2RestTjenesteTest {

Expand Down

0 comments on commit 8680af5

Please sign in to comment.