Skip to content

Commit

Permalink
Merge branch 'master' into feature/fjern-soek-i-testnorge
Browse files Browse the repository at this point in the history
  • Loading branch information
betsytraran authored Mar 6, 2025
2 parents 35f87c1 + 95410f6 commit a039642
Show file tree
Hide file tree
Showing 73 changed files with 1,317 additions and 226 deletions.
1 change: 1 addition & 0 deletions apps/dolly-search-service/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ spec:
- application: dolly-frontend-dev
- application: team-dolly-lokal-app
- application: testnav-oversikt-frontend
- application: testnav-synt-vedtakshistorikk-service
outbound:
external:
- host: testnav-pdl-proxy.dev-fss-pub.nais.io
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
package no.nav.testnav.dollysearchservice.dto;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

import static java.util.Objects.isNull;

@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor(force = true)
public class IdentSearch {

Integer page;
Integer pageSize;
Integer terminateAfter;
List<String> tags;
String ident;
List<String> navn;
Set<String> identer;

public Set<String> getIdenter() {

if (isNull(identer)) {
identer = new HashSet<>();
}
return identer;
}

public List<String> getTags() {

if (isNull(tags)) {
tags = new ArrayList<>();
}
return tags;
}

public List<String> getNavn() {

if (isNull(navn)) {
navn = new ArrayList<>();
}
return navn;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,258 @@
package no.nav.testnav.dollysearchservice.dto;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import no.nav.testnav.libs.data.pdlforvalter.v1.FolkeregisterPersonstatusDTO;
import no.nav.testnav.libs.data.pdlforvalter.v1.ForelderBarnRelasjonDTO;
import no.nav.testnav.libs.data.pdlforvalter.v1.KjoennDTO;
import no.nav.testnav.libs.data.pdlforvalter.v1.SivilstandDTO;

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

import static java.util.Objects.isNull;

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class Person {

private HentIdenter hentIdenter;
private HentPerson hentPerson;
private List<String> tags;

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public static class HentIdenter {
private List<Identer> identer;
}

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public static class Identer {
private String gruppe;
private String ident;
private Boolean historisk;
}

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public static class HentPerson {
private List<Navn> navn;
private List<Foedselsdato> foedselsdato;
private List<Kjoenn> kjoenn;
private List<Sivilstand> sivilstand;
private List<Statsborgerskap> statsborgerskap;
private List<Folkeregisterpersonstatus> folkeregisterpersonstatus;
private List<Doedsfall> doedsfall;
private List<InnflyttingTilNorge> innflyttingTilNorge;
private List<UtflyttingFraNorge> utflyttingFraNorge;
private List<ForelderBarnRelasjon> forelderBarnRelasjon;

public List<ForelderBarnRelasjon> getForelderBarnRelasjon() {

if (isNull(forelderBarnRelasjon)) {
forelderBarnRelasjon = new ArrayList<>();
}
return forelderBarnRelasjon;
}

public List<UtflyttingFraNorge> getUtflyttingFraNorge() {

if (isNull(utflyttingFraNorge)) {
utflyttingFraNorge = new ArrayList<>();
}
return utflyttingFraNorge;
}

public List<InnflyttingTilNorge> getInnflyttingTilNorge() {

if (isNull(innflyttingTilNorge)) {
innflyttingTilNorge = new ArrayList<>();
}
return innflyttingTilNorge;
}

public List<Doedsfall> getDoedsfall() {

if (isNull(doedsfall)) {
doedsfall = new ArrayList<>();
}
return doedsfall;
}

public List<Folkeregisterpersonstatus> getFolkeregisterpersonstatus() {

if (isNull(folkeregisterpersonstatus)) {
folkeregisterpersonstatus = new ArrayList<>();
}
return folkeregisterpersonstatus;
}

public List<Statsborgerskap> getStatsborgerskap() {

if (isNull(statsborgerskap)) {
statsborgerskap = new ArrayList<>();
}
return statsborgerskap;
}

public List<Sivilstand> getSivilstand() {

if (isNull(sivilstand)) {
sivilstand = new ArrayList<>();
}
return sivilstand;
}

public List<Kjoenn> getKjoenn() {

if (isNull(kjoenn)) {
kjoenn = new ArrayList<>();
}
return kjoenn;
}

public List<Foedselsdato> getFoedselsdato() {

if (isNull(foedselsdato)) {
foedselsdato = new ArrayList<>();
}
return foedselsdato;
}

public List<Navn> getNavn() {

if (isNull(navn)) {
navn = new ArrayList<>();
}
return navn;
}
}

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public static class Navn {

private String fornavn;
private String mellomnavn;
private String etternavn;
}

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public static class Foedselsdato {

private LocalDate foedselsdato;
}

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public static class Kjoenn {

private KjoennDTO.Kjoenn kjoenn;
}

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public static class Sivilstand {

private SivilstandDTO.Sivilstand type;
private String relatertVedSivilstand;
}

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public static class Statsborgerskap {

private String land;
}

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public static class Folkeregisterpersonstatus {

private FolkeregisterPersonstatusDTO.FolkeregisterPersonstatus status;
private Folkeregistermetadata folkeregistermetadata;
}

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public static class Folkeregistermetadata {

private LocalDate gyldighetstidspunkt;
}

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public static class Doedsfall {

private LocalDate doedsdato;
}

@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public static class InnflyttingTilNorge {

private String fraflyttingsland;
private String fraflyttingsstedIUtlandet;
}

@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public static class UtflyttingFraNorge {

private String tilflyttingsland;
private String tilflyttingsstedIUtlandet;
private LocalDate utflyttingsdato;
}

@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public static class ForelderBarnRelasjon {

private String relatertPersonsIdent;
private ForelderBarnRelasjonDTO.Rolle relatertPersonsRolle;
private ForelderBarnRelasjonDTO.Rolle minRolleForPerson;

public boolean isBarn() {
return relatertPersonsRolle == ForelderBarnRelasjonDTO.Rolle.BARN;
}

public boolean isForelder() {
return minRolleForPerson == ForelderBarnRelasjonDTO.Rolle.BARN;
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,11 @@
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.ArrayList;
import java.util.List;

import static java.util.Objects.isNull;

@Data
@Builder
@NoArgsConstructor
Expand All @@ -21,4 +24,12 @@ public class SearchInternalResponse {
private Integer seed;
private List<JsonNode> personer;
private String error;

public List<JsonNode> getPersoner() {

if (isNull(personer)) {
return new ArrayList<>();
}
return personer;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
package no.nav.testnav.dollysearchservice.mapper;

import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.AllArgsConstructor;
import ma.glasnost.orika.CustomMapper;
import ma.glasnost.orika.MapperFactory;
import ma.glasnost.orika.MappingContext;
import no.nav.testnav.dollysearchservice.dto.Person;
import no.nav.testnav.libs.data.dollysearchservice.v1.IdentdataDTO;
import org.springframework.stereotype.Component;

@Component
@AllArgsConstructor
public class IdentdataMappingStrategy implements MappingStrategy {

private final ObjectMapper objectMapper;
@Override
public void register(MapperFactory factory) {

factory.classMap(JsonNode.class, IdentdataDTO.class)
.customize(new CustomMapper<>() {
@Override
public void mapAtoB(JsonNode response, IdentdataDTO identdataDTO, MappingContext context) {

var person = objectMapper.convertValue(response, Person.class);
identdataDTO.setIdent(person.getHentIdenter().getIdenter().stream()
.filter(identer -> "FOLKEREGISTERIDENT".equals(identer.getGruppe()))
.map(Person.Identer::getIdent)
.findFirst().orElse(null));

identdataDTO.setNavn(mapperFacade.map(person.getHentPerson().getNavn().stream()
.findFirst()
.orElse(new Person.Navn()), IdentdataDTO.NavnDTO.class));
}
})
.register();
}
}
Loading

0 comments on commit a039642

Please sign in to comment.