From 2bc1700021996e36d65f89fe12d361abb9bab0d0 Mon Sep 17 00:00:00 2001 From: Manuel Rafeli Date: Mon, 22 Jan 2024 16:32:25 +0100 Subject: [PATCH] [SELC-3883] refactor: replace start orchestrator complete when approve or complete onboarding (#100) * remove orchestrator complete * fix issue cast --- .../service/OnboardingServiceDefault.java | 20 ++++++------------- .../service/OnboardingServiceDefaultTest.java | 6 +++--- 2 files changed, 9 insertions(+), 17 deletions(-) diff --git a/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/service/OnboardingServiceDefault.java b/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/service/OnboardingServiceDefault.java index e8df5b1c6..691fc74da 100644 --- a/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/service/OnboardingServiceDefault.java +++ b/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/service/OnboardingServiceDefault.java @@ -46,7 +46,6 @@ import org.jboss.resteasy.reactive.ClientWebApplicationException; import org.openapi.quarkus.core_json.api.OnboardingApi; import org.openapi.quarkus.onboarding_functions_json.api.OrchestrationApi; -import org.openapi.quarkus.onboarding_functions_json.model.OrchestrationResponse; import org.openapi.quarkus.party_registry_proxy_json.api.AooApi; import org.openapi.quarkus.party_registry_proxy_json.api.UoApi; import org.openapi.quarkus.user_registry_json.api.UserApi; @@ -59,7 +58,6 @@ import java.time.OffsetDateTime; import java.util.*; import java.util.function.Function; -import java.util.function.Supplier; import java.util.stream.Collectors; import static it.pagopa.selfcare.onboarding.common.ProductId.PROD_INTEROP; @@ -422,12 +420,6 @@ private static boolean isFieldToUpdate(CertifiableFieldResourceOfstring certifie @Override public Uni approve(String onboardingId) { - // If approve if for PT it must complete onboarding, otherwise continue to onboarding process - Function>> approveFunction = - workflowType -> WorkflowType.FOR_APPROVE_PT.equals(workflowType) - ? () -> orchestrationApi.apiStartOnboardingCompletionOrchestrationGet(onboardingId) - : () -> orchestrationApi.apiStartOnboardingOrchestrationGet(onboardingId); - return retrieveOnboardingAndCheckIfExpired(onboardingId) .onItem().transformToUni(this::checkIfToBeValidated) //Fail if onboarding exists for a product @@ -435,8 +427,8 @@ public Uni approve(String onboardingId) { .onItem().transformToUni(product -> verifyAlreadyOnboardingForProductAndProductParent(onboarding, product)) ) .onItem().transformToUni(onboarding -> onboardingOrchestrationEnabled - ? approveFunction.apply(onboarding.getWorkflowType()) - .get().map(ignore -> onboarding) + ? orchestrationApi.apiStartOnboardingOrchestrationGet(onboardingId) + .map(ignore -> onboarding) : Uni.createFrom().item(onboarding)) .map(onboardingMapper::toGetResponse); } @@ -482,7 +474,7 @@ private Uni complete(String onboardingId, File contract, Function onboarding)) // Start async activity if onboardingOrchestrationEnabled is true .onItem().transformToUni(onboarding -> onboardingOrchestrationEnabled - ? orchestrationApi.apiStartOnboardingCompletionOrchestrationGet(onboarding.getId().toHexString()) + ? orchestrationApi.apiStartOnboardingOrchestrationGet(onboarding.getId().toHexString()) .map(ignore -> onboarding) : Uni.createFrom().item(onboarding)); } @@ -513,7 +505,7 @@ private Uni retrieveOnboardingAndCheckIfExpired(String onboardingId) return Onboarding.findByIdOptional(new ObjectId(onboardingId)) .onItem().transformToUni(opt -> opt //I must cast to Onboarding because findByIdOptional return a generic ReactiveEntity - .map(onboarding -> (Onboarding) onboarding) + .map(Onboarding.class::cast) //Check if onboarding is expired .filter(onboarding -> !isOnboardingExpired(onboarding.getExpiringDate())) .map(onboarding -> Uni.createFrom().item(onboarding)) @@ -591,7 +583,7 @@ private List convertOnboardingListToResponse(List ite public Uni rejectOnboarding(String onboardingId) { return checkOnboardingIdFormat(onboardingId) .onItem().transformToUni(ignore -> Onboarding.findById(new ObjectId(onboardingId)) - .onItem().transform(onboarding -> (Onboarding) onboarding)) + .onItem().transform(Onboarding.class::cast)) .onItem().transformToUni(onboardingGet -> OnboardingStatus.COMPLETED.equals(onboardingGet.getStatus()) ? Uni.createFrom().failure(new InvalidRequestException(String.format("Onboarding with id %s is COMPLETED!", onboardingId))) : Uni.createFrom().item(onboardingGet)) @@ -619,7 +611,7 @@ public Uni onboardingGet(String onboardingId) { return Onboarding.findByIdOptional(new ObjectId(onboardingId)) .onItem().transformToUni(opt -> opt //I must cast to Onboarding because findByIdOptional return a generic ReactiveEntity - .map(onboarding -> (Onboarding) onboarding) + .map(Onboarding.class::cast) .map(onboardingMapper::toGetResponse) .map(onboardingGet -> Uni.createFrom().item(onboardingGet)) .orElse(Uni.createFrom().failure(new ResourceNotFoundException(String.format("Onboarding with id %s not found!",onboardingId))))); diff --git a/apps/onboarding-ms/src/test/java/it/pagopa/selfcare/onboarding/service/OnboardingServiceDefaultTest.java b/apps/onboarding-ms/src/test/java/it/pagopa/selfcare/onboarding/service/OnboardingServiceDefaultTest.java index bfddf3ed1..6f6a8f1b0 100644 --- a/apps/onboarding-ms/src/test/java/it/pagopa/selfcare/onboarding/service/OnboardingServiceDefaultTest.java +++ b/apps/onboarding-ms/src/test/java/it/pagopa/selfcare/onboarding/service/OnboardingServiceDefaultTest.java @@ -1220,9 +1220,6 @@ void approveCompletion() { onboarding.getInstitution().getSubunitCode())) .thenReturn(Uni.createFrom().failure(new ClientWebApplicationException(404))); - when(orchestrationApi.apiStartOnboardingCompletionOrchestrationGet(onboarding.getId().toHexString())) - .thenReturn(Uni.createFrom().item(new OrchestrationResponse())); - UniAssertSubscriber subscriber = onboardingService .approve(onboarding.getId().toHexString()) .subscribe() @@ -1231,5 +1228,8 @@ void approveCompletion() { OnboardingGet actual = subscriber.awaitItem().getItem(); Assertions.assertNotNull(actual); Assertions.assertEquals(onboarding.getId().toHexString(), actual.getId()); + + verify(orchestrationApi, times(1)) + .apiStartOnboardingOrchestrationGet(onboarding.getId().toHexString()); } }