diff --git a/apps/dolly-search-service/config.yml b/apps/dolly-search-service/config.yml index 1ed14e9601f..cdde88fcf69 100644 --- a/apps/dolly-search-service/config.yml +++ b/apps/dolly-search-service/config.yml @@ -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 diff --git a/apps/dolly-search-service/src/main/java/no/nav/testnav/dollysearchservice/dto/IdentSearch.java b/apps/dolly-search-service/src/main/java/no/nav/testnav/dollysearchservice/dto/IdentSearch.java new file mode 100644 index 00000000000..66768657316 --- /dev/null +++ b/apps/dolly-search-service/src/main/java/no/nav/testnav/dollysearchservice/dto/IdentSearch.java @@ -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 tags; + String ident; + List navn; + Set identer; + + public Set getIdenter() { + + if (isNull(identer)) { + identer = new HashSet<>(); + } + return identer; + } + + public List getTags() { + + if (isNull(tags)) { + tags = new ArrayList<>(); + } + return tags; + } + + public List getNavn() { + + if (isNull(navn)) { + navn = new ArrayList<>(); + } + return navn; + } +} \ No newline at end of file diff --git a/apps/dolly-search-service/src/main/java/no/nav/testnav/dollysearchservice/dto/Person.java b/apps/dolly-search-service/src/main/java/no/nav/testnav/dollysearchservice/dto/Person.java new file mode 100644 index 00000000000..bca86bd4635 --- /dev/null +++ b/apps/dolly-search-service/src/main/java/no/nav/testnav/dollysearchservice/dto/Person.java @@ -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 tags; + + @Data + @Builder + @NoArgsConstructor + @AllArgsConstructor + public static class HentIdenter { + private List 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; + private List foedselsdato; + private List kjoenn; + private List sivilstand; + private List statsborgerskap; + private List folkeregisterpersonstatus; + private List doedsfall; + private List innflyttingTilNorge; + private List utflyttingFraNorge; + private List forelderBarnRelasjon; + + public List getForelderBarnRelasjon() { + + if (isNull(forelderBarnRelasjon)) { + forelderBarnRelasjon = new ArrayList<>(); + } + return forelderBarnRelasjon; + } + + public List getUtflyttingFraNorge() { + + if (isNull(utflyttingFraNorge)) { + utflyttingFraNorge = new ArrayList<>(); + } + return utflyttingFraNorge; + } + + public List getInnflyttingTilNorge() { + + if (isNull(innflyttingTilNorge)) { + innflyttingTilNorge = new ArrayList<>(); + } + return innflyttingTilNorge; + } + + public List getDoedsfall() { + + if (isNull(doedsfall)) { + doedsfall = new ArrayList<>(); + } + return doedsfall; + } + + public List getFolkeregisterpersonstatus() { + + if (isNull(folkeregisterpersonstatus)) { + folkeregisterpersonstatus = new ArrayList<>(); + } + return folkeregisterpersonstatus; + } + + public List getStatsborgerskap() { + + if (isNull(statsborgerskap)) { + statsborgerskap = new ArrayList<>(); + } + return statsborgerskap; + } + + public List getSivilstand() { + + if (isNull(sivilstand)) { + sivilstand = new ArrayList<>(); + } + return sivilstand; + } + + public List getKjoenn() { + + if (isNull(kjoenn)) { + kjoenn = new ArrayList<>(); + } + return kjoenn; + } + + public List getFoedselsdato() { + + if (isNull(foedselsdato)) { + foedselsdato = new ArrayList<>(); + } + return foedselsdato; + } + + public List 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; + } + } +} diff --git a/apps/dolly-search-service/src/main/java/no/nav/testnav/dollysearchservice/dto/SearchInternalResponse.java b/apps/dolly-search-service/src/main/java/no/nav/testnav/dollysearchservice/dto/SearchInternalResponse.java index 133a754613b..2bb1b3f8053 100644 --- a/apps/dolly-search-service/src/main/java/no/nav/testnav/dollysearchservice/dto/SearchInternalResponse.java +++ b/apps/dolly-search-service/src/main/java/no/nav/testnav/dollysearchservice/dto/SearchInternalResponse.java @@ -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 @@ -21,4 +24,12 @@ public class SearchInternalResponse { private Integer seed; private List personer; private String error; + + public List getPersoner() { + + if (isNull(personer)) { + return new ArrayList<>(); + } + return personer; + } } \ No newline at end of file diff --git a/apps/dolly-search-service/src/main/java/no/nav/testnav/dollysearchservice/mapper/IdentdataMappingStrategy.java b/apps/dolly-search-service/src/main/java/no/nav/testnav/dollysearchservice/mapper/IdentdataMappingStrategy.java new file mode 100644 index 00000000000..f47dda48081 --- /dev/null +++ b/apps/dolly-search-service/src/main/java/no/nav/testnav/dollysearchservice/mapper/IdentdataMappingStrategy.java @@ -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(); + } +} diff --git a/apps/dolly-search-service/src/main/java/no/nav/testnav/dollysearchservice/mapper/LegacyRequestMappingStrategy.java b/apps/dolly-search-service/src/main/java/no/nav/testnav/dollysearchservice/mapper/LegacyRequestMappingStrategy.java new file mode 100644 index 00000000000..6cedaad9011 --- /dev/null +++ b/apps/dolly-search-service/src/main/java/no/nav/testnav/dollysearchservice/mapper/LegacyRequestMappingStrategy.java @@ -0,0 +1,60 @@ +package no.nav.testnav.dollysearchservice.mapper; + +import ma.glasnost.orika.CustomMapper; +import ma.glasnost.orika.MapperFactory; +import ma.glasnost.orika.MappingContext; +import no.nav.testnav.libs.data.dollysearchservice.v1.PersonRequest; +import no.nav.testnav.libs.data.dollysearchservice.v1.legacy.PersonSearch; +import no.nav.testnav.libs.data.pdlforvalter.v1.FolkeregisterPersonstatusDTO.FolkeregisterPersonstatus; +import no.nav.testnav.libs.data.pdlforvalter.v1.KjoennDTO; +import org.springframework.stereotype.Component; + +import java.util.Optional; + +import static java.util.Objects.nonNull; +import static org.apache.commons.lang3.BooleanUtils.isTrue; + +@Component +public class LegacyRequestMappingStrategy implements MappingStrategy { + + @Override + public void register(MapperFactory factory) { + + factory.classMap(PersonSearch.class, PersonRequest.class) + .customize(new CustomMapper<>() { + @Override + public void mapAtoB(PersonSearch personSearch, PersonRequest personRequest, MappingContext context) { + + Optional.ofNullable(personSearch.getAlder()) + .ifPresent(alder -> { + personRequest.setAlderFom(nonNull(alder.getFra()) ? alder.getFra() : null); + personRequest.setAlderTom(nonNull(alder.getTil()) ? alder.getTil() : null); + }); + + Optional.ofNullable(personSearch.getPersonstatus()) + .ifPresent(personstatus -> + personRequest.setPersonStatus(FolkeregisterPersonstatus.valueOf(personstatus.getStatus()))); + + Optional.ofNullable(personSearch.getKjoenn()) + .ifPresent(kjoenn -> personRequest.setKjoenn(KjoennDTO.Kjoenn.valueOf(kjoenn))); + + Optional.ofNullable(personSearch.getNasjonalitet()) + .ifPresent(nasjonalitet -> personRequest.setStatsborgerskap(nasjonalitet.getStatsborgerskap())); + + Optional.ofNullable(personSearch.getAdresser()) + .ifPresent(adresser -> + personRequest.setAdresse(PersonRequest.AdresseRequest.builder() + .harUtenlandsadresse(isTrue(adresser.getHarUtenlandskAdresse())) + .harKontaktadresse(isTrue(adresser.getHarKontaktadresse())) + .harOppholdsadresse(isTrue(adresser.getHarOppholdsadresse())) + .build())); + + personRequest.setErLevende(isTrue(personSearch.getKunLevende())); + + Optional.ofNullable(personSearch.getRelasjoner()) + .ifPresent(relasjoner -> + personRequest.setHarBarn(isTrue(relasjoner.getHarBarn()))); + } + }).register(); + } +} diff --git a/apps/dolly-search-service/src/main/java/no/nav/testnav/dollysearchservice/mapper/LegacyResponseMappingStrategy.java b/apps/dolly-search-service/src/main/java/no/nav/testnav/dollysearchservice/mapper/LegacyResponseMappingStrategy.java new file mode 100644 index 00000000000..b1e2b829330 --- /dev/null +++ b/apps/dolly-search-service/src/main/java/no/nav/testnav/dollysearchservice/mapper/LegacyResponseMappingStrategy.java @@ -0,0 +1,181 @@ +package no.nav.testnav.dollysearchservice.mapper; + +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import lombok.RequiredArgsConstructor; +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.legacy.PersonDTO; +import org.springframework.stereotype.Component; + +import static java.util.Objects.nonNull; +import static org.apache.commons.lang3.BooleanUtils.isFalse; + +@Component +@RequiredArgsConstructor +public class LegacyResponseMappingStrategy implements MappingStrategy { + + private final ObjectMapper objectMapper; + + @Override + public void register(MapperFactory factory) { + factory.classMap(JsonNode.class, PersonDTO.class) + .customize(new CustomMapper<>() { + + @Override + public void mapAtoB(JsonNode response, PersonDTO personDTO, MappingContext context) { + + var person = objectMapper.convertValue(response, Person.class); + personDTO.setTags(person.getTags()); + mapIdent(personDTO, person); + mapAktoerId(personDTO, person); + mapNavn(personDTO, person); + mapFoedselsdato(personDTO, person); + mapKjoenn(personDTO, person); + mapStatsborgerskap(personDTO, person); + mapSivilstand(personDTO, person); + mapPersonstatus(personDTO, person); + mapDoedsdato(personDTO, person); + mapInnflyttingTilNorge(personDTO, person); + mapUtflyttingFraNorge(personDTO, person); + mapForelderBarnRelasjoner(personDTO, person); + } + }) + .register(); + } + + private static void mapIdent(PersonDTO personDTO, Person person) { + + personDTO.setIdent(person.getHentIdenter().getIdenter().stream() + .filter(identer -> "FOLKEREGISTERIDENT".equals(identer.getGruppe()) && + isFalse(identer.getHistorisk())) + .map(Person.Identer::getIdent) + .findFirst().orElse(null)); + } + + private static void mapAktoerId(PersonDTO personDTO, Person person) { + + person.getHentIdenter().getIdenter().stream() + .filter(identer -> "AKTORID".equals(identer.getGruppe()) && + isFalse(identer.getHistorisk())) + .map(Person.Identer::getIdent) + .findFirst() + .ifPresent(personDTO::setAktorId); + } + + private static void mapNavn(PersonDTO personDTO, Person person) { + + person.getHentPerson().getNavn().stream() + .findFirst() + .ifPresent(navn -> { + personDTO.setFornavn(navn.getFornavn()); + personDTO.setMellomnavn(navn.getMellomnavn()); + personDTO.setEtternavn(navn.getEtternavn()); + }); + } + + private static void mapFoedselsdato(PersonDTO personDTO, Person person) { + + person.getHentPerson().getFoedselsdato().stream() + .findFirst() + .ifPresent(foedselsdato -> + personDTO.setFoedselsdato(PersonDTO.FoedselsdatoDTO.builder() + .foedselsdato(foedselsdato.getFoedselsdato()) + .build())); + } + + private static void mapKjoenn(PersonDTO personDTO, Person person) { + + person.getHentPerson().getKjoenn().stream() + .findFirst() + .ifPresent(kjoenn -> + personDTO.setKjoenn(kjoenn.getKjoenn().name())); + } + + private static void mapStatsborgerskap(PersonDTO personDTO, Person person) { + + if (!person.getHentPerson().getStatsborgerskap().isEmpty()) { + personDTO.setStatsborgerskap(PersonDTO.StatsborgerskapDTO.builder() + .land(person.getHentPerson().getStatsborgerskap().stream() + .map(Person.Statsborgerskap::getLand) + .distinct() + .toList()) + .build()); + } + } + + private static void mapSivilstand(PersonDTO personDTO, Person person) { + + person.getHentPerson().getSivilstand().stream() + .findFirst() + .ifPresent(sivilstand -> + personDTO.setSivilstand(PersonDTO.SivilstandDTO.builder() + .type(sivilstand.getType().name()) + .relatertVedSivilstand(sivilstand.getRelatertVedSivilstand()) + .build())); + } + + private static void mapPersonstatus(PersonDTO personDTO, Person person) { + + if (!person.getHentPerson().getFolkeregisterpersonstatus().isEmpty()) { + personDTO.setFolkeregisterpersonstatus(person.getHentPerson().getFolkeregisterpersonstatus().stream() + .map(personstatus -> PersonDTO.FolkeregisterpersonstatusDTO.builder() + .status(personstatus.getStatus().name()) + .gyldighetstidspunkt(personstatus.getFolkeregistermetadata().getGyldighetstidspunkt()) + .build()) + .toList()); + } + } + + private void mapDoedsdato(PersonDTO personDTO, Person person) { + + person.getHentPerson().getDoedsfall().stream() + .filter(doedsfall -> nonNull(doedsfall.getDoedsdato())) + .findFirst() + .ifPresent(doedsfall -> personDTO.setDoedsfall(PersonDTO.DoedsfallDTO.builder() + .doedsdato(doedsfall.getDoedsdato()) + .build())); + } + + private void mapInnflyttingTilNorge(PersonDTO personDTO, Person person) { + + person.getHentPerson().getInnflyttingTilNorge().stream() + .findFirst() + .ifPresent(innflyttingTilNorge -> personDTO.setInnfyttingTilNorge(PersonDTO.InnflyttingTilNorgeDTO.builder() + .fraflyttingsland(innflyttingTilNorge.getFraflyttingsland()) + .fraflyttingsstedIUtlandet(innflyttingTilNorge.getFraflyttingsstedIUtlandet()) + .build())); + } + + private void mapUtflyttingFraNorge(PersonDTO personDTO, Person person) { + + person.getHentPerson().getUtflyttingFraNorge().stream() + .findFirst() + .ifPresent(utflyttingFraNorge -> personDTO.setUtfyttingFraNorge(PersonDTO.UtfyttingFraNorgeDTO.builder() + .tilflyttingsland(utflyttingFraNorge.getTilflyttingsland()) + .tilflyttingsstedIUtlandet(utflyttingFraNorge.getTilflyttingsstedIUtlandet()) + .utflyttingsdato(utflyttingFraNorge.getUtflyttingsdato()) + .build())); + } + + private void mapForelderBarnRelasjoner(PersonDTO personDTO, Person person) { + + if (!person.getHentPerson().getForelderBarnRelasjon().isEmpty()) { + personDTO.setForelderBarnRelasjoner(PersonDTO.ForelderBarnRelasjonDTO.builder() + .barn(person.getHentPerson().getForelderBarnRelasjon().stream() + .filter(Person.ForelderBarnRelasjon::isBarn) + .map(Person.ForelderBarnRelasjon::getRelatertPersonsIdent) + .toList()) + .foreldre(person.getHentPerson().getForelderBarnRelasjon().stream() + .filter(Person.ForelderBarnRelasjon::isForelder) + .map(forelderBarnRelasjon -> PersonDTO.ForelderDTO.builder() + .ident(forelderBarnRelasjon.getRelatertPersonsIdent()) + .rolle(forelderBarnRelasjon.getRelatertPersonsRolle().name()) + .build()) + .toList()) + .build()); + } + } +} diff --git a/apps/dolly-search-service/src/main/java/no/nav/testnav/dollysearchservice/provider/IdenterSearchController.java b/apps/dolly-search-service/src/main/java/no/nav/testnav/dollysearchservice/provider/IdenterSearchController.java new file mode 100644 index 00000000000..f9d38f553f1 --- /dev/null +++ b/apps/dolly-search-service/src/main/java/no/nav/testnav/dollysearchservice/provider/IdenterSearchController.java @@ -0,0 +1,25 @@ +package no.nav.testnav.dollysearchservice.provider; + +import io.swagger.v3.oas.annotations.Operation; +import lombok.RequiredArgsConstructor; +import no.nav.testnav.dollysearchservice.service.IdenterSearchService; +import no.nav.testnav.libs.data.dollysearchservice.v1.IdentdataDTO; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import reactor.core.publisher.Flux; + +@RestController +@RequestMapping("/api/v1/identer") +@RequiredArgsConstructor +public class IdenterSearchController { + + private final IdenterSearchService identerSearchService; + + @GetMapping + @Operation(description = "Henter testnorge-identer som matcher søk i request") + public Flux getIdenter(String fragment) { + + return identerSearchService.getIdenter(fragment); + } +} \ No newline at end of file diff --git a/apps/dolly-search-service/src/main/java/no/nav/testnav/dollysearchservice/provider/LegacyController.java b/apps/dolly-search-service/src/main/java/no/nav/testnav/dollysearchservice/provider/LegacyController.java new file mode 100644 index 00000000000..d1032bff265 --- /dev/null +++ b/apps/dolly-search-service/src/main/java/no/nav/testnav/dollysearchservice/provider/LegacyController.java @@ -0,0 +1,28 @@ +package no.nav.testnav.dollysearchservice.provider; + +import io.swagger.v3.oas.annotations.Operation; +import lombok.RequiredArgsConstructor; +import no.nav.testnav.dollysearchservice.service.LegacyService; +import no.nav.testnav.libs.data.dollysearchservice.v1.legacy.PersonDTO; +import no.nav.testnav.libs.data.dollysearchservice.v1.legacy.PersonSearch; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import reactor.core.publisher.Flux; + +@Deprecated +@RestController +@RequiredArgsConstructor +@RequestMapping("/api/v1/legacy") +public class LegacyController { + + private final LegacyService legacyService; + + @PostMapping + @Operation(description = "Søker opp Testnorge-personer som ikke finnes i Dolly.") + public Flux searchPersoner(@RequestBody PersonSearch personSearch) { + + return legacyService.searchPersoner(personSearch); + } +} \ No newline at end of file diff --git a/apps/dolly-search-service/src/main/java/no/nav/testnav/dollysearchservice/provider/OpensearchController.java b/apps/dolly-search-service/src/main/java/no/nav/testnav/dollysearchservice/provider/PersonerSearchController.java similarity index 80% rename from apps/dolly-search-service/src/main/java/no/nav/testnav/dollysearchservice/provider/OpensearchController.java rename to apps/dolly-search-service/src/main/java/no/nav/testnav/dollysearchservice/provider/PersonerSearchController.java index 7548a167c3d..6f157590f7e 100644 --- a/apps/dolly-search-service/src/main/java/no/nav/testnav/dollysearchservice/provider/OpensearchController.java +++ b/apps/dolly-search-service/src/main/java/no/nav/testnav/dollysearchservice/provider/PersonerSearchController.java @@ -4,7 +4,7 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import no.nav.testnav.dollysearchservice.dto.Kategori; -import no.nav.testnav.dollysearchservice.service.OpenSearchService; +import no.nav.testnav.dollysearchservice.service.PersonerSearchService; import no.nav.testnav.libs.data.dollysearchservice.v1.ElasticTyper; import no.nav.testnav.libs.data.dollysearchservice.v1.SearchRequest; import no.nav.testnav.libs.data.dollysearchservice.v1.SearchResponse; @@ -20,24 +20,24 @@ @Slf4j @RestController -@RequestMapping("/api/v1/opensearch") +@RequestMapping("/api/v1/personer") @RequiredArgsConstructor -public class OpensearchController { +public class PersonerSearchController { - private final OpenSearchService openSearchService; + private final PersonerSearchService personerSearchService; @PostMapping @Operation(description = "Henter Dolly-personer som matcher både søk i registre og søk av persondetaljer i PDL") public Mono getPersoner(@RequestParam(required = false) List registreRequest, @RequestBody SearchRequest request) { - return openSearchService.search(request, registreRequest); + return personerSearchService.search(request, registreRequest); } @GetMapping("/typer") @Operation(description = "Henter alle søketyper mot registre") public List getKategorier() { - return openSearchService.getTyper(); + return personerSearchService.getTyper(); } } diff --git a/apps/dolly-search-service/src/main/java/no/nav/testnav/dollysearchservice/service/BestillingQueryService.java b/apps/dolly-search-service/src/main/java/no/nav/testnav/dollysearchservice/service/BestillingQueryService.java index c375f1395c3..82d7c1d17e9 100644 --- a/apps/dolly-search-service/src/main/java/no/nav/testnav/dollysearchservice/service/BestillingQueryService.java +++ b/apps/dolly-search-service/src/main/java/no/nav/testnav/dollysearchservice/service/BestillingQueryService.java @@ -6,11 +6,12 @@ import lombok.extern.slf4j.Slf4j; import no.nav.testnav.dollysearchservice.dto.BestillingIdenter; import no.nav.testnav.dollysearchservice.dto.SearchRequest; -import no.nav.testnav.dollysearchservice.utils.FagsystemQuereyUtils; +import no.nav.testnav.dollysearchservice.utils.FagsystemQueryUtils; import org.opensearch.action.search.SearchResponse; import org.opensearch.client.RequestOptions; import org.opensearch.client.RestHighLevelClient; import org.opensearch.common.unit.TimeValue; +import org.opensearch.index.query.QueryBuilder; import org.opensearch.index.query.QueryBuilders; import org.opensearch.search.SearchHit; import org.opensearch.search.builder.SearchSourceBuilder; @@ -42,23 +43,38 @@ public class BestillingQueryService { private final RestHighLevelClient restHighLevelClient; private final ObjectMapper objectMapper; - @Cacheable(cacheNames = CACHE_REGISTRE, key="#request.registreRequest") + @Cacheable(cacheNames = CACHE_REGISTRE, key = "#request.registreRequest") public Set execRegisterQuery(SearchRequest request) { + var queryBuilder = QueryBuilders.boolQuery(); + + request.getRegistreRequest().stream() + .map(FagsystemQueryUtils::getFagsystemQuery) + .forEach(queryBuilder::must); + + return execQuery(queryBuilder); + } + + public Set execTestnorgeIdenterQuery() { + + var queryBuilder = QueryBuilders.boolQuery(); + + queryBuilder.must(QueryBuilders.regexpQuery("identer", "\\d{2}[8-9]\\d{8}")); + + return execQuery(queryBuilder); + } + + private Set execQuery(QueryBuilder query) { + var now = System.currentTimeMillis(); Set identer; SearchResponse searchResponse; - var queryBuilder = QueryBuilders.boolQuery(); - request.getRegistreRequest().stream() - .map(FagsystemQuereyUtils::getFagsystemQuery) - .forEach(queryBuilder::must); - try { searchResponse = restHighLevelClient.search(new org.opensearch.action.search.SearchRequest(dollyIndex) .source(new SearchSourceBuilder() - .query(queryBuilder) + .query(query) .sort("id") .size(QUERY_SIZE) .timeout(new TimeValue(3, TimeUnit.SECONDS))), RequestOptions.DEFAULT); @@ -69,7 +85,7 @@ public Set execRegisterQuery(SearchRequest request) { searchResponse = restHighLevelClient.search(new org.opensearch.action.search.SearchRequest(dollyIndex) .source(new SearchSourceBuilder() - .query(queryBuilder) + .query(query) .sort("id") .searchAfter(new Object[]{searchResponse.getHits().getAt(searchResponse.getHits().getHits().length - 1).getId()}) .size(QUERY_SIZE) diff --git a/apps/dolly-search-service/src/main/java/no/nav/testnav/dollysearchservice/service/IdenterSearchService.java b/apps/dolly-search-service/src/main/java/no/nav/testnav/dollysearchservice/service/IdenterSearchService.java new file mode 100644 index 00000000000..32201b866f0 --- /dev/null +++ b/apps/dolly-search-service/src/main/java/no/nav/testnav/dollysearchservice/service/IdenterSearchService.java @@ -0,0 +1,80 @@ +package no.nav.testnav.dollysearchservice.service; + +import lombok.RequiredArgsConstructor; +import lombok.SneakyThrows; +import ma.glasnost.orika.MapperFacade; +import no.nav.testnav.dollysearchservice.dto.IdentSearch; +import no.nav.testnav.dollysearchservice.dto.SearchInternalResponse; +import no.nav.testnav.dollysearchservice.dto.SearchRequest; +import no.nav.testnav.libs.data.dollysearchservice.v1.IdentdataDTO; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; +import reactor.core.publisher.Flux; + +import java.util.List; +import java.util.Set; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +import static no.nav.testnav.dollysearchservice.utils.OpenSearchIdenterQueryUtils.buildTestnorgeIdentSearchQuery; +import static org.apache.commons.lang3.StringUtils.isNotBlank; + +@Service +@RequiredArgsConstructor +public class IdenterSearchService { + + private final BestillingQueryService bestillingQueryService; + private final OpenSearchQueryService personQueryService; + private final MapperFacade mapperFacade; + + @SneakyThrows + public Flux getIdenter(String fragment) { + + var identer = bestillingQueryService.execTestnorgeIdenterQuery(); + var query = buildTestnorgeIdentSearchQuery(getSearchCriteria(fragment, identer)); + + return personQueryService.execQuery(new SearchRequest(), query) + .map(this::formatResponse) + .map(this::filterRegister) + .flatMapMany(Flux::fromIterable); + } + + private IdentSearch getSearchCriteria(String query, Set identer) { + + var ident = Stream.of(query.split(" ")) + .filter(StringUtils::isNumeric) + .findFirst() + .orElse(null); + + var navn = Stream.of(query.split(" ")) + .filter(fragment -> isNotBlank(fragment) && !StringUtils.isNumeric(fragment)) + .toList(); + + return IdentSearch.builder() + .page(1) + .pageSize(10) + .tags(List.of("DOLLY", "TESTNORGE")) + .ident(ident) + .navn(navn) + .identer(identer) + .build(); + } + + private List formatResponse(SearchInternalResponse response) { + + return response.getPersoner().stream() + .map(person -> mapperFacade.map(person, IdentdataDTO.class)) + .toList(); + } + + private List filterRegister(List identdataDTO) { + + var identer = bestillingQueryService.execRegisterQuery(SearchRequest.builder() + .identer(identdataDTO.stream().map(IdentdataDTO::getIdent).collect(Collectors.toSet())) + .build()); + + return identdataDTO.stream() + .filter(identdata -> identer.contains(identdata.getIdent())) + .toList(); + } +} diff --git a/apps/dolly-search-service/src/main/java/no/nav/testnav/dollysearchservice/service/LegacyService.java b/apps/dolly-search-service/src/main/java/no/nav/testnav/dollysearchservice/service/LegacyService.java new file mode 100644 index 00000000000..72525fa6a4b --- /dev/null +++ b/apps/dolly-search-service/src/main/java/no/nav/testnav/dollysearchservice/service/LegacyService.java @@ -0,0 +1,50 @@ +package no.nav.testnav.dollysearchservice.service; + +import lombok.RequiredArgsConstructor; +import ma.glasnost.orika.MapperFacade; +import no.nav.testnav.dollysearchservice.dto.SearchInternalResponse; +import no.nav.testnav.dollysearchservice.dto.SearchRequest; +import no.nav.testnav.dollysearchservice.utils.OpenSearchQueryBuilder; +import no.nav.testnav.libs.data.dollysearchservice.v1.legacy.PersonDTO; +import no.nav.testnav.libs.data.dollysearchservice.v1.PersonRequest; +import no.nav.testnav.libs.data.dollysearchservice.v1.legacy.PersonSearch; +import org.springframework.stereotype.Service; +import reactor.core.publisher.Flux; + +import java.util.List; + +import static no.nav.testnav.dollysearchservice.utils.OpenSearchQueryUtils.matchQuery; +import static no.nav.testnav.dollysearchservice.utils.OpenSearchQueryUtils.termsQuery; + +@Service +@RequiredArgsConstructor +public class LegacyService { + + private final OpenSearchQueryService openSearchQueryService; + private final MapperFacade mapperFacade; + + public Flux searchPersoner(PersonSearch personSearch) { + + var personRequest = SearchRequest.builder() + .seed(personSearch.getRandomSeed()) + .side(personSearch.getPage()) + .antall(personSearch.getPageSize()) + .personRequest(mapperFacade.map(personSearch, PersonRequest.class)) + .build(); + + var query = OpenSearchQueryBuilder.buildSearchQuery(personRequest); + query.mustNot(termsQuery("tags", new String[]{"DOLLY", "ARENASYNT"})); + query.must(matchQuery("tags", "TESTNORGE")); + + return openSearchQueryService.execQuery(personRequest, query) + .map(this::formatResponse) + .flatMapMany(Flux::fromIterable); + } + + private List formatResponse(SearchInternalResponse response) { + + return response.getPersoner().stream() + .map(person -> mapperFacade.map(person, PersonDTO.class)) + .toList(); + } +} diff --git a/apps/dolly-search-service/src/main/java/no/nav/testnav/dollysearchservice/service/PersonQueryService.java b/apps/dolly-search-service/src/main/java/no/nav/testnav/dollysearchservice/service/OpenSearchQueryService.java similarity index 98% rename from apps/dolly-search-service/src/main/java/no/nav/testnav/dollysearchservice/service/PersonQueryService.java rename to apps/dolly-search-service/src/main/java/no/nav/testnav/dollysearchservice/service/OpenSearchQueryService.java index a6b6012dedd..af1b8e9a24c 100644 --- a/apps/dolly-search-service/src/main/java/no/nav/testnav/dollysearchservice/service/PersonQueryService.java +++ b/apps/dolly-search-service/src/main/java/no/nav/testnav/dollysearchservice/service/OpenSearchQueryService.java @@ -22,7 +22,7 @@ @Slf4j @Service @RequiredArgsConstructor -public class PersonQueryService { +public class OpenSearchQueryService { private final OpenSearchConsumer openSearchConsumer; private final ObjectMapper objectMapper; diff --git a/apps/dolly-search-service/src/main/java/no/nav/testnav/dollysearchservice/service/OpenSearchService.java b/apps/dolly-search-service/src/main/java/no/nav/testnav/dollysearchservice/service/PersonerSearchService.java similarity index 85% rename from apps/dolly-search-service/src/main/java/no/nav/testnav/dollysearchservice/service/OpenSearchService.java rename to apps/dolly-search-service/src/main/java/no/nav/testnav/dollysearchservice/service/PersonerSearchService.java index 4850ad1d1bd..d3121de3b90 100644 --- a/apps/dolly-search-service/src/main/java/no/nav/testnav/dollysearchservice/service/OpenSearchService.java +++ b/apps/dolly-search-service/src/main/java/no/nav/testnav/dollysearchservice/service/PersonerSearchService.java @@ -16,16 +16,18 @@ import java.util.Set; import java.util.stream.Stream; +import static no.nav.testnav.dollysearchservice.utils.OpenSearchIdenterQueryUtils.addIdenterQuery; + @Slf4j @Service @RequiredArgsConstructor -public class OpenSearchService { +public class PersonerSearchService { private static final String NO_IDENT = "9999999999)"; private final BestillingQueryService bestillingQueryService; private final MapperFacade mapperFacade; - private final PersonQueryService personQueryService; + private final OpenSearchQueryService openSearchQueryService; public Mono search(SearchRequest searchRequest, List registreRequest) { @@ -37,8 +39,9 @@ public Mono search(SearchRequest searchRequest, List mapperFacade.map(response, SearchResponse.class)); } diff --git a/apps/dolly-search-service/src/main/java/no/nav/testnav/dollysearchservice/utils/FagsystemQuereyUtils.java b/apps/dolly-search-service/src/main/java/no/nav/testnav/dollysearchservice/utils/FagsystemQueryUtils.java similarity index 98% rename from apps/dolly-search-service/src/main/java/no/nav/testnav/dollysearchservice/utils/FagsystemQuereyUtils.java rename to apps/dolly-search-service/src/main/java/no/nav/testnav/dollysearchservice/utils/FagsystemQueryUtils.java index b86836a6ad2..fc193e5dc1f 100644 --- a/apps/dolly-search-service/src/main/java/no/nav/testnav/dollysearchservice/utils/FagsystemQuereyUtils.java +++ b/apps/dolly-search-service/src/main/java/no/nav/testnav/dollysearchservice/utils/FagsystemQueryUtils.java @@ -6,7 +6,7 @@ import org.opensearch.index.query.QueryBuilders; @UtilityClass -public class FagsystemQuereyUtils { +public class FagsystemQueryUtils { public static QueryBuilder getFagsystemQuery(ElasticTyper type) { diff --git a/apps/dolly-search-service/src/main/java/no/nav/testnav/dollysearchservice/utils/OpenSearchIdenterQueryUtils.java b/apps/dolly-search-service/src/main/java/no/nav/testnav/dollysearchservice/utils/OpenSearchIdenterQueryUtils.java index e7c7a726a94..cb0402637a9 100644 --- a/apps/dolly-search-service/src/main/java/no/nav/testnav/dollysearchservice/utils/OpenSearchIdenterQueryUtils.java +++ b/apps/dolly-search-service/src/main/java/no/nav/testnav/dollysearchservice/utils/OpenSearchIdenterQueryUtils.java @@ -2,57 +2,105 @@ import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; -import no.nav.testnav.dollysearchservice.dto.SearchRequest; +import no.nav.testnav.dollysearchservice.dto.IdentSearch; +import org.apache.lucene.search.join.ScoreMode; import org.opensearch.index.query.BoolQueryBuilder; import org.opensearch.index.query.QueryBuilders; +import org.opensearch.index.query.functionscore.RandomScoreFunctionBuilder; +import java.security.SecureRandom; +import java.util.List; +import java.util.Optional; +import java.util.Random; import java.util.Set; import static no.nav.testnav.dollysearchservice.utils.OpenSearchQueryUtils.FOLKEREGISTERIDENTIFIKATOR; import static no.nav.testnav.dollysearchservice.utils.OpenSearchQueryUtils.HENT_IDENTER; -import static no.nav.testnav.dollysearchservice.utils.OpenSearchQueryUtils.METADATA_HISTORISK; -import static no.nav.testnav.dollysearchservice.utils.OpenSearchQueryUtils.NAVSPERSONIDENTIFIKATOR; -import static no.nav.testnav.dollysearchservice.utils.OpenSearchQueryUtils.matchQuery; -import static no.nav.testnav.dollysearchservice.utils.OpenSearchQueryUtils.nestedMatchQuery; import static no.nav.testnav.dollysearchservice.utils.OpenSearchQueryUtils.nestedRegexpQuery; import static no.nav.testnav.dollysearchservice.utils.OpenSearchQueryUtils.nestedTermsQuery; +import static no.nav.testnav.dollysearchservice.utils.OpenSearchQueryUtils.regexpQuery; @Slf4j @UtilityClass public class OpenSearchIdenterQueryUtils { - public static BoolQueryBuilder addIdenterIdentifier(SearchRequest request) { + private static final String PERSON_FORNAVN = "hentPerson.navn.fornavn"; + private static final String PERSON_ETTERNAVN = "hentPerson.navn.etternavn"; + private static final String IDENTIFIKASJONSNUMMER = "identifikasjonsnummer"; - return request.getIdenter().isEmpty() ? + private static final Random RANDOM = new SecureRandom(); - QueryBuilders.boolQuery() - .must(addDollyIdentifier()) : + public static BoolQueryBuilder buildTestnorgeIdentSearchQuery(IdentSearch search) { - QueryBuilders.boolQuery() - .must(addIdenterQuery(request.getIdenter())); + var queryBuilder = QueryBuilders.boolQuery(); + + addTagsQueries(queryBuilder, search.getTags()); + addIdentQuery(queryBuilder, search); + addNameQuery(queryBuilder, search); + addIdenterQuery(queryBuilder, search.getIdenter()); + addRandomScoreQuery(queryBuilder); + + return queryBuilder; } - private static BoolQueryBuilder addDollyIdentifier() { + private static void addRandomScoreQuery(BoolQueryBuilder queryBuilder) { - return QueryBuilders.boolQuery() - .should(matchQuery("tags", "DOLLY")) - .should(QueryBuilders.boolQuery() - .must(nestedMatchQuery(FOLKEREGISTERIDENTIFIKATOR, METADATA_HISTORISK, false)) - .must(nestedRegexpQuery(FOLKEREGISTERIDENTIFIKATOR, "identifikasjonsnummer", "\\d{2}[4-5]\\d{8}"))) - .should(QueryBuilders.boolQuery() - .must(nestedMatchQuery(NAVSPERSONIDENTIFIKATOR, METADATA_HISTORISK, false)) - .must(nestedRegexpQuery(NAVSPERSONIDENTIFIKATOR, "identifikasjonsnummer", "\\d{2}[6-7]\\d{8}"))); + queryBuilder.must(QueryBuilders.functionScoreQuery(new RandomScoreFunctionBuilder() + .seed(RANDOM.nextInt()))); } - private static BoolQueryBuilder addIdenterQuery(Set identer) { + private static void addTagsQueries(BoolQueryBuilder queryBuilder, List tags) { - var now = System.currentTimeMillis(); + tags.forEach(tag -> queryBuilder.must(QueryBuilders.matchQuery("tags", tag))); + } + + private static void addNameQuery(BoolQueryBuilder queryBuilder, IdentSearch search) { + + Optional.ofNullable(search.getNavn()) + .ifPresent(values -> { + if (values.size() == 1) { + queryBuilder.must(QueryBuilders.nestedQuery( + "hentPerson.navn", + QueryBuilders.boolQuery() + .should(regexpQuery(PERSON_FORNAVN, ".*" + values.get(0) + ".*")) + .should(regexpQuery(PERSON_ETTERNAVN, ".*" + values.get(0) + ".*")) + .minimumShouldMatch(1), + ScoreMode.Avg)); + + } else if (values.size() > 1) { + queryBuilder.must(QueryBuilders.nestedQuery( + "hentPerson.navn", + QueryBuilders.boolQuery() + .should(QueryBuilders.boolQuery() + .must(regexpQuery(PERSON_FORNAVN, ".*" + values.get(0) + ".*")) + .must(regexpQuery(PERSON_ETTERNAVN, ".*" + values.get(1) + ".*"))) + .should(QueryBuilders.boolQuery() + .must(regexpQuery(PERSON_FORNAVN, ".*" + values.get(1) + ".*")) + .must(regexpQuery(PERSON_ETTERNAVN, ".*" + values.get(0) + ".*"))) + .minimumShouldMatch(1), + ScoreMode.Avg)); + } + }); + } + + public static void addIdenterQuery(BoolQueryBuilder queryBuilder, Set identer) { + var now = System.currentTimeMillis(); var arr = new String[identer.size()]; - var query = QueryBuilders.boolQuery() - .should(nestedTermsQuery(HENT_IDENTER, "ident", identer.toArray(arr))); + + queryBuilder + .must(nestedTermsQuery(HENT_IDENTER, "ident", identer.toArray(arr))); log.info("Konvertering av liste til array tok {} ms", System.currentTimeMillis() - now); - return query; + } + + private static void addIdentQuery(BoolQueryBuilder queryBuilder, IdentSearch search) { + + Optional.ofNullable(search.getIdent()) + .ifPresent(value -> { + if (!value.isEmpty()) { + queryBuilder.must(nestedRegexpQuery(FOLKEREGISTERIDENTIFIKATOR, IDENTIFIKASJONSNUMMER, ".*" + value + ".*")); + } + }); } } diff --git a/apps/dolly-search-service/src/main/java/no/nav/testnav/dollysearchservice/utils/OpenSearchPersonQueryUtils.java b/apps/dolly-search-service/src/main/java/no/nav/testnav/dollysearchservice/utils/OpenSearchPersonQueryUtils.java index 3ce74429b87..58e0e893faf 100644 --- a/apps/dolly-search-service/src/main/java/no/nav/testnav/dollysearchservice/utils/OpenSearchPersonQueryUtils.java +++ b/apps/dolly-search-service/src/main/java/no/nav/testnav/dollysearchservice/utils/OpenSearchPersonQueryUtils.java @@ -110,7 +110,7 @@ public static void addVergemaalQuery(BoolQueryBuilder queryBuilder, SearchReques public static void addDoedsfallQuery(BoolQueryBuilder queryBuilder, SearchRequest request) { - if (isTrue(request.getPersonRequest().getHarDoedsfall())) { + if (isTrue(request.getPersonRequest().getErDoed())) { queryBuilder .must(nestedMatchQuery("hentPerson.doedsfall", METADATA_HISTORISK, false)); } @@ -141,7 +141,7 @@ public static void addAdressebeskyttelseQuery(BoolQueryBuilder queryBuilder, Sea .must(nestedMatchQuery("hentPerson.adressebeskyttelse", METADATA_HISTORISK, false)) .must(nestedMatchQuery("hentPerson.adressebeskyttelse", "gradering", adresse.getAddressebeskyttelse().name()) - )); + )); } public static void addHarBostedsadresseQuery(BoolQueryBuilder queryBuilder, SearchRequest request) { @@ -275,7 +275,7 @@ public static void addAdresseMatrikkelQuery(BoolQueryBuilder queryBuilder, Searc queryBuilder .must(nestedMatchQuery(BOSTEDSADRESSE, METADATA_HISTORISK, false)) .must(nestedExistQuery(BOSTEDSADRESSE, MATRIKKELADRESSE)) - ); + ); } public static void addHarBostedUkjentQuery(BoolQueryBuilder queryBuilder, SearchRequest request) { @@ -286,7 +286,7 @@ public static void addHarBostedUkjentQuery(BoolQueryBuilder queryBuilder, Search queryBuilder .must(nestedMatchQuery(BOSTEDSADRESSE, METADATA_HISTORISK, false)) .must(nestedExistQuery(BOSTEDSADRESSE, "ukjentBosted")) - ); + ); } public static void addHarDeltBostedQuery(BoolQueryBuilder queryBuilder, SearchRequest request) { @@ -340,10 +340,18 @@ public static void addStatsborgerskapQuery(BoolQueryBuilder queryBuilder, Search .must(nestedMatchQuery("hentPerson.statsborgerskap", METADATA_HISTORISK, false)) .must(nestedMatchQuery("hentPerson.statsborgerskap", "land", request.getPersonRequest().getStatsborgerskap()) - ); + ); } } + public static void addPersonStatusQuery(BoolQueryBuilder queryBuilder, SearchRequest request) { + + Optional.ofNullable(request.getPersonRequest().getPersonStatus()) + .ifPresent(status -> queryBuilder + .must(nestedMatchQuery("hentPerson.folkeregisterpersonstatus", METADATA_HISTORISK, false)) + .must(nestedMatchQuery("hentPerson.folkeregisterpersonstatus", "status", status))); + } + public static void addHarOppholdQuery(BoolQueryBuilder queryBuilder, SearchRequest request) { if (isTrue(request.getPersonRequest().getHarOpphold())) { @@ -357,7 +365,7 @@ public static void addHarNyIdentitetQuery(BoolQueryBuilder queryBuilder, SearchR queryBuilder .must(nestedMatchQuery(HENT_IDENTER, HISTORISK, false)) .must(nestedMatchQuery(HENT_IDENTER, HISTORISK, true) - ); + ); } } @@ -368,7 +376,14 @@ public static void addKjoennQuery(BoolQueryBuilder queryBuilder, SearchRequest r .must(nestedMatchQuery("hentPerson.kjoenn", METADATA_HISTORISK, false)) .must(nestedMatchQuery("hentPerson.kjoenn", "kjoenn", request.getPersonRequest().getKjoenn().name()) - ); + ); + } + } + + public static void addKunLevendePersonerQuery(BoolQueryBuilder queryBuilder, SearchRequest request) { + + if (isTrue(request.getPersonRequest().getErLevende())) { + queryBuilder.mustNot(nestedMatchQuery("hentPerson.doedsfall", METADATA_HISTORISK, false)); } } diff --git a/apps/dolly-search-service/src/main/java/no/nav/testnav/dollysearchservice/utils/OpenSearchQueryBuilder.java b/apps/dolly-search-service/src/main/java/no/nav/testnav/dollysearchservice/utils/OpenSearchQueryBuilder.java index c981baac24a..6ab416923a5 100644 --- a/apps/dolly-search-service/src/main/java/no/nav/testnav/dollysearchservice/utils/OpenSearchQueryBuilder.java +++ b/apps/dolly-search-service/src/main/java/no/nav/testnav/dollysearchservice/utils/OpenSearchQueryBuilder.java @@ -12,7 +12,6 @@ import java.util.Random; import static java.util.Objects.isNull; -import static no.nav.testnav.dollysearchservice.utils.OpenSearchIdenterQueryUtils.addIdenterIdentifier; import static no.nav.testnav.dollysearchservice.utils.OpenSearchPersonQueryUtils.addAdresseBydelsnrQuery; import static no.nav.testnav.dollysearchservice.utils.OpenSearchPersonQueryUtils.addAdresseKommunenrQuery; import static no.nav.testnav.dollysearchservice.utils.OpenSearchPersonQueryUtils.addAdresseMatrikkelQuery; @@ -42,6 +41,8 @@ import static no.nav.testnav.dollysearchservice.utils.OpenSearchPersonQueryUtils.addHarUtflyttingQuery; import static no.nav.testnav.dollysearchservice.utils.OpenSearchPersonQueryUtils.addIdenttypeQuery; import static no.nav.testnav.dollysearchservice.utils.OpenSearchPersonQueryUtils.addKjoennQuery; +import static no.nav.testnav.dollysearchservice.utils.OpenSearchPersonQueryUtils.addKunLevendePersonerQuery; +import static no.nav.testnav.dollysearchservice.utils.OpenSearchPersonQueryUtils.addPersonStatusQuery; import static no.nav.testnav.dollysearchservice.utils.OpenSearchPersonQueryUtils.addSivilstandQuery; import static no.nav.testnav.dollysearchservice.utils.OpenSearchPersonQueryUtils.addStatsborgerskapQuery; import static no.nav.testnav.dollysearchservice.utils.OpenSearchPersonQueryUtils.addVergemaalQuery; @@ -54,8 +55,7 @@ public class OpenSearchQueryBuilder { public static BoolQueryBuilder buildSearchQuery(SearchRequest request) { var queryBuilder = QueryBuilders.boolQuery() - .must(getRandomScoreQueryBuilder(request)) - .must(addIdenterIdentifier(request)); + .must(getRandomScoreQueryBuilder(request)); setPersonQuery(queryBuilder, request); @@ -100,6 +100,8 @@ private static void setPersonQuery(BoolQueryBuilder queryBuilder, SearchRequest addHarNyIdentitetQuery(queryBuilder, request); addKjoennQuery(queryBuilder, request); addIdenttypeQuery(queryBuilder, request); + addPersonStatusQuery(queryBuilder, request); + addKunLevendePersonerQuery(queryBuilder, request); }); } diff --git a/apps/synt-vedtakshistorikk-service/build.gradle b/apps/synt-vedtakshistorikk-service/build.gradle index 66e7c7d9801..10931c7592b 100644 --- a/apps/synt-vedtakshistorikk-service/build.gradle +++ b/apps/synt-vedtakshistorikk-service/build.gradle @@ -11,8 +11,10 @@ sonarqube { dependencies { implementation "no.nav.testnav.libs:data-transfer-objects" + implementation "no.nav.testnav.libs:data-transfer-search-objects" implementation "no.nav.testnav.libs:security-core" implementation "no.nav.testnav.libs:servlet-core" + implementation "no.nav.testnav.libs:reactive-core" implementation "no.nav.testnav.libs:servlet-insecure-security" implementation "no.nav.testnav.libs:servlet-security" diff --git a/apps/synt-vedtakshistorikk-service/config.yml b/apps/synt-vedtakshistorikk-service/config.yml index 986ea0afd8c..50da61ff496 100644 --- a/apps/synt-vedtakshistorikk-service/config.yml +++ b/apps/synt-vedtakshistorikk-service/config.yml @@ -51,7 +51,7 @@ spec: - application: synthdata-arena-dagpenger - application: synthdata-arena-vedtakshistorikk - application: testnav-organisasjon-faste-data-service - - application: testnav-person-search-service + - application: testnav-dolly-search-service external: - host: testnav-pensjon-testdata-facade-proxy.dev-fss-pub.nais.io - host: testnav-arena-forvalteren-proxy.dev-fss-pub.nais.io diff --git a/apps/synt-vedtakshistorikk-service/settings.gradle b/apps/synt-vedtakshistorikk-service/settings.gradle index 817166f8a5a..59177de2823 100644 --- a/apps/synt-vedtakshistorikk-service/settings.gradle +++ b/apps/synt-vedtakshistorikk-service/settings.gradle @@ -7,8 +7,10 @@ rootProject.name = "synt-vedtakshistorikk-service" includeBuild "../../plugins/java" includeBuild "../../libs/data-transfer-objects" +includeBuild "../../libs/data-transfer-search-objects" includeBuild "../../libs/security-core" includeBuild "../../libs/servlet-core" +includeBuild "../../libs/reactive-core" includeBuild "../../libs/servlet-insecure-security" includeBuild "../../libs/servlet-security" includeBuild "../../libs/testing" diff --git a/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/SyntVedtakshistorikkServiceApplicationStarter.java b/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/SyntVedtakshistorikkServiceApplicationStarter.java index 0866640ed7b..09bcba355cd 100644 --- a/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/SyntVedtakshistorikkServiceApplicationStarter.java +++ b/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/SyntVedtakshistorikkServiceApplicationStarter.java @@ -13,4 +13,4 @@ public static void main(String[] args) { .initializers(new NaisEnvironmentApplicationContextInitializer()) .run(args); } -} +} \ No newline at end of file diff --git a/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/config/Consumers.java b/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/config/Consumers.java index 4cfc1d14e2c..c7026a67f2d 100644 --- a/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/config/Consumers.java +++ b/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/config/Consumers.java @@ -29,7 +29,7 @@ public class Consumers { private ServerProperties testnavOrganisasjonFasteDataService; private ServerProperties pdlApiProxy; private ServerProperties testnavPensjonTestdataFacadeProxy; - private ServerProperties testnavPersonSearchService; + private ServerProperties testnavDollySearchService; private ServerProperties syntDagpenger; private ServerProperties syntVedtakshistorikk; diff --git a/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/ArenaForvalterConsumer.java b/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/ArenaForvalterConsumer.java index d7452d4207d..158d7ffbb36 100644 --- a/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/ArenaForvalterConsumer.java +++ b/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/ArenaForvalterConsumer.java @@ -59,17 +59,11 @@ public ArenaForvalterConsumer( this.tokenExchange = tokenExchange; } - public NyeBrukereResponse sendBrukereTilArenaForvalter( - List nyeBrukere - ) { - try { - return tokenExchange.exchange(serverProperties) - .flatMap(accessToken -> new PostArenaBrukerCommand(nyeBrukere, accessToken.getTokenValue(), webClient).call()) - .block(); - } catch (Exception e) { - log.error("Klarte ikke å sende inn ny(e) bruker(e) til Arena-forvalteren.", e); - throw e; - } + public NyeBrukereResponse sendBrukereTilArenaForvalter(List nyeBrukere) { + + return tokenExchange.exchange(serverProperties) + .flatMap(accessToken -> new PostArenaBrukerCommand(nyeBrukere, accessToken.getTokenValue(), webClient).call()) + .block(); } public void slettBrukerIArenaForvalteren(String ident, String miljoe) { diff --git a/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/PersonSearchConsumer.java b/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/DollySearchServiceConsumer.java similarity index 79% rename from apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/PersonSearchConsumer.java rename to apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/DollySearchServiceConsumer.java index 091388e2309..5870c51bb42 100644 --- a/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/PersonSearchConsumer.java +++ b/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/DollySearchServiceConsumer.java @@ -4,7 +4,7 @@ import no.nav.testnav.apps.syntvedtakshistorikkservice.config.Consumers; import no.nav.testnav.apps.syntvedtakshistorikkservice.consumer.command.search.PersonSearchCommand; import no.nav.testnav.apps.syntvedtakshistorikkservice.consumer.response.search.PersonSearchResponse; -import no.nav.testnav.libs.dto.personsearchservice.v1.search.PersonSearch; +import no.nav.testnav.libs.data.dollysearchservice.v1.legacy.PersonSearch; import no.nav.testnav.libs.securitycore.domain.ServerProperties; import no.nav.testnav.libs.standalone.servletsecurity.exchange.TokenExchange; import org.springframework.stereotype.Component; @@ -12,18 +12,18 @@ @Slf4j @Component -public class PersonSearchConsumer { +public class DollySearchServiceConsumer { private final WebClient webClient; private final TokenExchange tokenExchange; private final ServerProperties serverProperties; - public PersonSearchConsumer( + public DollySearchServiceConsumer( Consumers consumers, TokenExchange tokenExchange, WebClient.Builder webClientBuilder) { - serverProperties = consumers.getTestnavPersonSearchService(); + serverProperties = consumers.getTestnavDollySearchService(); this.webClient = webClientBuilder .baseUrl(serverProperties.getUrl()) .build(); @@ -31,13 +31,9 @@ public PersonSearchConsumer( } public PersonSearchResponse search(PersonSearch request) { - try { + return tokenExchange.exchange(serverProperties) .flatMap(accessToken -> new PersonSearchCommand(request, accessToken.getTokenValue(), webClient).call()) .block(); - } catch (Exception e) { - log.error("Feil oppsto i henting av søkeresultat.", e); - return null; - } } } diff --git a/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/InntektstubConsumer.java b/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/InntektstubConsumer.java index 472d20b2265..41d1a24eaaf 100644 --- a/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/InntektstubConsumer.java +++ b/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/InntektstubConsumer.java @@ -12,7 +12,6 @@ import java.util.Collections; import java.util.List; -import java.util.stream.Collectors; @Slf4j @@ -49,13 +48,10 @@ public List postInntekter(List inntekt } public void deleteInntekter(List identer) { - try { + log.info("Sletter ident(er) fra Inntektstub"); tokenExchange.exchange(serverProperties) .flatMap(accessToken -> new DeleteInntekterCommand(identer, accessToken.getTokenValue(), webClient).call()) .subscribe(response -> log.info("Slettet identer fra Inntektstub")); - } catch (Exception e) { - log.error("Klarte ikke slette identer fra Inntektstub: ", identer.stream().collect(Collectors.joining(", ")), e); - } } } diff --git a/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/command/arena/GetArenaBrukereCommand.java b/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/command/arena/GetArenaBrukereCommand.java index da1908ea44c..b62a781c115 100644 --- a/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/command/arena/GetArenaBrukereCommand.java +++ b/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/command/arena/GetArenaBrukereCommand.java @@ -2,6 +2,7 @@ import lombok.AllArgsConstructor; import no.nav.testnav.libs.dto.arena.testnorge.vedtak.NyeBrukereResponse; +import no.nav.testnav.libs.reactivecore.utils.WebClientFilter; import org.springframework.util.MultiValueMap; import org.springframework.web.reactive.function.client.WebClient; import reactor.core.publisher.Mono; @@ -33,6 +34,7 @@ public Mono call() { .header(CONSUMER_ID, NAV_CONSUMER_ID) .header(AUTHORIZATION, "Bearer " + token) .retrieve() - .bodyToMono(NyeBrukereResponse.class); + .bodyToMono(NyeBrukereResponse.class) + .doOnError(WebClientFilter::logErrorMessage); } } diff --git a/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/command/arena/PostArenaBrukerCommand.java b/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/command/arena/PostArenaBrukerCommand.java index 24466d9fb48..b869d7afdba 100644 --- a/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/command/arena/PostArenaBrukerCommand.java +++ b/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/command/arena/PostArenaBrukerCommand.java @@ -3,6 +3,7 @@ import lombok.extern.slf4j.Slf4j; import no.nav.testnav.libs.dto.arena.testnorge.brukere.NyBruker; import no.nav.testnav.libs.dto.arena.testnorge.vedtak.NyeBrukereResponse; +import no.nav.testnav.libs.reactivecore.utils.WebClientFilter; import org.springframework.core.ParameterizedTypeReference; import org.springframework.http.HttpHeaders; import org.springframework.http.MediaType; @@ -54,6 +55,7 @@ public Mono call() { .header(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE) .body(BodyInserters.fromPublisher(Mono.just(nyeBrukere), REQUEST_TYPE)) .retrieve() - .bodyToMono(NyeBrukereResponse.class); + .bodyToMono(NyeBrukereResponse.class) + .doOnError(WebClientFilter::logErrorMessage); } } diff --git a/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/command/arena/PostDagpengerCommand.java b/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/command/arena/PostDagpengerCommand.java index 83b1f2542c6..ca14bffc2c6 100644 --- a/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/command/arena/PostDagpengerCommand.java +++ b/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/command/arena/PostDagpengerCommand.java @@ -3,6 +3,7 @@ import lombok.AllArgsConstructor; import no.nav.testnav.libs.dto.syntvedtakshistorikkservice.v1.DagpengerRequestDTO; import no.nav.testnav.libs.dto.syntvedtakshistorikkservice.v1.DagpengerResponseDTO; +import no.nav.testnav.libs.reactivecore.utils.WebClientFilter; import org.springframework.http.HttpHeaders; import org.springframework.http.MediaType; import org.springframework.web.reactive.function.BodyInserters; @@ -31,7 +32,7 @@ public Mono call() { .header(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE) .body(BodyInserters.fromPublisher(Mono.just(request), DagpengerRequestDTO.class)) .retrieve() - .bodyToMono(DagpengerResponseDTO.class); - + .bodyToMono(DagpengerResponseDTO.class) + .doOnError(WebClientFilter::logErrorMessage); } } diff --git a/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/command/arena/PostEndreInnsatsbehovCommand.java b/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/command/arena/PostEndreInnsatsbehovCommand.java index 5bcb76375e2..640673c637d 100644 --- a/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/command/arena/PostEndreInnsatsbehovCommand.java +++ b/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/command/arena/PostEndreInnsatsbehovCommand.java @@ -3,6 +3,7 @@ import lombok.AllArgsConstructor; import no.nav.testnav.apps.syntvedtakshistorikkservice.consumer.request.arena.EndreInnsatsbehovRequest; import no.nav.testnav.apps.syntvedtakshistorikkservice.consumer.response.arena.EndreInnsatsbehovResponse; +import no.nav.testnav.libs.reactivecore.utils.WebClientFilter; import org.springframework.http.HttpHeaders; import org.springframework.http.MediaType; import org.springframework.web.reactive.function.BodyInserters; @@ -37,6 +38,7 @@ public Mono call() { .header(AUTHORIZATION, "Bearer " + token) .body(BodyInserters.fromPublisher(Mono.just(request), EndreInnsatsbehovRequest.class)) .retrieve() - .bodyToMono(EndreInnsatsbehovResponse.class); + .bodyToMono(EndreInnsatsbehovResponse.class) + .doOnError(WebClientFilter::logErrorMessage); } } diff --git a/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/command/arena/PostFinnTiltakCommand.java b/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/command/arena/PostFinnTiltakCommand.java index 26b71456bea..dd237d3c77d 100644 --- a/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/command/arena/PostFinnTiltakCommand.java +++ b/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/command/arena/PostFinnTiltakCommand.java @@ -3,6 +3,7 @@ import lombok.extern.slf4j.Slf4j; import no.nav.testnav.apps.syntvedtakshistorikkservice.consumer.request.arena.FinnTiltakRequest; import no.nav.testnav.libs.dto.arena.testnorge.vedtak.NyttVedtakResponse; +import no.nav.testnav.libs.reactivecore.utils.WebClientFilter; import org.springframework.http.HttpHeaders; import org.springframework.http.MediaType; import org.springframework.web.reactive.function.BodyInserters; @@ -49,7 +50,8 @@ public Mono call() { .header(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE) .body(BodyInserters.fromPublisher(Mono.just(rettighet), FinnTiltakRequest.class)) .retrieve() - .bodyToMono(NyttVedtakResponse.class); + .bodyToMono(NyttVedtakResponse.class) + .doOnError(WebClientFilter::logErrorMessage); } } diff --git a/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/command/arena/PostRettighetCommand.java b/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/command/arena/PostRettighetCommand.java index 1635ae42c90..b7cff151922 100644 --- a/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/command/arena/PostRettighetCommand.java +++ b/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/command/arena/PostRettighetCommand.java @@ -3,6 +3,7 @@ import lombok.AllArgsConstructor; import no.nav.testnav.apps.syntvedtakshistorikkservice.consumer.request.arena.rettighet.RettighetRequest; import no.nav.testnav.libs.dto.arena.testnorge.vedtak.NyttVedtakResponse; +import no.nav.testnav.libs.reactivecore.utils.WebClientFilter; import org.springframework.http.HttpHeaders; import org.springframework.http.MediaType; import org.springframework.web.reactive.function.BodyInserters; @@ -37,7 +38,8 @@ public Mono call() { .header(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE) .body(BodyInserters.fromPublisher(Mono.just(rettighet), RettighetRequest.class)) .retrieve() - .bodyToMono(NyttVedtakResponse.class); + .bodyToMono(NyttVedtakResponse.class) + .doOnError(WebClientFilter::logErrorMessage); } } diff --git a/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/command/arena/SlettArenaBrukerCommand.java b/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/command/arena/SlettArenaBrukerCommand.java index fe5392e04c0..4893e01fc93 100644 --- a/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/command/arena/SlettArenaBrukerCommand.java +++ b/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/command/arena/SlettArenaBrukerCommand.java @@ -5,7 +5,7 @@ import lombok.extern.slf4j.Slf4j; import no.nav.testnav.apps.syntvedtakshistorikkservice.consumer.util.Headers; -import no.nav.testnav.apps.syntvedtakshistorikkservice.consumer.util.WebClientFilter; +import no.nav.testnav.libs.reactivecore.utils.WebClientFilter; import org.springframework.http.ResponseEntity; import org.springframework.web.reactive.function.client.WebClient; import reactor.core.publisher.Mono; @@ -41,6 +41,7 @@ public Mono> call() { .header(Headers.CONSUMER_ID, Headers.NAV_CONSUMER_ID) .retrieve() .toEntity(JsonNode.class) + .doOnError(WebClientFilter::logErrorMessage) .retryWhen(Retry.backoff(3, Duration.ofSeconds(5)) .filter(WebClientFilter::is5xxException)); } diff --git a/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/command/fastedata/GetOrganisasjonerCommand.java b/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/command/fastedata/GetOrganisasjonerCommand.java index 2751e0cb118..f44803064bd 100644 --- a/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/command/fastedata/GetOrganisasjonerCommand.java +++ b/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/command/fastedata/GetOrganisasjonerCommand.java @@ -2,7 +2,7 @@ import lombok.RequiredArgsConstructor; import no.nav.testnav.apps.syntvedtakshistorikkservice.consumer.response.fastedata.Organisasjon; -import no.nav.testnav.apps.syntvedtakshistorikkservice.consumer.util.WebClientFilter; +import no.nav.testnav.libs.reactivecore.utils.WebClientFilter; import org.springframework.core.ParameterizedTypeReference; import org.springframework.web.reactive.function.client.WebClient; import reactor.core.publisher.Mono; @@ -33,6 +33,7 @@ public Mono> call() { .header(AUTHORIZATION, "Bearer " + token) .retrieve() .bodyToMono(RESPONSE_TYPE) + .doOnError(WebClientFilter::logErrorMessage) .retryWhen(Retry.backoff(3, Duration.ofSeconds(5)) .filter(WebClientFilter::is5xxException)); diff --git a/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/command/inntektstub/DeleteInntekterCommand.java b/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/command/inntektstub/DeleteInntekterCommand.java index e8ed44ef582..e855c0c0951 100644 --- a/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/command/inntektstub/DeleteInntekterCommand.java +++ b/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/command/inntektstub/DeleteInntekterCommand.java @@ -1,6 +1,7 @@ package no.nav.testnav.apps.syntvedtakshistorikkservice.consumer.command.inntektstub; import lombok.AllArgsConstructor; +import no.nav.testnav.libs.reactivecore.utils.WebClientFilter; import org.springframework.http.HttpHeaders; import org.springframework.web.reactive.function.client.WebClient; import reactor.core.publisher.Mono; @@ -25,7 +26,8 @@ public Mono call() { .build()) .header(HttpHeaders.AUTHORIZATION, "Bearer " + token) .retrieve() - .bodyToMono(Void.class); + .bodyToMono(Void.class) + .doOnError(WebClientFilter::logErrorMessage); } } diff --git a/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/command/inntektstub/PostInntekterCommand.java b/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/command/inntektstub/PostInntekterCommand.java index 81758d3c40d..7f11c5ed16d 100644 --- a/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/command/inntektstub/PostInntekterCommand.java +++ b/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/command/inntektstub/PostInntekterCommand.java @@ -2,6 +2,7 @@ import lombok.AllArgsConstructor; import no.nav.testnav.apps.syntvedtakshistorikkservice.domain.inntektstub.Inntektsinformasjon; +import no.nav.testnav.libs.reactivecore.utils.WebClientFilter; import org.springframework.core.ParameterizedTypeReference; import org.springframework.http.HttpHeaders; import org.springframework.web.reactive.function.client.WebClient; @@ -30,7 +31,8 @@ public Mono> call() { .header(HttpHeaders.AUTHORIZATION, "Bearer " + token) .bodyValue(inntektsinformasjon) .retrieve() - .bodyToMono(RESPONSE_TYPE); + .bodyToMono(RESPONSE_TYPE) + .doOnError(WebClientFilter::logErrorMessage); } } diff --git a/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/command/pdl/GetPdlPersonCommand.java b/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/command/pdl/GetPdlPersonCommand.java index 88e98a6cfff..456fdaf00ae 100644 --- a/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/command/pdl/GetPdlPersonCommand.java +++ b/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/command/pdl/GetPdlPersonCommand.java @@ -3,7 +3,7 @@ import lombok.RequiredArgsConstructor; import no.nav.testnav.apps.syntvedtakshistorikkservice.consumer.request.pdl.GraphQLRequest; import no.nav.testnav.apps.syntvedtakshistorikkservice.consumer.response.pdl.PdlPerson; -import no.nav.testnav.apps.syntvedtakshistorikkservice.consumer.util.WebClientFilter; +import no.nav.testnav.libs.reactivecore.utils.WebClientFilter; import org.springframework.web.reactive.function.BodyInserters; import org.springframework.web.reactive.function.client.WebClient; import reactor.core.publisher.Mono; @@ -41,6 +41,7 @@ public Mono call() { .fromValue(new GraphQLRequest(query, Map.of("ident", ident, "historikk", true)))) .retrieve() .bodyToMono(PdlPerson.class) + .doOnError(WebClientFilter::logErrorMessage) .retryWhen(Retry.backoff(3, Duration.ofSeconds(5)) .filter(WebClientFilter::is5xxException)); diff --git a/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/command/pdl/GetPdlPersonerCommand.java b/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/command/pdl/GetPdlPersonerCommand.java index f9cad520b32..90d02c3b422 100644 --- a/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/command/pdl/GetPdlPersonerCommand.java +++ b/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/command/pdl/GetPdlPersonerCommand.java @@ -3,7 +3,7 @@ import lombok.RequiredArgsConstructor; import no.nav.testnav.apps.syntvedtakshistorikkservice.consumer.request.pdl.GraphQLRequest; import no.nav.testnav.apps.syntvedtakshistorikkservice.consumer.response.pdl.PdlPersonBolk; -import no.nav.testnav.apps.syntvedtakshistorikkservice.consumer.util.WebClientFilter; +import no.nav.testnav.libs.reactivecore.utils.WebClientFilter; import org.springframework.web.reactive.function.BodyInserters; import org.springframework.web.reactive.function.client.WebClient; import reactor.core.publisher.Mono; @@ -42,6 +42,7 @@ public Mono call() { .fromValue(new GraphQLRequest(query, Map.of("identer", identer)))) .retrieve() .bodyToMono(PdlPersonBolk.class) + .doOnError(WebClientFilter::logErrorMessage) .retryWhen(Retry.backoff(3, Duration.ofSeconds(5)) .filter(WebClientFilter::is5xxException)); diff --git a/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/command/pdl/TagsOpprettingCommand.java b/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/command/pdl/TagsOpprettingCommand.java index 770c91b2aab..6c27ed8226c 100644 --- a/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/command/pdl/TagsOpprettingCommand.java +++ b/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/command/pdl/TagsOpprettingCommand.java @@ -4,8 +4,8 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import no.nav.testnav.apps.syntvedtakshistorikkservice.consumer.util.WebClientFilter; import no.nav.testnav.apps.syntvedtakshistorikkservice.domain.Tags; +import no.nav.testnav.libs.reactivecore.utils.WebClientFilter; import org.springframework.http.HttpHeaders; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; @@ -43,6 +43,7 @@ public Mono> call() { .body(BodyInserters.fromValue(identer)) .retrieve() .toEntity(JsonNode.class) + .doOnError(WebClientFilter::logErrorMessage) .retryWhen(Retry.backoff(3, Duration.ofSeconds(5)) .filter(WebClientFilter::is5xxException)); } diff --git a/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/command/pdl/TagsSlettingCommand.java b/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/command/pdl/TagsSlettingCommand.java index 8eab15ebe7b..61b0ec38963 100644 --- a/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/command/pdl/TagsSlettingCommand.java +++ b/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/command/pdl/TagsSlettingCommand.java @@ -3,8 +3,8 @@ import com.fasterxml.jackson.databind.JsonNode; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import no.nav.testnav.apps.syntvedtakshistorikkservice.consumer.util.WebClientFilter; import no.nav.testnav.apps.syntvedtakshistorikkservice.domain.Tags; +import no.nav.testnav.libs.reactivecore.utils.WebClientFilter; import org.springframework.http.HttpHeaders; import org.springframework.http.ResponseEntity; import org.springframework.web.reactive.function.client.WebClient; @@ -39,6 +39,7 @@ public Mono> call() { .header(HttpHeaders.AUTHORIZATION, "Bearer " + token) .retrieve() .toEntity(JsonNode.class) + .doOnError(WebClientFilter::logErrorMessage) .retryWhen(Retry.backoff(3, Duration.ofSeconds(5)) .filter(WebClientFilter::is5xxException)); } diff --git a/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/command/pensjon/PostPensjonTestdataInntektCommand.java b/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/command/pensjon/PostPensjonTestdataInntektCommand.java index 5e510272df2..bcf0681f44d 100644 --- a/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/command/pensjon/PostPensjonTestdataInntektCommand.java +++ b/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/command/pensjon/PostPensjonTestdataInntektCommand.java @@ -3,7 +3,7 @@ import lombok.extern.slf4j.Slf4j; import no.nav.testnav.apps.syntvedtakshistorikkservice.consumer.request.pensjon.PensjonTestdataInntekt; import no.nav.testnav.apps.syntvedtakshistorikkservice.consumer.response.pensjon.PensjonTestdataResponse; -import no.nav.testnav.apps.syntvedtakshistorikkservice.consumer.util.WebClientFilter; +import no.nav.testnav.libs.reactivecore.utils.WebClientFilter; import org.springframework.http.HttpHeaders; import org.springframework.http.MediaType; import org.springframework.web.reactive.function.BodyInserters; @@ -46,6 +46,7 @@ public Mono call() { .body(BodyInserters.fromPublisher(Mono.just(inntekt), PensjonTestdataInntekt.class)) .retrieve() .bodyToMono(PensjonTestdataResponse.class) + .doOnError(WebClientFilter::logErrorMessage) .retryWhen(Retry.backoff(3, Duration.ofSeconds(5)) .filter(WebClientFilter::is5xxException)); } diff --git a/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/command/pensjon/PostPensjonTestdataPersonCommand.java b/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/command/pensjon/PostPensjonTestdataPersonCommand.java index 7117f9c88dd..82b5c8316f1 100644 --- a/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/command/pensjon/PostPensjonTestdataPersonCommand.java +++ b/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/command/pensjon/PostPensjonTestdataPersonCommand.java @@ -3,7 +3,7 @@ import lombok.extern.slf4j.Slf4j; import no.nav.testnav.apps.syntvedtakshistorikkservice.consumer.request.pensjon.PensjonTestdataPerson; import no.nav.testnav.apps.syntvedtakshistorikkservice.consumer.response.pensjon.PensjonTestdataResponse; -import no.nav.testnav.apps.syntvedtakshistorikkservice.consumer.util.WebClientFilter; +import no.nav.testnav.libs.reactivecore.utils.WebClientFilter; import org.springframework.http.HttpHeaders; import org.springframework.http.MediaType; import org.springframework.web.reactive.function.BodyInserters; @@ -47,6 +47,7 @@ public Mono call() { .body(BodyInserters.fromPublisher(Mono.just(person), PensjonTestdataPerson.class)) .retrieve() .bodyToMono(PensjonTestdataResponse.class) + .doOnError(WebClientFilter::logErrorMessage) .retryWhen(Retry.backoff(3, Duration.ofSeconds(5)) .filter(WebClientFilter::is5xxException)); } diff --git a/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/command/search/PersonSearchCommand.java b/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/command/search/PersonSearchCommand.java index 6e008615170..755efa03f0f 100644 --- a/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/command/search/PersonSearchCommand.java +++ b/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/command/search/PersonSearchCommand.java @@ -2,9 +2,9 @@ import lombok.AllArgsConstructor; import no.nav.testnav.apps.syntvedtakshistorikkservice.consumer.response.search.PersonSearchResponse; -import no.nav.testnav.apps.syntvedtakshistorikkservice.consumer.util.WebClientFilter; -import no.nav.testnav.libs.dto.personsearchservice.v1.PersonDTO; -import no.nav.testnav.libs.dto.personsearchservice.v1.search.PersonSearch; +import no.nav.testnav.libs.data.dollysearchservice.v1.legacy.PersonDTO; +import no.nav.testnav.libs.data.dollysearchservice.v1.legacy.PersonSearch; +import no.nav.testnav.libs.reactivecore.utils.WebClientFilter; import org.springframework.core.ParameterizedTypeReference; import org.springframework.web.reactive.function.BodyInserters; import org.springframework.web.reactive.function.client.WebClient; @@ -32,7 +32,7 @@ public class PersonSearchCommand implements Callable> public Mono call() { return webClient.post() .uri(builder -> - builder.path("/api/v1/person") + builder.path("/api/v1/legacy") .build() ) .header(AUTHORIZATION, "Bearer " + token) @@ -44,7 +44,9 @@ public Mono call() { var numberOfItems = headers != null && !headers.isEmpty() ? headers.get(0) : "0"; return Mono.just(new PersonSearchResponse(Integer.parseInt(numberOfItems), entity.getBody())); }) + .doOnError(WebClientFilter::logErrorMessage) .retryWhen(Retry.backoff(3, Duration.ofSeconds(5)) - .filter(WebClientFilter::is5xxException)); + .filter(WebClientFilter::is5xxException)) + .onErrorResume(error -> Mono.empty()); } } diff --git a/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/command/synt/HentDagpengevedtakCommand.java b/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/command/synt/HentDagpengevedtakCommand.java index 14a66d55de2..3d0f08bad99 100644 --- a/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/command/synt/HentDagpengevedtakCommand.java +++ b/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/command/synt/HentDagpengevedtakCommand.java @@ -2,9 +2,9 @@ import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; -import no.nav.testnav.apps.syntvedtakshistorikkservice.consumer.util.WebClientFilter; import no.nav.testnav.libs.dto.syntvedtakshistorikkservice.v1.DagpengevedtakDTO; import no.nav.testnav.libs.dto.syntvedtakshistorikkservice.v1.dagpenger.Dagpengerettighet; +import no.nav.testnav.libs.reactivecore.utils.WebClientFilter; import org.springframework.core.ParameterizedTypeReference; import org.springframework.web.reactive.function.BodyInserters; import org.springframework.web.reactive.function.client.WebClient; @@ -43,6 +43,7 @@ public Mono> call() { .body(BodyInserters.fromPublisher(Mono.just(oppstartsdatoer), REQUEST_TYPE)) .retrieve() .bodyToMono(RESPONSE_TYPE) + .doOnError(WebClientFilter::logErrorMessage) .retryWhen(Retry.backoff(3, Duration.ofSeconds(5)) .filter(WebClientFilter::is5xxException)); } diff --git a/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/command/synt/HentVedtakshistorikkCommand.java b/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/command/synt/HentVedtakshistorikkCommand.java index ab360018e23..108d6806668 100644 --- a/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/command/synt/HentVedtakshistorikkCommand.java +++ b/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/command/synt/HentVedtakshistorikkCommand.java @@ -2,8 +2,8 @@ import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; -import no.nav.testnav.apps.syntvedtakshistorikkservice.consumer.util.WebClientFilter; import no.nav.testnav.libs.dto.arena.testnorge.historikk.Vedtakshistorikk; +import no.nav.testnav.libs.reactivecore.utils.WebClientFilter; import org.springframework.core.ParameterizedTypeReference; import org.springframework.web.reactive.function.BodyInserters; import org.springframework.web.reactive.function.client.WebClient; @@ -41,6 +41,7 @@ public Mono> call() { .body(BodyInserters.fromPublisher(Mono.just(oppstartsdatoer), REQUEST_TYPE)) .retrieve() .bodyToMono(RESPONSE_TYPE) + .doOnError(WebClientFilter::logErrorMessage) .retryWhen(Retry.backoff(3, Duration.ofSeconds(5)) .filter(WebClientFilter::is5xxException)); } diff --git a/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/response/search/PersonSearchResponse.java b/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/response/search/PersonSearchResponse.java index dcc4abd47f7..cf1799e68b8 100644 --- a/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/response/search/PersonSearchResponse.java +++ b/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/response/search/PersonSearchResponse.java @@ -5,7 +5,7 @@ import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; -import no.nav.testnav.libs.dto.personsearchservice.v1.PersonDTO; +import no.nav.testnav.libs.data.dollysearchservice.v1.legacy.PersonDTO; import java.util.List; diff --git a/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/util/WebClientFilter.java b/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/util/WebClientFilter.java deleted file mode 100644 index 9d4fc2cbc8a..00000000000 --- a/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/util/WebClientFilter.java +++ /dev/null @@ -1,14 +0,0 @@ -package no.nav.testnav.apps.syntvedtakshistorikkservice.consumer.util; - -import lombok.experimental.UtilityClass; -import org.springframework.web.reactive.function.client.WebClientResponseException; - -@UtilityClass -public class WebClientFilter { - - public static boolean is5xxException(Throwable throwable) { - - return throwable instanceof WebClientResponseException wce && - wce.getStatusCode().is5xxServerError(); - } -} diff --git a/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/provider/BatchController.java b/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/provider/BatchController.java index 5c904b05641..2c4165ddf34 100644 --- a/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/provider/BatchController.java +++ b/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/provider/BatchController.java @@ -9,7 +9,7 @@ import no.nav.testnav.apps.syntvedtakshistorikkservice.service.IdentService; import no.nav.testnav.apps.syntvedtakshistorikkservice.service.TagsService; import no.nav.testnav.apps.syntvedtakshistorikkservice.service.VedtakshistorikkService; -import no.nav.testnav.libs.dto.personsearchservice.v1.PersonDTO; +import no.nav.testnav.libs.data.dollysearchservice.v1.legacy.PersonDTO; import org.springframework.beans.factory.annotation.Value; import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.scheduling.annotation.Scheduled; @@ -72,7 +72,6 @@ public void genererBrukereMedOppfoelgingBatch() { /** * PÅ VENT: bytt fra forenklet versjon til versjon som oppretter dagpengesoknad og vedtak * når synt-dagpenger har fått trent på bedre uttrekk - * * Denne metoden oppretter dagpengevedtak i Arena. Metoden kjører hver natt kl 00:30. */ @Scheduled(cron = "0 30 0 * * *") diff --git a/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/provider/BrukerController.java b/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/provider/BrukerController.java index b46de3b0db8..2f6f74df3c1 100644 --- a/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/provider/BrukerController.java +++ b/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/provider/BrukerController.java @@ -6,8 +6,8 @@ import no.nav.testnav.apps.syntvedtakshistorikkservice.service.TagsService; import no.nav.testnav.apps.syntvedtakshistorikkservice.service.ArenaForvalterService; import no.nav.testnav.apps.syntvedtakshistorikkservice.service.ArenaDagpengerService; +import no.nav.testnav.libs.data.dollysearchservice.v1.legacy.PersonDTO; import no.nav.testnav.libs.dto.arena.testnorge.vedtak.NyeBrukereResponse; -import no.nav.testnav.libs.dto.personsearchservice.v1.PersonDTO; import no.nav.testnav.libs.dto.syntvedtakshistorikkservice.v1.DagpengerResponseDTO; import no.nav.testnav.apps.syntvedtakshistorikkservice.provider.request.SyntetiserArenaRequest; import org.springframework.web.bind.annotation.PostMapping; diff --git a/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/service/ArenaAapService.java b/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/service/ArenaAapService.java index 0adb91c8261..da02d758846 100644 --- a/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/service/ArenaAapService.java +++ b/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/service/ArenaAapService.java @@ -2,9 +2,9 @@ import lombok.RequiredArgsConstructor; import no.nav.testnav.apps.syntvedtakshistorikkservice.consumer.request.arena.rettighet.RettighetRequest; +import no.nav.testnav.libs.data.dollysearchservice.v1.legacy.PersonDTO; import no.nav.testnav.libs.dto.arena.testnorge.historikk.Vedtakshistorikk; import no.nav.testnav.libs.dto.arena.testnorge.vedtak.NyttVedtakAap; -import no.nav.testnav.libs.dto.personsearchservice.v1.PersonDTO; import org.springframework.stereotype.Service; import java.time.temporal.ChronoUnit; diff --git a/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/service/ArenaForvalterService.java b/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/service/ArenaForvalterService.java index e0a8145f385..5e3109596e1 100644 --- a/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/service/ArenaForvalterService.java +++ b/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/service/ArenaForvalterService.java @@ -8,6 +8,7 @@ import no.nav.testnav.apps.syntvedtakshistorikkservice.service.exception.ArbeidssoekerException; import no.nav.testnav.apps.syntvedtakshistorikkservice.service.exception.VedtakshistorikkException; import no.nav.testnav.apps.syntvedtakshistorikkservice.service.util.ArenaBrukerUtils; +import no.nav.testnav.libs.data.dollysearchservice.v1.legacy.PersonDTO; import no.nav.testnav.libs.dto.arena.testnorge.brukere.Kvalifiseringsgrupper; import no.nav.testnav.libs.dto.arena.testnorge.brukere.NyBruker; import no.nav.testnav.libs.dto.arena.testnorge.brukere.NyEndreInnsatsbehov; @@ -17,7 +18,6 @@ import no.nav.testnav.libs.dto.arena.testnorge.vedtak.NyttVedtakResponse; import no.nav.testnav.libs.dto.arena.testnorge.vedtak.NyttVedtakTiltak; import no.nav.testnav.libs.dto.arena.testnorge.vedtak.RettighetType; -import no.nav.testnav.libs.dto.personsearchservice.v1.PersonDTO; import no.nav.testnav.libs.dto.syntvedtakshistorikkservice.v1.DagpengerRequestDTO; import no.nav.testnav.libs.dto.syntvedtakshistorikkservice.v1.DagpengerResponseDTO; import org.apache.commons.lang3.StringUtils; diff --git a/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/service/ArenaTiltakService.java b/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/service/ArenaTiltakService.java index ab143df09e8..f2fdc903061 100644 --- a/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/service/ArenaTiltakService.java +++ b/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/service/ArenaTiltakService.java @@ -12,6 +12,7 @@ import no.nav.testnav.apps.syntvedtakshistorikkservice.service.util.RequestUtils; import no.nav.testnav.apps.syntvedtakshistorikkservice.service.util.ServiceUtils; +import no.nav.testnav.libs.data.dollysearchservice.v1.legacy.PersonDTO; import no.nav.testnav.libs.dto.arena.testnorge.brukere.Deltakerstatuser; import no.nav.testnav.libs.dto.arena.testnorge.brukere.Kvalifiseringsgrupper; import no.nav.testnav.libs.dto.arena.testnorge.historikk.Vedtakshistorikk; @@ -19,7 +20,6 @@ import no.nav.testnav.libs.dto.arena.testnorge.vedtak.NyttVedtak; import no.nav.testnav.libs.dto.arena.testnorge.vedtak.NyttVedtakAap; import no.nav.testnav.libs.dto.arena.testnorge.vedtak.NyttVedtakTiltak; -import no.nav.testnav.libs.dto.personsearchservice.v1.PersonDTO; import org.springframework.stereotype.Service; import java.io.IOException; diff --git a/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/service/IdentService.java b/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/service/IdentService.java index 9f250bc1bf2..b61a6af68fe 100644 --- a/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/service/IdentService.java +++ b/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/service/IdentService.java @@ -6,20 +6,18 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import no.nav.testnav.apps.syntvedtakshistorikkservice.consumer.PdlProxyConsumer; -import no.nav.testnav.apps.syntvedtakshistorikkservice.consumer.PersonSearchConsumer; +import no.nav.testnav.apps.syntvedtakshistorikkservice.consumer.DollySearchServiceConsumer; import no.nav.testnav.apps.syntvedtakshistorikkservice.consumer.response.pdl.PdlPerson; import no.nav.testnav.apps.syntvedtakshistorikkservice.consumer.response.pdl.PdlPersonBolk; import no.nav.testnav.apps.syntvedtakshistorikkservice.domain.IdentMedKontonr; import no.nav.testnav.apps.syntvedtakshistorikkservice.domain.Kontoinfo; -import no.nav.testnav.libs.dto.personsearchservice.v1.PersonDTO; -import no.nav.testnav.libs.dto.personsearchservice.v1.search.AlderSearch; -import no.nav.testnav.libs.dto.personsearchservice.v1.search.PersonSearch; -import no.nav.testnav.libs.dto.personsearchservice.v1.search.PersonstatusSearch; -import no.nav.testnav.libs.dto.personsearchservice.v1.search.RelasjonSearch; +import no.nav.testnav.libs.data.dollysearchservice.v1.legacy.PersonDTO; +import no.nav.testnav.libs.data.dollysearchservice.v1.legacy.PersonSearch; import org.springframework.stereotype.Service; import java.io.IOException; import java.net.URL; +import java.security.SecureRandom; import java.time.LocalDate; import java.time.temporal.ChronoUnit; import java.util.*; @@ -32,13 +30,13 @@ @RequiredArgsConstructor public class IdentService { - private final PersonSearchConsumer personSearchConsumer; + private final DollySearchServiceConsumer dollySearchServiceConsumer; private final ArenaForvalterService arenaForvalterService; private final PdlProxyConsumer pdlProxyConsumer; - private final Random rand = new Random(); + private final Random RANDOM = new SecureRandom(); private static final int MAX_SEARCH_REQUESTS = 20; private static final int PAGE_SIZE = 10; - private static final String BOSATT_STATUS = "bosatt"; + private static final String BOSATT_STATUS = "BOSATT"; private static final List IDENTER_MED_KONTONR; static { @@ -64,11 +62,11 @@ public List getUtvalgteIdenterIAldersgruppe( ) { List utvalgteIdenter = new ArrayList<>(antallNyeIdenter); - var randomSeed = rand.nextFloat() + ""; - var page = 1; + var randomSeed = RANDOM.nextInt(); + var page = 0; while (page < MAX_SEARCH_REQUESTS && utvalgteIdenter.size() < antallNyeIdenter) { var request = getSearchRequest(randomSeed, page, minimumAlder, maksimumAlder, maaVaereBosatt ? BOSATT_STATUS : null, null); - var response = personSearchConsumer.search(request); + var response = dollySearchServiceConsumer.search(request); var numberOfPages = 0; if (nonNull(response)) { @@ -97,11 +95,11 @@ public List getUtvalgteIdenterIAldersgruppeMedBarnUnder18( ) { List utvalgteIdenter = new ArrayList<>(); - var randomSeed = rand.nextFloat() + ""; - var page = 1; + var randomSeed = RANDOM.nextInt(); + var page = 0; while (page < MAX_SEARCH_REQUESTS && utvalgteIdenter.size() < antallNyeIdenter) { var request = getSearchRequest(randomSeed, page, minimumAlder, maksimumAlder, maaVaereBosatt ? BOSATT_STATUS: null, true); - var response = personSearchConsumer.search(request); + var response = dollySearchServiceConsumer.search(request); var numberOfPages = 0; if (nonNull(response)){ @@ -152,7 +150,7 @@ private boolean under18VedTidspunkt(PdlPersonBolk.PersonBolk personBolk, LocalDa } public Kontoinfo getIdentMedKontoinformasjon() { - var ident = IDENTER_MED_KONTONR.get(rand.nextInt(IDENTER_MED_KONTONR.size())); + var ident = IDENTER_MED_KONTONR.get(RANDOM.nextInt(IDENTER_MED_KONTONR.size())); var pdlPerson = pdlProxyConsumer.getPdlPerson(ident.getIdent()); if (isNull(pdlPerson) || isNull(pdlPerson.getData())) return null; var navnInfo = pdlPerson.getData().getHentPerson().getNavn(); @@ -178,7 +176,7 @@ private String getAdresseLinje(List boadresse) { } private PersonSearch getSearchRequest( - String randomSeed, + int randomSeed, int page, int minimumAlder, int maksimumAlder, @@ -186,31 +184,28 @@ private PersonSearch getSearchRequest( Boolean harBarn ) { var request = PersonSearch.builder() - .tag("TESTNORGE") - .excludeTags(Arrays.asList("DOLLY", "ARENASYNT")) .kunLevende(true) .randomSeed(randomSeed) .page(page) .pageSize(PAGE_SIZE) - .alder(AlderSearch.builder() - .fra((short) minimumAlder) - .til((short) maksimumAlder) + .alder(PersonSearch.AlderSearch.builder() + .fra(minimumAlder) + .til(maksimumAlder) .build()) .build(); if (nonNull(personstatus) && !personstatus.isEmpty()) { - request.setPersonstatus(PersonstatusSearch.builder() + request.setPersonstatus(PersonSearch.PersonstatusSearch.builder() .status(personstatus) .build()); } if (nonNull(harBarn) && Boolean.TRUE.equals(harBarn)) { - request.setRelasjoner(RelasjonSearch.builder() - .harBarn("Y") + request.setRelasjoner(PersonSearch.RelasjonSearch.builder() + .harBarn(true) .build()); } return request; - } } diff --git a/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/service/PensjonService.java b/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/service/PensjonService.java index 80d13cf8268..85047bea98c 100644 --- a/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/service/PensjonService.java +++ b/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/service/PensjonService.java @@ -6,7 +6,7 @@ import no.nav.testnav.apps.syntvedtakshistorikkservice.consumer.PensjonTestdataFacadeConsumer; import no.nav.testnav.apps.syntvedtakshistorikkservice.consumer.request.pensjon.PensjonTestdataInntekt; import no.nav.testnav.apps.syntvedtakshistorikkservice.consumer.request.pensjon.PensjonTestdataPerson; -import no.nav.testnav.libs.dto.personsearchservice.v1.PersonDTO; +import no.nav.testnav.libs.data.dollysearchservice.v1.legacy.PersonDTO; import org.springframework.stereotype.Service; import java.time.LocalDate; diff --git a/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/service/TagsService.java b/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/service/TagsService.java index c3d65af1b38..0cf1ab0ab6d 100644 --- a/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/service/TagsService.java +++ b/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/service/TagsService.java @@ -3,8 +3,7 @@ import lombok.RequiredArgsConstructor; import no.nav.testnav.apps.syntvedtakshistorikkservice.consumer.PdlProxyConsumer; import no.nav.testnav.apps.syntvedtakshistorikkservice.domain.Tags; -import no.nav.testnav.libs.dto.personsearchservice.v1.PersonDTO; -import no.nav.testnav.libs.dto.personsearchservice.v1.SivilstandDTO; +import no.nav.testnav.libs.data.dollysearchservice.v1.legacy.PersonDTO; import org.springframework.stereotype.Service; import java.util.ArrayList; @@ -25,7 +24,7 @@ public boolean opprettetTagsPaaIdenterOgPartner(List personer) { var identer = new ArrayList<>(personer.stream().map(PersonDTO::getIdent).toList()); var partnere = personer.stream() .map(PersonDTO::getSivilstand) - .map(SivilstandDTO::getRelatertVedSivilstand) + .map(PersonDTO.SivilstandDTO::getRelatertVedSivilstand) .filter(Objects::nonNull) .toList(); diff --git a/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/service/VedtakshistorikkService.java b/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/service/VedtakshistorikkService.java index f1078d9561a..613d501f110 100644 --- a/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/service/VedtakshistorikkService.java +++ b/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/service/VedtakshistorikkService.java @@ -17,10 +17,10 @@ import no.nav.testnav.apps.syntvedtakshistorikkservice.consumer.request.arena.rettighet.RettighetRequest; import no.nav.testnav.apps.syntvedtakshistorikkservice.consumer.SyntVedtakshistorikkConsumer; +import no.nav.testnav.libs.data.dollysearchservice.v1.legacy.PersonDTO; import no.nav.testnav.libs.dto.arena.testnorge.historikk.Vedtakshistorikk; import no.nav.testnav.libs.dto.arena.testnorge.vedtak.NyttVedtakResponse; import no.nav.testnav.libs.dto.arena.testnorge.vedtak.NyttVedtakTiltak; -import no.nav.testnav.libs.dto.personsearchservice.v1.PersonDTO; import org.springframework.stereotype.Service; diff --git a/apps/synt-vedtakshistorikk-service/src/main/resources/application-local.yml b/apps/synt-vedtakshistorikk-service/src/main/resources/application-local.yml index 5c9df20db26..2e7b01e0c9a 100644 --- a/apps/synt-vedtakshistorikk-service/src/main/resources/application-local.yml +++ b/apps/synt-vedtakshistorikk-service/src/main/resources/application-local.yml @@ -13,7 +13,7 @@ consumers: url: https://synthdata-arena-vedtakshistorikk.intern.dev.nav.no synt-dagpenger: url: https://synthdata-arena-dagpenger.intern.dev.nav.no - testnav-person-search-service: - url: https://testnav-person-search-service.intern.dev.nav.no + testnav-dolly-search-service: + url: https://testnav-dolly-search-service.intern.dev.nav.no testnav-organisasjon-faste-data-service: url: https://testnav-organisasjon-faste-data-service.intern.dev.nav.no \ No newline at end of file diff --git a/apps/synt-vedtakshistorikk-service/src/main/resources/application.yml b/apps/synt-vedtakshistorikk-service/src/main/resources/application.yml index d9eb83b7ce1..bf4de9f3e13 100644 --- a/apps/synt-vedtakshistorikk-service/src/main/resources/application.yml +++ b/apps/synt-vedtakshistorikk-service/src/main/resources/application.yml @@ -12,6 +12,11 @@ spring: issuer-uri: ${AZURE_OPENID_CONFIG_ISSUER} accepted-audience: ${AZURE_APP_CLIENT_ID}, api:// ${AZURE_APP_CLIENT_ID} +management: + health: + elasticsearch: + enabled: false + consumers: synt-vedtakshistorikk: url: http://synthdata-arena-vedtakshistorikk.dolly.svc.cluster.local @@ -33,11 +38,11 @@ consumers: namespace: dolly name: testnav-pensjon-testdata-facade-proxy url: https://testnav-pensjon-testdata-facade-proxy.dev-fss-pub.nais.io - testnav-person-search-service: + testnav-dolly-search-service: cluster: dev-gcp namespace: dolly - name: testnav-person-search-service - url: http://testnav-person-search-service.dolly.svc.cluster.local + name: testnav-dolly-search-service + url: http://testnav-dolly-search-service.dolly.svc.cluster.local pdl-api-proxy: cluster: dev-fss namespace: dolly diff --git a/apps/synt-vedtakshistorikk-service/src/test/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/ArenaForvalterConsumerTest.java b/apps/synt-vedtakshistorikk-service/src/test/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/ArenaForvalterConsumerTest.java index 0a6b1fb5f9c..0151f047f77 100644 --- a/apps/synt-vedtakshistorikk-service/src/test/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/ArenaForvalterConsumerTest.java +++ b/apps/synt-vedtakshistorikk-service/src/test/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/ArenaForvalterConsumerTest.java @@ -69,19 +69,19 @@ void hentBrukereTest() { } private void stubHentBrukere() { - stubFor(get(urlEqualTo("/arena/api/v1/bruker")) + stubFor(get(urlEqualTo("/api/v1/bruker")) .willReturn(ok() .withHeader("Content-Type", "application/json") .withBody(getResourceFileContent("files/arena/arena_brukere_page_0.json")) ) ); - stubFor(get(urlEqualTo("/arena/api/v1/bruker?page=0")) + stubFor(get(urlEqualTo("/api/v1/bruker?page=0")) .willReturn(ok() .withHeader("Content-Type", "application/json") .withBody(getResourceFileContent("files/arena/arena_brukere_page_0.json")) ) ); - stubFor(get(urlEqualTo("/arena/api/v1/bruker?page=1")) + stubFor(get(urlEqualTo("/api/v1/bruker?page=1")) .willReturn(ok() .withHeader("Content-Type", "application/json") .withBody(getResourceFileContent("files/arena/arena_brukere_page_1.json")) @@ -101,19 +101,19 @@ void getBrukereFilterTest() { private void stubHentBrukereFilter() { - stubFor(get(urlEqualTo("/arena/api/v1/bruker?filter-eier=Dolly&filter-miljoe=q2&filter-personident=10101010101")) + stubFor(get(urlEqualTo("/api/v1/bruker?filter-eier=Dolly&filter-miljoe=q2&filter-personident=10101010101")) .willReturn(ok() .withHeader("Content-Type", "application/json") .withBody(getResourceFileContent("files/arena/all_filters_page_0.json")) ) ); - stubFor(get(urlEqualTo("/arena/api/v1/bruker?filter-eier=Dolly&filter-miljoe=q2&filter-personident=10101010101&page=0")) + stubFor(get(urlEqualTo("/api/v1/bruker?filter-eier=Dolly&filter-miljoe=q2&filter-personident=10101010101&page=0")) .willReturn(ok() .withHeader("Content-Type", "application/json") .withBody(getResourceFileContent("files/arena/all_filters_page_0.json")) ) ); - stubFor(get(urlEqualTo("/arena/api/v1/bruker?filter-eier=Dolly&filter-miljoe=q2&filter-personident=10101010101&page=1")) + stubFor(get(urlEqualTo("/api/v1/bruker?filter-eier=Dolly&filter-miljoe=q2&filter-personident=10101010101&page=1")) .willReturn(ok() .withHeader("Content-Type", "application/json") .withBody(getResourceFileContent("files/arena/all_filters_page_1.json")) @@ -129,7 +129,7 @@ void getEmptyResponse() { } private void stubEmptyResponse() { - stubFor(get(urlEqualTo("/arena/api/v1/bruker?filter-miljoe=q2&filter-personident=10101010101")) + stubFor(get(urlEqualTo("/api/v1/bruker?filter-miljoe=q2&filter-personident=10101010101")) .willReturn(aResponse().withStatus(400) .withBody("{" + "\"timestamp\": \"2019-07-03T07:45:19.109+0000\"," + @@ -174,35 +174,35 @@ void shouldOppretteRettighetAap() { } private void stubArenaForvalterOpprettAapRettighet() { - stubFor(post(urlEqualTo("/arena/api/v1/aap")) + stubFor(post(urlEqualTo("/api/v1/aap")) .willReturn(ok() .withHeader("Content-Type", "application/json") .withBody(getResourceFileContent("files/arena/aap/aap_forvalter_response.json")) ) ); - stubFor(post(urlEqualTo("/arena/api/v1/aap115")) + stubFor(post(urlEqualTo("/api/v1/aap115")) .willReturn(ok() .withHeader("Content-Type", "application/json") .withBody(getResourceFileContent("files/arena/aap/aap115_forvalter_response.json")) ) ); - stubFor(post(urlEqualTo("/arena/api/v1/aapungufor")) + stubFor(post(urlEqualTo("/api/v1/aapungufor")) .willReturn(ok() .withHeader("Content-Type", "application/json") .withBody(getResourceFileContent("files/arena/aap/ung_ufoer_forvalter_response.json")) ) ); - stubFor(post(urlEqualTo("/arena/api/v1/aaptvungenforvaltning")) + stubFor(post(urlEqualTo("/api/v1/aaptvungenforvaltning")) .willReturn(ok() .withHeader("Content-Type", "application/json") .withBody(getResourceFileContent("files/arena/aap/tvungen_forvaltning_forvalter_response.json")) ) ); - stubFor(post(urlEqualTo("/arena/api/v1/aapfritakmeldekort")) + stubFor(post(urlEqualTo("/api/v1/aapfritakmeldekort")) .willReturn(ok() .withHeader("Content-Type", "application/json") .withBody(getResourceFileContent("files/arena/aap/fritak_meldekort_forvalter_response.json")) @@ -226,7 +226,7 @@ void shouldOppretteRettighetTillegg() { } private void stubArenaForvalterOpprettTilleggRettighet() { - stubFor(post(urlEqualTo("/arena/api/v1/tilleggsstonad")) + stubFor(post(urlEqualTo("/api/v1/tilleggsstonad")) .willReturn(ok() .withHeader("Content-Type", "application/json") .withBody(getResourceFileContent("files/arena/tillegg/tillegg_forvalter_response.json")) @@ -255,14 +255,14 @@ void shouldOppretteRettighetTiltak() { } private void stubArenaForvalterOpprettTiltakRettighet() { - stubFor(post(urlEqualTo("/arena/api/v1/tiltaksdeltakelse")) + stubFor(post(urlEqualTo("/api/v1/tiltaksdeltakelse")) .willReturn(ok() .withHeader("Content-Type", "application/json") .withBody(getResourceFileContent("files/arena/tiltak/tiltaksdeltakelse_forvalter_response.json")) ) ); - stubFor(post(urlEqualTo("/arena/api/v1/tiltakspenger")) + stubFor(post(urlEqualTo("/api/v1/tiltakspenger")) .willReturn(ok() .withHeader("Content-Type", "application/json") .withBody(getResourceFileContent("files/arena/tiltak/tiltakspenger_forvalter_response.json")) diff --git a/apps/synt-vedtakshistorikk-service/src/test/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/PersonSearchConsumerTest.java b/apps/synt-vedtakshistorikk-service/src/test/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/DollySearchServiceConsumerTest.java similarity index 72% rename from apps/synt-vedtakshistorikk-service/src/test/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/PersonSearchConsumerTest.java rename to apps/synt-vedtakshistorikk-service/src/test/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/DollySearchServiceConsumerTest.java index 2bd9e7e8e2f..ce4eb6218f8 100644 --- a/apps/synt-vedtakshistorikk-service/src/test/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/PersonSearchConsumerTest.java +++ b/apps/synt-vedtakshistorikk-service/src/test/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/DollySearchServiceConsumerTest.java @@ -1,8 +1,7 @@ package no.nav.testnav.apps.syntvedtakshistorikkservice.consumer; import no.nav.dolly.libs.test.DollySpringBootTest; -import no.nav.testnav.libs.dto.personsearchservice.v1.search.AlderSearch; -import no.nav.testnav.libs.dto.personsearchservice.v1.search.PersonSearch; +import no.nav.testnav.libs.data.dollysearchservice.v1.legacy.PersonSearch; import no.nav.testnav.libs.securitycore.domain.AccessToken; import no.nav.testnav.libs.securitycore.domain.ServerProperties; import no.nav.testnav.libs.standalone.servletsecurity.exchange.TokenExchange; @@ -14,34 +13,34 @@ import org.springframework.test.context.bean.override.mockito.MockitoBean; import reactor.core.publisher.Mono; -import java.util.Arrays; - -import static com.github.tomakehurst.wiremock.client.WireMock.*; +import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; +import static com.github.tomakehurst.wiremock.client.WireMock.ok; +import static com.github.tomakehurst.wiremock.client.WireMock.post; +import static com.github.tomakehurst.wiremock.client.WireMock.stubFor; +import static com.github.tomakehurst.wiremock.client.WireMock.urlPathMatching; import static no.nav.testnav.apps.syntvedtakshistorikkservice.utils.ResourceUtils.getResourceFileContent; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.Mockito.when; @DollySpringBootTest @AutoConfigureWireMock(port = 0) -class PersonSearchConsumerTest { +class DollySearchServiceConsumerTest { @MockitoBean @SuppressWarnings("unused") private TokenExchange tokenExchange; @Autowired - private PersonSearchConsumer personSearchConsumer; + private DollySearchServiceConsumer dollySearchServiceConsumer; private static final PersonSearch REQUEST = PersonSearch.builder() - .tag("TESTNORGE") - .excludeTags(Arrays.asList("DOLLY", "ARENASYNT")) .kunLevende(true) - .randomSeed("seed") - .page(1) + .randomSeed(121323) + .page(0) .pageSize(10) - .alder(AlderSearch.builder() - .fra((short) 17) - .til((short) 66) + .alder(PersonSearch.AlderSearch.builder() + .fra(17) + .til(66) .build()) .build(); @@ -56,14 +55,14 @@ void setup() { void shouldGetSearchResult() { stubPostPersonSearch(); - var response = personSearchConsumer.search(REQUEST); + var response = dollySearchServiceConsumer.search(REQUEST); assertThat(response.getItems()).hasSize(1); assertThat(response.getNumberOfItems()).isEqualTo(1); assertThat(response.getItems().get(0).getIdent()).isEqualTo("11866800000"); } private void stubPostPersonSearch() { - stubFor(post(urlPathMatching("(.*)/search/api/v1/person")) + stubFor(post(urlPathMatching("(.*)/api/v1/legacy")) .willReturn(ok() .withHeader("Content-Type", "application/json") .withHeader("NUMBER_OF_ITEMS", "1") @@ -76,13 +75,13 @@ private void stubPostPersonSearch() { void shouldGetEmptySearchResult() { stubPostEmptyPersonSearch(); - var response = personSearchConsumer.search(REQUEST); + var response = dollySearchServiceConsumer.search(REQUEST); assertThat(response.getItems()).isEmpty(); assertThat(response.getNumberOfItems()).isZero(); } private void stubPostEmptyPersonSearch() { - stubFor(post(urlPathMatching("(.*)/search/api/v1/person")) + stubFor(post(urlPathMatching("(.*)/api/v1/legacy")) .willReturn(ok() .withHeader("Content-Type", "application/json") .withHeader("NUMBER_OF_ITEMS", "0") @@ -94,12 +93,12 @@ private void stubPostEmptyPersonSearch() { @Test void shouldHandleErrorResponse() { stubPdlPersonErrorResponse(); - var response = personSearchConsumer.search(REQUEST); + var response = dollySearchServiceConsumer.search(REQUEST); assertThat(response).isNull(); } private void stubPdlPersonErrorResponse() { - stubFor(post(urlPathMatching("(.*)/search/api/v1/person")) + stubFor(post(urlPathMatching("(.*)/api/v1/legacy")) .willReturn(aResponse().withStatus(500)) ); } diff --git a/apps/synt-vedtakshistorikk-service/src/test/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/PdlConsumerTest.java b/apps/synt-vedtakshistorikk-service/src/test/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/PdlConsumerTest.java index 2f57877b9bb..e4fa22bc7aa 100644 --- a/apps/synt-vedtakshistorikk-service/src/test/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/PdlConsumerTest.java +++ b/apps/synt-vedtakshistorikk-service/src/test/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/PdlConsumerTest.java @@ -50,7 +50,7 @@ void shouldGetPdlPerson() { } private void stubPdlPersonResponse() { - stubFor(post(urlPathMatching("(.*)/pdl/pdl-api/graphql")) + stubFor(post(urlPathMatching("(.*)/pdl-api/graphql")) .willReturn(ok() .withHeader("Content-Type", "application/json") .withBody(getResourceFileContent("files/pdl/pdlperson.json"))) @@ -77,7 +77,7 @@ void shouldGetPdlPersoner() { } private void stubPdlPersonBolkResponse() { - stubFor(post(urlPathMatching("(.*)/pdl/pdl-api/graphql")) + stubFor(post(urlPathMatching("(.*)/pdl-api/graphql")) .willReturn(ok() .withHeader("Content-Type", "application/json") .withBody(getResourceFileContent("files/pdl/pdlpersonbolk.json"))) @@ -100,7 +100,7 @@ void shouldHandleErrorResponse() { } private void stubPdlPersonErrorResponse() { - stubFor(post(urlPathMatching("(.*)/pdl/pdl-api/graphql")) + stubFor(post(urlPathMatching("(.*)/pdl-api/graphql")) .willReturn(aResponse().withStatus(500)) ); } @@ -121,7 +121,7 @@ void shouldNotOppretteTags() { } private void stubOpprettTags() { - stubFor(post(urlEqualTo("/pdl/pdl-testdata/api/v1/bestilling/tags?tags=ARENASYNT")) + stubFor(post(urlEqualTo("/pdl-testdata/api/v1/bestilling/tags?tags=ARENASYNT")) .willReturn(ok() .withHeader("Content-Type", "application/json") ) diff --git a/apps/synt-vedtakshistorikk-service/src/test/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/PensjonTestdataFacadeConsumerTest.java b/apps/synt-vedtakshistorikk-service/src/test/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/PensjonTestdataFacadeConsumerTest.java index e32a4303724..68921c1bf94 100644 --- a/apps/synt-vedtakshistorikk-service/src/test/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/PensjonTestdataFacadeConsumerTest.java +++ b/apps/synt-vedtakshistorikk-service/src/test/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/PensjonTestdataFacadeConsumerTest.java @@ -54,7 +54,7 @@ void shouldOpprettPerson() { } private void stubOpprettPerson() { - stubFor(post(urlPathMatching("(.*)/pensjon/api/v1/person")) + stubFor(post(urlPathMatching("(.*)/api/v1/person")) .willReturn(ok() .withHeader("Content-Type", "application/json") .withBody(getResourceFileContent("files/pensjon/pensjon_response.json"))) @@ -70,7 +70,7 @@ void shouldHandleErrorOpprettPerson() { } private void stubErrorOpprettPerson() { - stubFor(post(urlPathMatching("(.*)/pensjon/api/v1/person")) + stubFor(post(urlPathMatching("(.*)/api/v1/person")) .willReturn(aResponse().withStatus(500)) ); } @@ -85,7 +85,7 @@ void shouldOpprettInntetk() { } private void stubOpprettInntekt() { - stubFor(post(urlPathMatching("(.*)/pensjon/api/v1/inntekt")) + stubFor(post(urlPathMatching("(.*)/api/v1/inntekt")) .willReturn(ok() .withHeader("Content-Type", "application/json") .withBody(getResourceFileContent("files/pensjon/pensjon_response.json"))) @@ -102,7 +102,7 @@ void shouldHandleErrorOpprettInntekt() { } private void stubErrorOpprettInntekt() { - stubFor(post(urlPathMatching("(.*)/pensjon/api/v1/inntekt")) + stubFor(post(urlPathMatching("(.*)/api/v1/inntekt")) .willReturn(aResponse().withStatus(500)) ); } diff --git a/apps/synt-vedtakshistorikk-service/src/test/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/SyntVedtakshistorikkConsumerTest.java b/apps/synt-vedtakshistorikk-service/src/test/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/SyntVedtakshistorikkConsumerTest.java index b43e7848d80..ac37fd7b458 100644 --- a/apps/synt-vedtakshistorikk-service/src/test/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/SyntVedtakshistorikkConsumerTest.java +++ b/apps/synt-vedtakshistorikk-service/src/test/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/SyntVedtakshistorikkConsumerTest.java @@ -57,7 +57,7 @@ void shouldGetVedtakshistorikk() { } private void stubHistorikkResponse() { - stubFor(post(urlPathMatching("(.*)/synt/api/v1/vedtakshistorikk")) + stubFor(post(urlPathMatching("(.*)/api/v1/vedtakshistorikk")) .willReturn(ok() .withHeader("Content-Type", "application/json") .withBody(getResourceFileContent("files/synt/historikk.json"))) @@ -73,7 +73,7 @@ void shouldHandleErrorResponse() { } private void stubErrorResponse() { - stubFor(post(urlPathMatching("(.*)/synt/api/v1/vedtakshistorikk")) + stubFor(post(urlPathMatching("(.*)/api/v1/vedtakshistorikk")) .willReturn(aResponse().withStatus(500)) ); } diff --git a/apps/synt-vedtakshistorikk-service/src/test/java/no/nav/testnav/apps/syntvedtakshistorikkservice/provider/BrukerControllerTest.java b/apps/synt-vedtakshistorikk-service/src/test/java/no/nav/testnav/apps/syntvedtakshistorikkservice/provider/BrukerControllerTest.java index af5a0a0a21b..7c7c2bd7d34 100644 --- a/apps/synt-vedtakshistorikk-service/src/test/java/no/nav/testnav/apps/syntvedtakshistorikkservice/provider/BrukerControllerTest.java +++ b/apps/synt-vedtakshistorikk-service/src/test/java/no/nav/testnav/apps/syntvedtakshistorikkservice/provider/BrukerControllerTest.java @@ -5,9 +5,9 @@ import no.nav.testnav.apps.syntvedtakshistorikkservice.service.ArenaForvalterService; import no.nav.testnav.apps.syntvedtakshistorikkservice.service.IdentService; import no.nav.testnav.apps.syntvedtakshistorikkservice.service.TagsService; +import no.nav.testnav.libs.data.dollysearchservice.v1.legacy.PersonDTO; import no.nav.testnav.libs.dto.arena.testnorge.brukere.Arbeidsoeker; import no.nav.testnav.libs.dto.arena.testnorge.vedtak.NyeBrukereResponse; -import no.nav.testnav.libs.dto.personsearchservice.v1.PersonDTO; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; diff --git a/apps/synt-vedtakshistorikk-service/src/test/java/no/nav/testnav/apps/syntvedtakshistorikkservice/service/ArenaAapServiceTest.java b/apps/synt-vedtakshistorikk-service/src/test/java/no/nav/testnav/apps/syntvedtakshistorikkservice/service/ArenaAapServiceTest.java index 55132476a1e..4c9e642e01b 100644 --- a/apps/synt-vedtakshistorikk-service/src/test/java/no/nav/testnav/apps/syntvedtakshistorikkservice/service/ArenaAapServiceTest.java +++ b/apps/synt-vedtakshistorikk-service/src/test/java/no/nav/testnav/apps/syntvedtakshistorikkservice/service/ArenaAapServiceTest.java @@ -1,11 +1,10 @@ package no.nav.testnav.apps.syntvedtakshistorikkservice.service; import no.nav.testnav.apps.syntvedtakshistorikkservice.consumer.request.arena.rettighet.RettighetRequest; +import no.nav.testnav.libs.data.dollysearchservice.v1.legacy.PersonDTO; import no.nav.testnav.libs.dto.arena.testnorge.aap.gensaksopplysninger.Saksopplysning; import no.nav.testnav.libs.dto.arena.testnorge.historikk.Vedtakshistorikk; import no.nav.testnav.libs.dto.arena.testnorge.vedtak.NyttVedtakAap; -import no.nav.testnav.libs.dto.personsearchservice.v1.FoedselsdatoDTO; -import no.nav.testnav.libs.dto.personsearchservice.v1.PersonDTO; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; @@ -36,7 +35,7 @@ class ArenaAapServiceTest { private final String fnr1 = "27869949421"; private final PersonDTO person = PersonDTO.builder() .ident(fnr1) - .foedselsdato(FoedselsdatoDTO.builder() + .foedselsdato(PersonDTO.FoedselsdatoDTO.builder() .foedselsdato(LocalDate.of(1999, 6, 27)) .build()) .build(); diff --git a/apps/synt-vedtakshistorikk-service/src/test/java/no/nav/testnav/apps/syntvedtakshistorikkservice/service/ArenaTiltakServiceTest.java b/apps/synt-vedtakshistorikk-service/src/test/java/no/nav/testnav/apps/syntvedtakshistorikkservice/service/ArenaTiltakServiceTest.java index 49a96a25990..65aee729992 100644 --- a/apps/synt-vedtakshistorikk-service/src/test/java/no/nav/testnav/apps/syntvedtakshistorikkservice/service/ArenaTiltakServiceTest.java +++ b/apps/synt-vedtakshistorikk-service/src/test/java/no/nav/testnav/apps/syntvedtakshistorikkservice/service/ArenaTiltakServiceTest.java @@ -3,11 +3,11 @@ import no.nav.testnav.apps.syntvedtakshistorikkservice.consumer.request.arena.rettighet.RettighetRequest; import no.nav.testnav.apps.syntvedtakshistorikkservice.service.util.RequestUtils; import no.nav.testnav.apps.syntvedtakshistorikkservice.service.util.ServiceUtils; +import no.nav.testnav.libs.data.dollysearchservice.v1.legacy.PersonDTO; import no.nav.testnav.libs.dto.arena.testnorge.brukere.Kvalifiseringsgrupper; import no.nav.testnav.libs.dto.arena.testnorge.historikk.Vedtakshistorikk; import no.nav.testnav.libs.dto.arena.testnorge.vedtak.NyttVedtakAap; import no.nav.testnav.libs.dto.arena.testnorge.vedtak.NyttVedtakTiltak; -import no.nav.testnav.libs.dto.personsearchservice.v1.PersonDTO; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; diff --git a/apps/synt-vedtakshistorikk-service/src/test/java/no/nav/testnav/apps/syntvedtakshistorikkservice/service/PensjonServiceTest.java b/apps/synt-vedtakshistorikk-service/src/test/java/no/nav/testnav/apps/syntvedtakshistorikkservice/service/PensjonServiceTest.java index ddb0422ff2e..95bde2e7dfc 100644 --- a/apps/synt-vedtakshistorikk-service/src/test/java/no/nav/testnav/apps/syntvedtakshistorikkservice/service/PensjonServiceTest.java +++ b/apps/synt-vedtakshistorikk-service/src/test/java/no/nav/testnav/apps/syntvedtakshistorikkservice/service/PensjonServiceTest.java @@ -7,8 +7,7 @@ import no.nav.testnav.apps.syntvedtakshistorikkservice.consumer.response.pensjon.PensjonTestdataResponse; import no.nav.testnav.apps.syntvedtakshistorikkservice.consumer.response.pensjon.PensjonTestdataResponseDetails; import no.nav.testnav.apps.syntvedtakshistorikkservice.consumer.response.pensjon.PensjonTestdataStatus; -import no.nav.testnav.libs.dto.personsearchservice.v1.FoedselsdatoDTO; -import no.nav.testnav.libs.dto.personsearchservice.v1.PersonDTO; +import no.nav.testnav.libs.data.dollysearchservice.v1.legacy.PersonDTO; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.InjectMocks; @@ -37,7 +36,7 @@ void shouldOpprettePersonOgInntektIPopp() { var miljoe = "TEST"; var person = PersonDTO.builder() .ident("01016412345") - .foedselsdato(FoedselsdatoDTO.builder() + .foedselsdato(PersonDTO.FoedselsdatoDTO.builder() .foedselsdato(LocalDate.of(1964, 1, 1)) .build()) .build(); @@ -66,7 +65,7 @@ void shouldAcceptPensjonTimestampString() { var miljoe = "TEST"; var person = PersonDTO.builder() .ident("01016412345") - .foedselsdato(FoedselsdatoDTO.builder() + .foedselsdato(PersonDTO.FoedselsdatoDTO.builder() .foedselsdato(LocalDate.of(1964, 1, 1)) .build()) .build(); diff --git a/apps/synt-vedtakshistorikk-service/src/test/resources/application-test.yml b/apps/synt-vedtakshistorikk-service/src/test/resources/application-test.yml index b38f6dd7369..b424325e730 100644 --- a/apps/synt-vedtakshistorikk-service/src/test/resources/application-test.yml +++ b/apps/synt-vedtakshistorikk-service/src/test/resources/application-test.yml @@ -1,6 +1,6 @@ consumers: synt-vedtakshistorikk: - url: http://localhost:${wiremock.server.port:0}/synt + url: http://localhost:${wiremock.server.port:0} cluster: dummy namespace: dolly name: synthdata-arena-vedtakshistorikk @@ -8,22 +8,22 @@ consumers: cluster: dummy namespace: dolly name: testnav-arena-forvalteren-proxy - url: http://localhost:${wiremock.server.port:0}/arena + url: http://localhost:${wiremock.server.port:0} testnav-pensjon-testdata-facade-proxy: cluster: dummy namespace: dolly name: testnav-pensjon-testdata-facade-proxy - url: http://localhost:${wiremock.server.port:0}/pensjon - testnav-person-search-service: + url: http://localhost:${wiremock.server.port:0} + testnav-dolly-search-service: cluster: dummy namespace: dolly - name: testnav-person-search-service - url: http://localhost:${wiremock.server.port:0}/search + name: testnav-dolly-search-service + url: http://localhost:${wiremock.server.port:0} pdl-api-proxy: cluster: dummy namespace: dolly name: testnav-pdl-proxy - url: http://localhost:${wiremock.server.port:0}/pdl + url: http://localhost:${wiremock.server.port:0} batch: miljoe: test diff --git a/libs/data-transfer-search-objects/src/main/java/no/nav/testnav/libs/data/dollysearchservice/v1/IdentdataDTO.java b/libs/data-transfer-search-objects/src/main/java/no/nav/testnav/libs/data/dollysearchservice/v1/IdentdataDTO.java new file mode 100644 index 00000000000..d2169e85fc8 --- /dev/null +++ b/libs/data-transfer-search-objects/src/main/java/no/nav/testnav/libs/data/dollysearchservice/v1/IdentdataDTO.java @@ -0,0 +1,27 @@ +package no.nav.testnav.libs.data.dollysearchservice.v1; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class IdentdataDTO { + + private String ident; + private NavnDTO navn; + + @Data + @Builder + @AllArgsConstructor + @NoArgsConstructor + public static class NavnDTO { + + private String fornavn; + private String mellomnavn; + private String etternavn; + } +} diff --git a/libs/data-transfer-search-objects/src/main/java/no/nav/testnav/libs/data/dollysearchservice/v1/PersonRequest.java b/libs/data-transfer-search-objects/src/main/java/no/nav/testnav/libs/data/dollysearchservice/v1/PersonRequest.java index 4e873f4d09f..7bb4e8c2e59 100644 --- a/libs/data-transfer-search-objects/src/main/java/no/nav/testnav/libs/data/dollysearchservice/v1/PersonRequest.java +++ b/libs/data-transfer-search-objects/src/main/java/no/nav/testnav/libs/data/dollysearchservice/v1/PersonRequest.java @@ -6,6 +6,7 @@ import lombok.Data; import lombok.NoArgsConstructor; import no.nav.testnav.libs.data.pdlforvalter.v1.AdressebeskyttelseDTO; +import no.nav.testnav.libs.data.pdlforvalter.v1.FolkeregisterPersonstatusDTO; import no.nav.testnav.libs.data.pdlforvalter.v1.Identtype; import no.nav.testnav.libs.data.pdlforvalter.v1.KjoennDTO; import no.nav.testnav.libs.data.pdlforvalter.v1.SivilstandDTO; @@ -22,12 +23,15 @@ public class PersonRequest { private Integer alderTom; private SivilstandDTO.Sivilstand sivilstand; + @Schema(description = "erLevende eksluderer erDoed, begge kan ikke være satt") + private Boolean erLevende; + @Schema(description = "erDoed eksluderer erLevende, begge kan ikke være satt") + private Boolean erDoed; private Boolean harBarn; private Boolean harForeldre; private Boolean harDoedfoedtBarn; private Boolean harForeldreAnsvar; private Boolean harVerge; - private Boolean harDoedsfall; private Boolean harInnflytting; private Boolean harUtflytting; private Boolean harKontaktinformasjonForDoedsbo; @@ -38,6 +42,7 @@ public class PersonRequest { private Boolean harOpphold; @Schema(description = "landkode") private String statsborgerskap; + private FolkeregisterPersonstatusDTO.FolkeregisterPersonstatus personStatus; private Boolean harNyIdentitet; private AdresseRequest adresse; diff --git a/libs/data-transfer-search-objects/src/main/java/no/nav/testnav/libs/data/dollysearchservice/v1/legacy/PersonDTO.java b/libs/data-transfer-search-objects/src/main/java/no/nav/testnav/libs/data/dollysearchservice/v1/legacy/PersonDTO.java new file mode 100644 index 00000000000..a0abaebf339 --- /dev/null +++ b/libs/data-transfer-search-objects/src/main/java/no/nav/testnav/libs/data/dollysearchservice/v1/legacy/PersonDTO.java @@ -0,0 +1,120 @@ +package no.nav.testnav.libs.data.dollysearchservice.v1.legacy; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.time.LocalDate; +import java.util.List; + +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class PersonDTO { + + private String fornavn; + private String mellomnavn; + private String etternavn; + private String kjoenn; + private String ident; + private String aktorId; + private List tags; + private FoedselsdatoDTO foedselsdato; + private DoedsfallDTO doedsfall; + private SivilstandDTO sivilstand; + private StatsborgerskapDTO statsborgerskap; + private UtfyttingFraNorgeDTO utfyttingFraNorge; + private InnflyttingTilNorgeDTO innfyttingTilNorge; + private ForelderBarnRelasjonDTO forelderBarnRelasjoner; + private List folkeregisterpersonstatus; + + @Data + @Builder + @AllArgsConstructor + @NoArgsConstructor + public static class FoedselsdatoDTO { + + private LocalDate foedselsdato; + } + + @Data + @Builder + @AllArgsConstructor + @NoArgsConstructor + public static class DoedsfallDTO { + + private LocalDate doedsdato; + } + + @Data + @Builder + @AllArgsConstructor + @NoArgsConstructor + public static class SivilstandDTO { + + private String type; + private String relatertVedSivilstand; + } + + @Data + @Builder + @AllArgsConstructor + @NoArgsConstructor + public static class StatsborgerskapDTO { + + private List land; + } + + @Data + @Builder + @AllArgsConstructor + @NoArgsConstructor + public static class ForelderBarnRelasjonDTO { + + private List barn; + private List foreldre; + } + + @Data + @Builder + @AllArgsConstructor + @NoArgsConstructor + public static class FolkeregisterpersonstatusDTO { + + private String status; + private LocalDate gyldighetstidspunkt; + } + + @Data + @Builder + @AllArgsConstructor + @NoArgsConstructor + public static class ForelderDTO { + + private String ident; + private String rolle; + } + + @Data + @Builder + @AllArgsConstructor + @NoArgsConstructor + public static class InnflyttingTilNorgeDTO { + + private String fraflyttingsland; + private String fraflyttingsstedIUtlandet; + } + + @Data + @Builder + @AllArgsConstructor + @NoArgsConstructor + public static class UtfyttingFraNorgeDTO { + + private String tilflyttingsland; + private String tilflyttingsstedIUtlandet; + private LocalDate utflyttingsdato; + } +} \ No newline at end of file diff --git a/libs/data-transfer-search-objects/src/main/java/no/nav/testnav/libs/data/dollysearchservice/v1/legacy/PersonSearch.java b/libs/data-transfer-search-objects/src/main/java/no/nav/testnav/libs/data/dollysearchservice/v1/legacy/PersonSearch.java new file mode 100644 index 00000000000..c82c04ba619 --- /dev/null +++ b/libs/data-transfer-search-objects/src/main/java/no/nav/testnav/libs/data/dollysearchservice/v1/legacy/PersonSearch.java @@ -0,0 +1,72 @@ +package no.nav.testnav.libs.data.dollysearchservice.v1.legacy; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class PersonSearch { + + private Integer page; + private Integer pageSize; + private String kjoenn; + private Integer randomSeed; + private Boolean kunLevende; + private NasjonalitetSearch nasjonalitet; + private AlderSearch alder; + private RelasjonSearch relasjoner; + private PersonstatusSearch personstatus; + private AdresserSearch adresser; + + @Data + @Builder + @AllArgsConstructor + @NoArgsConstructor + public static class AlderSearch { + + private Integer fra; + private Integer til; + } + + @Data + @Builder + @AllArgsConstructor + @NoArgsConstructor + public static class NasjonalitetSearch { + + private String statsborgerskap; + } + + @Data + @Builder + @AllArgsConstructor + @NoArgsConstructor + public static class PersonstatusSearch { + + private String status; + } + + @Data + @Builder + @AllArgsConstructor + @NoArgsConstructor + public static class AdresserSearch { + + private Boolean harUtenlandskAdresse; + private Boolean harKontaktadresse; + private Boolean harOppholdsadresse; + } + + @Data + @Builder + @AllArgsConstructor + @NoArgsConstructor + public static class RelasjonSearch { + + private Boolean harBarn; + } +} \ No newline at end of file