Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

TFP-5967: Utvider kontrakt for å legge til addressebeskyttelse og skj… #1585

Merged
merged 1 commit into from
Jan 30, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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