Skip to content

Commit

Permalink
Feature/refactor legacy data models and update mapping strategies for…
Browse files Browse the repository at this point in the history
… improved clarity #deploy-test-dolly-search-service #deploy-dolly-search-service
  • Loading branch information
krharum committed Mar 6, 2025
1 parent 9709da0 commit 0ddba9f
Show file tree
Hide file tree
Showing 8 changed files with 106 additions and 185 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,11 @@
import lombok.Data;
import lombok.NoArgsConstructor;

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

import static java.util.Objects.isNull;

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

public List<JsonNode> getPersoner() {

if (isNull(personer)) {
return new ArrayList<>();
}
return personer;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
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.PersonSearch;
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;
Expand All @@ -13,7 +13,6 @@

import static java.util.Objects.nonNull;
import static org.apache.commons.lang3.BooleanUtils.isTrue;
import static org.apache.commons.lang3.StringUtils.isNotBlank;

@Component
public class LegacyRequestMappingStrategy implements MappingStrategy {
Expand All @@ -27,12 +26,10 @@ public void register(MapperFactory factory) {
public void mapAtoB(PersonSearch personSearch, PersonRequest personRequest, MappingContext context) {

Optional.ofNullable(personSearch.getAlder())
.ifPresent(alder -> {
personRequest.setAlderFom(nonNull(alder.getFra()) ?
alder.getFra().intValue() : null);
personRequest.setAlderTom(nonNull(alder.getTil()) ?
alder.getTil().intValue() : null);
});
.ifPresent(alder -> {
personRequest.setAlderFom(nonNull(alder.getFra()) ? alder.getFra() : null);
personRequest.setAlderTom(nonNull(alder.getTil()) ? alder.getTil() : null);
});

Optional.ofNullable(personSearch.getPersonstatus())
.ifPresent(personstatus ->
Expand All @@ -46,13 +43,17 @@ public void mapAtoB(PersonSearch personSearch, PersonRequest personRequest, Mapp

Optional.ofNullable(personSearch.getAdresser())
.ifPresent(adresser ->
personRequest.setAdresse(PersonRequest.AdresseRequest.builder()
.harUtenlandsadresse(isNotBlank(adresser.getHarUtenlandskAdresse()))
.harKontaktadresse(isNotBlank(adresser.getHarKontaktadresse()))
.harOppholdsadresse(isNotBlank(adresser.getHarOppholdsadresse()))
.build()));
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();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
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.PersonDTO;
import no.nav.testnav.libs.data.dollysearchservice.v1.legacy.PersonDTO;
import org.springframework.stereotype.Component;

import static java.util.Objects.nonNull;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
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.PersonDTO;
import no.nav.testnav.libs.data.dollysearchservice.v1.PersonSearch;
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;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@
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.PersonDTO;
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.PersonSearch;
import no.nav.testnav.libs.data.dollysearchservice.v1.legacy.PersonSearch;
import org.springframework.stereotype.Service;
import reactor.core.publisher.Flux;

Expand All @@ -26,6 +26,9 @@ public class LegacyService {
public Flux<PersonDTO> searchPersoner(PersonSearch personSearch) {

var personRequest = SearchRequest.builder()
.seed(personSearch.getRandomSeed())
.side(personSearch.getPage())
.antall(personSearch.getPageSize())
.personRequest(mapperFacade.map(personSearch, PersonRequest.class))
.build();

Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package no.nav.testnav.libs.data.dollysearchservice.v1;
package no.nav.testnav.libs.data.dollysearchservice.v1.legacy;

import lombok.AllArgsConstructor;
import lombok.Builder;
Expand Down
Original file line number Diff line number Diff line change
@@ -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;
}
}

0 comments on commit 0ddba9f

Please sign in to comment.