Skip to content

Commit

Permalink
[SELC - 3922] feat: moved recipient code check and added check if ins…
Browse files Browse the repository at this point in the history
…titution is pr… (#128)
  • Loading branch information
gianmarcoplutino authored Jan 29, 2024
1 parent 5f059b4 commit 7f1ae5b
Show file tree
Hide file tree
Showing 10 changed files with 2,351 additions and 17 deletions.
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package it.pagopa.selfcare.onboarding.service;

import it.pagopa.selfcare.onboarding.common.InstitutionPaSubunitType;
import it.pagopa.selfcare.onboarding.common.InstitutionType;
import it.pagopa.selfcare.onboarding.common.Origin;
import it.pagopa.selfcare.onboarding.entity.Institution;
Expand All @@ -14,10 +15,13 @@
import it.pagopa.selfcare.product.service.ProductService;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject;
import jakarta.ws.rs.WebApplicationException;
import org.apache.commons.lang3.StringUtils;
import org.eclipse.microprofile.rest.client.inject.RestClient;
import org.openapi.quarkus.core_json.api.InstitutionApi;
import org.openapi.quarkus.core_json.model.*;
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;
import org.openapi.quarkus.user_registry_json.model.CertifiableFieldResourceOfstring;
import org.openapi.quarkus.user_registry_json.model.UserResource;
Expand All @@ -30,7 +34,6 @@
import java.util.stream.Collectors;

import static it.pagopa.selfcare.onboarding.common.PartyRole.MANAGER;
import static it.pagopa.selfcare.onboarding.common.ProductId.PROD_INTEROP;
import static it.pagopa.selfcare.onboarding.service.OnboardingService.USERS_FIELD_LIST;
import static it.pagopa.selfcare.onboarding.service.OnboardingService.USERS_WORKS_FIELD_LIST;
import static it.pagopa.selfcare.onboarding.utils.PdfMapper.workContactsKey;
Expand All @@ -45,6 +48,15 @@ public class CompletionServiceDefault implements CompletionService {
@RestClient
@Inject
UserApi userRegistryApi;
@RestClient
@Inject
AooApi aooApi;
@RestClient
@Inject
UoApi uoApi;
@RestClient
@Inject
org.openapi.quarkus.party_registry_proxy_json.api.InstitutionApi institutionRegistryProxyApi;

@Inject
InstitutionMapper institutionMapper;
Expand Down Expand Up @@ -109,10 +121,7 @@ private InstitutionResponse createInstitution(Institution institution, String pr
return institutionApi.createInstitutionFromInfocamereUsingPOST(institutionMapper.toInstitutionRequest(institution));
}

if(InstitutionType.PA.equals(institution.getInstitutionType()) ||
InstitutionType.SA.equals(institution.getInstitutionType()) ||
(isGspAndProdInterop(institution.getInstitutionType(), productId)
&& Origin.IPA.equals(institution.getOrigin()))) {
if(isInstitutionPresentOnIpa(institution)) {

InstitutionFromIpaPost fromIpaPost = new InstitutionFromIpaPost();
fromIpaPost.setTaxCode(institution.getTaxCode());
Expand All @@ -129,9 +138,22 @@ private InstitutionResponse createInstitution(Institution institution, String pr
return institutionApi.createInstitutionUsingPOST1(institutionMapper.toInstitutionRequest(institution));
}

private boolean isGspAndProdInterop(InstitutionType institutionType, String productId) {
return InstitutionType.GSP == institutionType
&& productId.equals(PROD_INTEROP.getValue());
private boolean isInstitutionPresentOnIpa(Institution institution) {
try {
if (InstitutionPaSubunitType.AOO.equals(institution.getSubunitType())) {
aooApi.findByUnicodeUsingGET(institution.getSubunitCode(), null);
} else if (InstitutionPaSubunitType.UO.equals(institution.getSubunitType())) {
uoApi.findByUnicodeUsingGET1(institution.getSubunitCode(), null);
} else {
institutionRegistryProxyApi.findInstitutionUsingGET(institution.getTaxCode(), null, null);
}
return true;
} catch (WebApplicationException e) {
if(e.getResponse().getStatus() == 404) {
return false;
}
throw new RuntimeException(e);
}
}

@Override
Expand Down
Loading

0 comments on commit 7f1ae5b

Please sign in to comment.