diff --git a/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/service/DollyBestillingService.java b/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/service/DollyBestillingService.java index 8e7638230b9..fcb4b846f6c 100644 --- a/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/service/DollyBestillingService.java +++ b/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/service/DollyBestillingService.java @@ -237,9 +237,9 @@ protected Flux sendOrdrePerson(BestillingProgress progress, PdlResponse if (progress.getMaster() == PDL) { transactionHelperService.persister(progress, BestillingProgress::setPdlImportStatus, "OK"); - return Flux.just(progress.getIdent()); + } - } else if (isNull(forvalterStatus.getStatus()) || forvalterStatus.getStatus().is2xxSuccessful()) { + if (isNull(forvalterStatus.getStatus()) || forvalterStatus.getStatus().is2xxSuccessful()) { transactionHelperService.persister(progress, BestillingProgress::setPdlOrdreStatus, "Info: Ordre til PDL startet ..."); diff --git a/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/service/OppdaterPersonService.java b/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/service/OppdaterPersonService.java index ccadf0e05f2..a0e5e8f1452 100644 --- a/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/service/OppdaterPersonService.java +++ b/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/service/OppdaterPersonService.java @@ -78,10 +78,9 @@ public void oppdaterPersonAsync(RsDollyUpdateRequest request, Bestilling bestill var testident = identService.getTestIdent(bestilling.getIdent()); Flux.just(OriginatorUtility.prepOriginator(request, testident, mapperFacade)) .flatMap(originator -> opprettProgress(bestilling, originator.getMaster(), testident.getIdent()) - .flatMap(progress -> (progress.isPdlf() ? + .flatMap(progress -> oppdaterPdlPerson(originator, progress) - .flatMap(pdlResponse -> sendOrdrePerson(progress, pdlResponse)) : - Flux.just(testident.getIdent())) + .flatMap(pdlResponse -> sendOrdrePerson(progress, pdlResponse)) .filter(StringUtils::isNotBlank) .flatMap(ident -> opprettDollyPerson(ident, progress, bestilling.getBruker()) .flatMap(dollyPerson -> (!dollyPerson.getIdent().equals(bestilling.getIdent()) ? diff --git a/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/service/OriginatorUtility.java b/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/service/OriginatorUtility.java index 2f1761bc527..9e59a9c5090 100644 --- a/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/service/OriginatorUtility.java +++ b/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/service/OriginatorUtility.java @@ -66,9 +66,11 @@ public static Originator prepOriginator(RsDollyUtvidetBestilling bestillingReque } else { + PdlMasterCleanerUtility.clean(bestillingRequest.getPdldata().getPerson()); return Originator.builder() - .master(Master.PDL) + .pdlBestilling(mapperFacade.map(bestillingRequest.getPdldata(), BestillingRequestDTO.class)) .ident(nonNull(testident) ? testident.getIdent() : ident) + .master(Master.PDL) .build(); } } diff --git a/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/service/PdlMasterCleanerUtility.java b/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/service/PdlMasterCleanerUtility.java new file mode 100644 index 00000000000..1b7212bf8a8 --- /dev/null +++ b/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/service/PdlMasterCleanerUtility.java @@ -0,0 +1,46 @@ +package no.nav.dolly.bestilling.service; + +import lombok.experimental.UtilityClass; +import no.nav.dolly.exceptions.DollyFunctionalException; +import no.nav.testnav.libs.data.pdlforvalter.v1.DbVersjonDTO; +import no.nav.testnav.libs.data.pdlforvalter.v1.PersonDTO; + +import java.lang.reflect.InvocationTargetException; +import java.util.Arrays; +import java.util.List; +import java.util.Objects; + +import static java.util.Objects.nonNull; +import static no.nav.testnav.libs.data.pdlforvalter.v1.DbVersjonDTO.Master.FREG; + +@UtilityClass +public class PdlMasterCleanerUtility { + + public PersonDTO clean(PersonDTO person) { + + if (nonNull(person)) { + Arrays.stream(person.getClass().getMethods()) + .filter(method -> method.getName().contains("get")) + .map(method -> { + try { + return method.invoke(person); + } catch (IllegalAccessException | InvocationTargetException e) { + throw new DollyFunctionalException("Feilet å filtrere bestilling på master = PDL"); + } + }) + .filter(Objects::nonNull) + .filter(data -> data instanceof List) + .map(data -> (List) data) + .forEach(PdlMasterCleanerUtility::filterOpplysning); + + person.setNyident(null); + } + + return person; + } + + public void filterOpplysning(List opplysninger) { + + opplysninger.removeIf(opplysning -> opplysning.getMaster() == FREG); + } +}