diff --git a/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/entity/Institution.java b/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/entity/Institution.java index 6f2c53fa0..71321531c 100644 --- a/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/entity/Institution.java +++ b/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/entity/Institution.java @@ -1,7 +1,7 @@ package it.pagopa.selfcare.onboarding.entity; -import it.pagopa.selfcare.commons.base.utils.InstitutionType; import it.pagopa.selfcare.onboarding.common.InstitutionPaSubunitType; +import it.pagopa.selfcare.onboarding.common.InstitutionType; import it.pagopa.selfcare.onboarding.common.Origin; import java.util.List; diff --git a/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/entity/User.java b/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/entity/User.java index 9198669aa..b9969eaf3 100644 --- a/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/entity/User.java +++ b/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/entity/User.java @@ -1,7 +1,7 @@ package it.pagopa.selfcare.onboarding.entity; -import it.pagopa.selfcare.commons.base.security.PartyRole; +import it.pagopa.selfcare.onboarding.common.PartyRole; public class User { diff --git a/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/service/ContractServiceDefault.java b/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/service/ContractServiceDefault.java index c48a82b49..102b54341 100644 --- a/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/service/ContractServiceDefault.java +++ b/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/service/ContractServiceDefault.java @@ -1,11 +1,9 @@ package it.pagopa.selfcare.onboarding.service; -import com.openhtmltopdf.extend.FSStream; -import com.openhtmltopdf.extend.FSStreamFactory; import com.openhtmltopdf.pdfboxout.PdfRendererBuilder; import com.openhtmltopdf.svgsupport.BatikSVGDrawer; import it.pagopa.selfcare.azurestorage.AzureBlobClient; -import it.pagopa.selfcare.commons.base.utils.InstitutionType; +import it.pagopa.selfcare.onboarding.common.InstitutionType; import it.pagopa.selfcare.onboarding.config.AzureStorageConfig; import it.pagopa.selfcare.onboarding.entity.Institution; import it.pagopa.selfcare.onboarding.entity.Onboarding; diff --git a/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/service/OnboardingService.java b/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/service/OnboardingService.java index cb052ce5b..5bd91f7d7 100644 --- a/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/service/OnboardingService.java +++ b/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/service/OnboardingService.java @@ -3,7 +3,7 @@ import eu.europa.esig.dss.enumerations.DigestAlgorithm; import eu.europa.esig.dss.model.DSSDocument; import eu.europa.esig.dss.model.FileDocument; -import it.pagopa.selfcare.commons.base.security.PartyRole; +import it.pagopa.selfcare.onboarding.common.PartyRole; import it.pagopa.selfcare.onboarding.entity.Onboarding; import it.pagopa.selfcare.onboarding.entity.Token; import it.pagopa.selfcare.onboarding.entity.User; diff --git a/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/utils/PdfMapper.java b/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/utils/PdfMapper.java index 3d2f55b20..c79b5be7b 100644 --- a/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/utils/PdfMapper.java +++ b/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/utils/PdfMapper.java @@ -1,13 +1,12 @@ package it.pagopa.selfcare.onboarding.utils; -import it.pagopa.selfcare.commons.base.utils.InstitutionType; +import it.pagopa.selfcare.onboarding.common.InstitutionType; import it.pagopa.selfcare.onboarding.common.Origin; import it.pagopa.selfcare.onboarding.common.PricingPlan; import it.pagopa.selfcare.onboarding.entity.Billing; import it.pagopa.selfcare.onboarding.entity.Institution; import it.pagopa.selfcare.onboarding.entity.Onboarding; import org.openapi.quarkus.user_registry_json.model.UserResource; -import org.springframework.util.StringUtils; import java.util.*; @@ -119,7 +118,7 @@ public static void setupProdPNData(Map map, Institution institut private static void addPricingPlan(String pricingPlan, Map map) { - if (StringUtils.hasText(pricingPlan) && Arrays.stream(PLAN_LIST).anyMatch(s -> s.equalsIgnoreCase(pricingPlan))) { + if (Objects.nonNull(pricingPlan) && Arrays.stream(PLAN_LIST).anyMatch(s -> s.equalsIgnoreCase(pricingPlan))) { map.put("pricingPlanPremium", pricingPlan.replace("C", "")); map.put("pricingPlanPremiumCheckbox", "X"); } else { @@ -129,7 +128,7 @@ private static void addPricingPlan(String pricingPlan, Map map) map.put("pricingPlanPremiumBase", Optional.ofNullable(pricingPlan).orElse("")); - if (StringUtils.hasText(pricingPlan) && "C0".equalsIgnoreCase(pricingPlan)) { + if (Objects.nonNull(pricingPlan) && "C0".equalsIgnoreCase(pricingPlan)) { map.put("pricingPlanPremiumBaseCheckbox", "X"); } else { map.put("pricingPlanPremiumBaseCheckbox", ""); @@ -138,7 +137,7 @@ private static void addPricingPlan(String pricingPlan, Map map) private static void addInstitutionRegisterLabelValue(Institution institution, Map map) { if (institution.getPaymentServiceProvider() != null - && StringUtils.hasText(institution.getPaymentServiceProvider().getBusinessRegisterNumber())) { + && Objects.nonNull(institution.getPaymentServiceProvider().getBusinessRegisterNumber())) { map.put("number", institution.getPaymentServiceProvider().getBusinessRegisterNumber()); map.put("institutionRegisterLabelValue", "
  • codice di iscrizione all’Indice delle Pubbliche Amministrazioni e dei gestori di pubblici servizi (I.P.A.) ${number}
  • \n"); } else { diff --git a/onboarding-functions/src/test/java/it/pagopa/selfcare/onboarding/service/ContractServiceDefaultTest.java b/onboarding-functions/src/test/java/it/pagopa/selfcare/onboarding/service/ContractServiceDefaultTest.java index 6ddf7983e..cc50bdece 100644 --- a/onboarding-functions/src/test/java/it/pagopa/selfcare/onboarding/service/ContractServiceDefaultTest.java +++ b/onboarding-functions/src/test/java/it/pagopa/selfcare/onboarding/service/ContractServiceDefaultTest.java @@ -3,7 +3,7 @@ import io.quarkus.test.InjectMock; import io.quarkus.test.junit.QuarkusTest; import it.pagopa.selfcare.azurestorage.AzureBlobClient; -import it.pagopa.selfcare.commons.base.utils.InstitutionType; +import it.pagopa.selfcare.onboarding.common.InstitutionType; import it.pagopa.selfcare.onboarding.entity.Institution; import it.pagopa.selfcare.onboarding.entity.Onboarding; import jakarta.inject.Inject; diff --git a/onboarding-functions/src/test/java/it/pagopa/selfcare/onboarding/service/OnboardingServiceTest.java b/onboarding-functions/src/test/java/it/pagopa/selfcare/onboarding/service/OnboardingServiceTest.java index 6503726b0..fa2c85e9c 100644 --- a/onboarding-functions/src/test/java/it/pagopa/selfcare/onboarding/service/OnboardingServiceTest.java +++ b/onboarding-functions/src/test/java/it/pagopa/selfcare/onboarding/service/OnboardingServiceTest.java @@ -5,7 +5,7 @@ import eu.europa.esig.dss.model.FileDocument; import io.quarkus.test.InjectMock; import io.quarkus.test.junit.QuarkusTest; -import it.pagopa.selfcare.commons.base.security.PartyRole; +import it.pagopa.selfcare.onboarding.common.PartyRole; import it.pagopa.selfcare.onboarding.entity.Onboarding; import it.pagopa.selfcare.onboarding.entity.Token; import it.pagopa.selfcare.onboarding.entity.User; diff --git a/onboarding-ms/pom.xml b/onboarding-ms/pom.xml index b7f1876e4..c43a76dda 100644 --- a/onboarding-ms/pom.xml +++ b/onboarding-ms/pom.xml @@ -22,6 +22,7 @@ 3.4.2 true 3.1.2 + 0.0.4 @@ -111,6 +112,7 @@ io.quarkus quarkus-smallrye-context-propagation + io.quarkus quarkus-panache-mock @@ -127,6 +129,11 @@ quarkus-jacoco test + + it.pagopa.selfcare + onboarding-sdk-common + ${onboarding-sdk.version} + diff --git a/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/controller/request/InstitutionBaseRequest.java b/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/controller/request/InstitutionBaseRequest.java index a320b62c4..f52dade75 100644 --- a/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/controller/request/InstitutionBaseRequest.java +++ b/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/controller/request/InstitutionBaseRequest.java @@ -1,6 +1,6 @@ package it.pagopa.selfcare.onboarding.controller.request; -import it.pagopa.selfcare.commons.base.utils.InstitutionType; +import it.pagopa.selfcare.onboarding.common.InstitutionType; import it.pagopa.selfcare.onboarding.util.InstitutionPaSubunitType; import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotNull; diff --git a/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/controller/request/UserRequest.java b/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/controller/request/UserRequest.java index c8528801d..cefa5730a 100644 --- a/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/controller/request/UserRequest.java +++ b/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/controller/request/UserRequest.java @@ -1,7 +1,7 @@ package it.pagopa.selfcare.onboarding.controller.request; import com.fasterxml.jackson.annotation.JsonInclude; -import it.pagopa.selfcare.commons.base.security.PartyRole; +import it.pagopa.selfcare.onboarding.common.PartyRole; import jakarta.validation.Valid; import lombok.AllArgsConstructor; import lombok.Builder; diff --git a/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/controller/response/InstitutionResponse.java b/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/controller/response/InstitutionResponse.java index 279114495..d756e3427 100644 --- a/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/controller/response/InstitutionResponse.java +++ b/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/controller/response/InstitutionResponse.java @@ -1,6 +1,6 @@ package it.pagopa.selfcare.onboarding.controller.response; -import it.pagopa.selfcare.commons.base.utils.InstitutionType; +import it.pagopa.selfcare.onboarding.common.InstitutionType; import it.pagopa.selfcare.onboarding.controller.request.DataProtectionOfficerRequest; import it.pagopa.selfcare.onboarding.controller.request.PaymentServiceProviderRequest; import it.pagopa.selfcare.onboarding.util.InstitutionPaSubunitType; diff --git a/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/controller/response/UserResponse.java b/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/controller/response/UserResponse.java index 302d2185a..417d4dc76 100644 --- a/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/controller/response/UserResponse.java +++ b/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/controller/response/UserResponse.java @@ -1,6 +1,6 @@ package it.pagopa.selfcare.onboarding.controller.response; -import it.pagopa.selfcare.commons.base.security.PartyRole; +import it.pagopa.selfcare.onboarding.common.PartyRole; import lombok.Data; @Data diff --git a/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/entity/Institution.java b/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/entity/Institution.java index 1347dbf7d..1cd7312d4 100644 --- a/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/entity/Institution.java +++ b/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/entity/Institution.java @@ -1,6 +1,6 @@ package it.pagopa.selfcare.onboarding.entity; -import it.pagopa.selfcare.commons.base.utils.InstitutionType; +import it.pagopa.selfcare.onboarding.common.InstitutionType; import it.pagopa.selfcare.onboarding.util.InstitutionPaSubunitType; import lombok.Data; diff --git a/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/entity/User.java b/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/entity/User.java index 0d6eaa2a3..e532cfe49 100644 --- a/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/entity/User.java +++ b/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/entity/User.java @@ -1,6 +1,6 @@ package it.pagopa.selfcare.onboarding.entity; -import it.pagopa.selfcare.commons.base.security.PartyRole; +import it.pagopa.selfcare.onboarding.common.PartyRole; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; diff --git a/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/service/OnboardingServiceDefault.java b/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/service/OnboardingServiceDefault.java index d3d840321..3e8b93ddd 100644 --- a/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/service/OnboardingServiceDefault.java +++ b/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/service/OnboardingServiceDefault.java @@ -3,8 +3,8 @@ import io.quarkus.mongodb.panache.common.reactive.Panache; import io.smallrye.mutiny.Multi; import io.smallrye.mutiny.Uni; -import it.pagopa.selfcare.commons.base.security.PartyRole; -import it.pagopa.selfcare.commons.base.utils.InstitutionType; +import it.pagopa.selfcare.onboarding.common.InstitutionType; +import it.pagopa.selfcare.onboarding.common.PartyRole; import it.pagopa.selfcare.onboarding.constants.CustomError; import it.pagopa.selfcare.onboarding.controller.request.*; import it.pagopa.selfcare.onboarding.controller.response.OnboardingResponse; @@ -29,7 +29,6 @@ import org.openapi.quarkus.product_json.model.ProductRoleInfoRes; import org.openapi.quarkus.user_registry_json.api.UserApi; import org.openapi.quarkus.user_registry_json.model.*; -import org.springframework.util.Assert; import java.time.OffsetDateTime; import java.time.temporal.ChronoUnit; @@ -163,14 +162,15 @@ private Uni checkIfAlreadyOnboardingAndValidateAllowedMap(String produc private void validateProductRole(List users, Map roleMappings) { try { - Assert.notNull(roleMappings, "Role mappings is required"); + if(Objects.isNull(roleMappings) || roleMappings.isEmpty()) + throw new IllegalArgumentException("Role mappings is required"); users.forEach(userInfo -> { - Assert.notNull(roleMappings.get(userInfo.getRole().name()), - String.format(ATLEAST_ONE_PRODUCT_ROLE_REQUIRED, userInfo.getRole())); - Assert.notEmpty(roleMappings.get(userInfo.getRole().name()).getRoles(), - String.format(ATLEAST_ONE_PRODUCT_ROLE_REQUIRED, userInfo.getRole())); - Assert.state(roleMappings.get(userInfo.getRole().name()).getRoles().size() == 1, - String.format(MORE_THAN_ONE_PRODUCT_ROLE_AVAILABLE, userInfo.getRole())); + if(Objects.isNull(roleMappings.get(userInfo.getRole().name()))) + throw new IllegalArgumentException(String.format(ATLEAST_ONE_PRODUCT_ROLE_REQUIRED, userInfo.getRole())); + if(Objects.isNull((roleMappings.get(userInfo.getRole().name()).getRoles()))) + throw new IllegalArgumentException(String.format(ATLEAST_ONE_PRODUCT_ROLE_REQUIRED, userInfo.getRole())); + if(roleMappings.get(userInfo.getRole().name()).getRoles().size() == 1) + throw new IllegalArgumentException(String.format(MORE_THAN_ONE_PRODUCT_ROLE_AVAILABLE, userInfo.getRole())); userInfo.setProductRole(roleMappings.get(userInfo.getRole().name()).getRoles().get(0).getCode()); }); } catch (IllegalArgumentException e){ @@ -180,14 +180,15 @@ private void validateProductRole(List users, Map users, Map roleMappings) { try { - Assert.notNull(roleMappings, "Role mappings is required"); + if(Objects.isNull(roleMappings) || roleMappings.isEmpty()) + throw new IllegalArgumentException("Role mappings is required"); users.forEach(userInfo -> { - Assert.notNull(roleMappings.get(userInfo.getRole().name()), - String.format(ATLEAST_ONE_PRODUCT_ROLE_REQUIRED, userInfo.getRole())); - Assert.notEmpty(roleMappings.get(userInfo.getRole().name()).getRoles(), - String.format(ATLEAST_ONE_PRODUCT_ROLE_REQUIRED, userInfo.getRole())); - Assert.state(roleMappings.get(userInfo.getRole().name()).getRoles().size() == 1, - String.format(MORE_THAN_ONE_PRODUCT_ROLE_AVAILABLE, userInfo.getRole())); + if(Objects.isNull(roleMappings.get(userInfo.getRole().name()))) + throw new IllegalArgumentException(String.format(ATLEAST_ONE_PRODUCT_ROLE_REQUIRED, userInfo.getRole())); + if(Objects.isNull((roleMappings.get(userInfo.getRole().name()).getRoles()))) + throw new IllegalArgumentException(String.format(ATLEAST_ONE_PRODUCT_ROLE_REQUIRED, userInfo.getRole())); + if(roleMappings.get(userInfo.getRole().name()).getRoles().size() == 1) + throw new IllegalArgumentException(String.format(MORE_THAN_ONE_PRODUCT_ROLE_AVAILABLE, userInfo.getRole())); userInfo.setProductRole(roleMappings.get(userInfo.getRole().name()).getRoles().get(0).getCode()); }); } catch (IllegalArgumentException e){ diff --git a/onboarding-ms/src/test/java/it/pagopa/selfcare/onboarding/controller/OnboardingControllerTest.java b/onboarding-ms/src/test/java/it/pagopa/selfcare/onboarding/controller/OnboardingControllerTest.java index 8e57fe072..9cacf16af 100644 --- a/onboarding-ms/src/test/java/it/pagopa/selfcare/onboarding/controller/OnboardingControllerTest.java +++ b/onboarding-ms/src/test/java/it/pagopa/selfcare/onboarding/controller/OnboardingControllerTest.java @@ -8,8 +8,7 @@ import io.quarkus.test.security.TestSecurity; import io.restassured.http.ContentType; import io.smallrye.mutiny.Uni; -import it.pagopa.selfcare.commons.base.utils.InstitutionType; -import it.pagopa.selfcare.onboarding.controller.OnboardingController; +import it.pagopa.selfcare.onboarding.common.InstitutionType; import it.pagopa.selfcare.onboarding.controller.request.*; import it.pagopa.selfcare.onboarding.controller.response.OnboardingResponse; import it.pagopa.selfcare.onboarding.service.OnboardingService; diff --git a/onboarding-ms/src/test/java/it/pagopa/selfcare/onboarding/service/OnboardingServiceDefaultTest.java b/onboarding-ms/src/test/java/it/pagopa/selfcare/onboarding/service/OnboardingServiceDefaultTest.java index 8a4add320..9a87c767a 100644 --- a/onboarding-ms/src/test/java/it/pagopa/selfcare/onboarding/service/OnboardingServiceDefaultTest.java +++ b/onboarding-ms/src/test/java/it/pagopa/selfcare/onboarding/service/OnboardingServiceDefaultTest.java @@ -9,8 +9,8 @@ import io.quarkus.test.vertx.UniAsserter; import io.smallrye.mutiny.Uni; import io.smallrye.mutiny.helpers.test.UniAssertSubscriber; -import it.pagopa.selfcare.commons.base.security.PartyRole; -import it.pagopa.selfcare.commons.base.utils.InstitutionType; +import it.pagopa.selfcare.onboarding.common.InstitutionType; +import it.pagopa.selfcare.onboarding.common.PartyRole; import it.pagopa.selfcare.onboarding.controller.request.*; import it.pagopa.selfcare.onboarding.entity.Onboarding; import it.pagopa.selfcare.onboarding.exception.InvalidRequestException; diff --git a/onboarding-sdk/onboarding-sdk-common/src/main/java/it/pagopa/selfcare/onboarding/common/InstitutionType.java b/onboarding-sdk/onboarding-sdk-common/src/main/java/it/pagopa/selfcare/onboarding/common/InstitutionType.java new file mode 100644 index 000000000..6d730c36a --- /dev/null +++ b/onboarding-sdk/onboarding-sdk-common/src/main/java/it/pagopa/selfcare/onboarding/common/InstitutionType.java @@ -0,0 +1,12 @@ +package it.pagopa.selfcare.onboarding.common; + +public enum InstitutionType { + PA, + PG, + GSP, + SA, + PT, + SCP, + PSP, + AS +} diff --git a/onboarding-sdk/onboarding-sdk-common/src/main/java/it/pagopa/selfcare/onboarding/common/Origin.java b/onboarding-sdk/onboarding-sdk-common/src/main/java/it/pagopa/selfcare/onboarding/common/Origin.java index b1d8da51d..19dca6c5f 100644 --- a/onboarding-sdk/onboarding-sdk-common/src/main/java/it/pagopa/selfcare/onboarding/common/Origin.java +++ b/onboarding-sdk/onboarding-sdk-common/src/main/java/it/pagopa/selfcare/onboarding/common/Origin.java @@ -1,8 +1,7 @@ package it.pagopa.selfcare.onboarding.common; -import org.springframework.util.StringUtils; - import java.util.Arrays; +import java.util.Objects; public enum Origin { MOCK("MOCK"), @@ -30,7 +29,7 @@ public String toString() { public static Origin fromValue(String value) { - if(StringUtils.hasText(value)) { + if(Objects.nonNull(value)) { return Arrays.stream(values()) .filter(origin -> origin.toString().equals(value)) .findAny() diff --git a/onboarding-sdk/onboarding-sdk-common/src/main/java/it/pagopa/selfcare/onboarding/common/PartyRole.java b/onboarding-sdk/onboarding-sdk-common/src/main/java/it/pagopa/selfcare/onboarding/common/PartyRole.java new file mode 100644 index 000000000..be30ad4dc --- /dev/null +++ b/onboarding-sdk/onboarding-sdk-common/src/main/java/it/pagopa/selfcare/onboarding/common/PartyRole.java @@ -0,0 +1,9 @@ +package it.pagopa.selfcare.onboarding.common; + +public enum PartyRole { + MANAGER, + DELEGATE, + SUB_DELEGATE, + OPERATOR; + +} diff --git a/onboarding-sdk/onboarding-sdk-product/pom.xml b/onboarding-sdk/onboarding-sdk-product/pom.xml index 5dcd444ac..dcaf5202e 100644 --- a/onboarding-sdk/onboarding-sdk-product/pom.xml +++ b/onboarding-sdk/onboarding-sdk-product/pom.xml @@ -21,6 +21,13 @@ ${jackson.version} + + + it.pagopa.selfcare + onboarding-sdk-common + 0.0.1 + + diff --git a/onboarding-sdk/onboarding-sdk-product/src/main/java/it/pagopa/selfcare/product/entity/Product.java b/onboarding-sdk/onboarding-sdk-product/src/main/java/it/pagopa/selfcare/product/entity/Product.java index 4677cf278..d2c098dc3 100644 --- a/onboarding-sdk/onboarding-sdk-product/src/main/java/it/pagopa/selfcare/product/entity/Product.java +++ b/onboarding-sdk/onboarding-sdk-product/src/main/java/it/pagopa/selfcare/product/entity/Product.java @@ -1,11 +1,9 @@ package it.pagopa.selfcare.product.entity; - -import it.pagopa.selfcare.commons.base.security.PartyRole; -import it.pagopa.selfcare.commons.base.utils.InstitutionType; +import it.pagopa.selfcare.onboarding.common.InstitutionType; +import it.pagopa.selfcare.onboarding.common.PartyRole; import java.time.Instant; -import java.util.EnumMap; import java.util.Map; public class Product { @@ -22,7 +20,7 @@ public class Product { private String createdBy; private Instant modifiedAt; private String modifiedBy; - private EnumMap roleMappings; + private Map roleMappings; private String roleManagementURL; private Instant contractTemplateUpdatedAt; private String contractTemplatePath; @@ -132,11 +130,11 @@ public void setModifiedBy(String modifiedBy) { this.modifiedBy = modifiedBy; } - public EnumMap getRoleMappings() { + public Map getRoleMappings() { return roleMappings; } - public void setRoleMappings(EnumMap roleMappings) { + public void setRoleMappings(Map roleMappings) { this.roleMappings = roleMappings; } diff --git a/onboarding-sdk/onboarding-sdk-product/src/main/java/it/pagopa/selfcare/product/service/ProductService.java b/onboarding-sdk/onboarding-sdk-product/src/main/java/it/pagopa/selfcare/product/service/ProductService.java index 678e3c9d9..d25b130a9 100644 --- a/onboarding-sdk/onboarding-sdk-product/src/main/java/it/pagopa/selfcare/product/service/ProductService.java +++ b/onboarding-sdk/onboarding-sdk-product/src/main/java/it/pagopa/selfcare/product/service/ProductService.java @@ -1,18 +1,18 @@ package it.pagopa.selfcare.product.service; -import it.pagopa.selfcare.commons.base.security.PartyRole; -import it.pagopa.selfcare.commons.base.utils.InstitutionType; +import it.pagopa.selfcare.onboarding.common.InstitutionType; +import it.pagopa.selfcare.onboarding.common.PartyRole; import it.pagopa.selfcare.product.entity.Product; import it.pagopa.selfcare.product.entity.ProductRoleInfo; -import java.util.EnumMap; import java.util.List; +import java.util.Map; public interface ProductService { List getProducts(boolean rootOnly); - void validateRoleMappings(EnumMap roleMappings); + void validateRoleMappings(Map roleMappings); Product getProduct(String id, InstitutionType institutionType); diff --git a/onboarding-sdk/onboarding-sdk-product/src/main/java/it/pagopa/selfcare/product/service/ProductServiceDefault.java b/onboarding-sdk/onboarding-sdk-product/src/main/java/it/pagopa/selfcare/product/service/ProductServiceDefault.java index 2da4d37fb..320c0ee16 100644 --- a/onboarding-sdk/onboarding-sdk-product/src/main/java/it/pagopa/selfcare/product/service/ProductServiceDefault.java +++ b/onboarding-sdk/onboarding-sdk-product/src/main/java/it/pagopa/selfcare/product/service/ProductServiceDefault.java @@ -6,28 +6,20 @@ import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.SerializationFeature; -import it.pagopa.selfcare.commons.base.security.PartyRole; -import it.pagopa.selfcare.commons.base.utils.InstitutionType; +import it.pagopa.selfcare.onboarding.common.InstitutionType; +import it.pagopa.selfcare.onboarding.common.PartyRole; import it.pagopa.selfcare.product.entity.Product; import it.pagopa.selfcare.product.entity.ProductRoleInfo; import it.pagopa.selfcare.product.entity.ProductStatus; import it.pagopa.selfcare.product.exception.InvalidRoleMappingException; import it.pagopa.selfcare.product.exception.ProductNotFoundException; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.stereotype.Service; -import org.springframework.util.Assert; import java.util.*; import java.util.function.Function; import java.util.stream.Collectors; -@Service public class ProductServiceDefault implements ProductService { - - private static final Logger log = LoggerFactory.getLogger(ProductServiceDefault.class); - protected static final String REQUIRED_PRODUCT_ID_MESSAGE = "A product id is required"; final Map productsMap; @@ -55,44 +47,41 @@ public ProductServiceDefault(String productString, ObjectMapper mapper) throws J @Override public List getProducts(boolean rootOnly) { - log.trace("getProducts start"); - List products = rootOnly + + return rootOnly ? productsMap.values().stream() .filter(product -> Objects.nonNull(product.getParentId())) .collect(Collectors.toList()) : productsMap.values().stream() .filter(product -> !ProductStatus.INACTIVE.equals(product.getStatus())) .collect(Collectors.toList()); - - log.debug("getProducts result = {}", products); - log.trace("getProducts end"); - return products; } @Override - public void validateRoleMappings(EnumMap roleMappings) { - log.trace("validateRoleMappings start"); - log.debug("validateRoleMappings roleMappings = {}", roleMappings); - Assert.notEmpty(roleMappings, "A product role mappings is required"); + public void validateRoleMappings(Map roleMappings) { + + if(Objects.isNull(roleMappings) || roleMappings.isEmpty()) + throw new IllegalArgumentException("A product role mappings is required"); roleMappings.forEach((partyRole, productRoleInfo) -> { - Assert.notNull(productRoleInfo, "A product role info is required"); - Assert.notEmpty(productRoleInfo.getRoles(), "At least one Product role are required"); + if(Objects.isNull(productRoleInfo)) + throw new IllegalArgumentException("A product role info is required"); + if(Objects.isNull(productRoleInfo.getRoles()) || productRoleInfo.getRoles().isEmpty()) + throw new IllegalArgumentException("At least one Product role are required"); if (productRoleInfo.getRoles().size() > 1 && !PartyRole.OPERATOR.equals(partyRole)) { throw new InvalidRoleMappingException(String.format("Only '%s' Party-role can have more than one Product-role, %s", PartyRole.OPERATOR.name(), String.format("partyRole = %s => productRoleInfo = %s", partyRole, productRoleInfo))); } }); - log.trace("validateRoleMappings end"); } @Override public Product getProduct(String id, InstitutionType institutionType) { - log.trace("getProduct start"); - log.debug("getProduct id = {}", id); - Assert.hasText(id, REQUIRED_PRODUCT_ID_MESSAGE); + + if(Objects.isNull(id)) + throw new IllegalArgumentException(REQUIRED_PRODUCT_ID_MESSAGE); Product foundProduct = Optional.ofNullable(productsMap.get(id)).orElseThrow(ProductNotFoundException::new); if (foundProduct.getStatus() == ProductStatus.INACTIVE) { throw new ProductNotFoundException(); @@ -101,16 +90,13 @@ public Product getProduct(String id, InstitutionType institutionType) { foundProduct.setContractTemplatePath(foundProduct.getInstitutionContractMappings().get(institutionType).getContractTemplatePath()); foundProduct.setContractTemplateVersion(foundProduct.getInstitutionContractMappings().get(institutionType).getContractTemplateVersion()); } - log.debug("getProduct result = {}", foundProduct); - log.trace("getProduct end"); return foundProduct; } @Override public Product getProductIsValid(String id) { - log.trace("getProduct start"); - log.debug("getProduct id = {}", id); - Assert.hasText(id, REQUIRED_PRODUCT_ID_MESSAGE); + if(Objects.isNull(id)) + throw new IllegalArgumentException(REQUIRED_PRODUCT_ID_MESSAGE); Product foundProduct = Optional.ofNullable(productsMap.get(id)).orElseThrow(ProductNotFoundException::new); Product baseProduct = null; if (foundProduct.getParentId() != null) { @@ -125,9 +111,6 @@ public Product getProductIsValid(String id) { return foundProduct; } - log.debug("getProduct result = {}", foundProduct); - log.debug("getBaseProduct result = {}", baseProduct); - log.trace("getProduct end"); return null; } diff --git a/pom.xml b/pom.xml index a1954f0b9..4f9fefbaf 100644 --- a/pom.xml +++ b/pom.xml @@ -17,39 +17,6 @@ onboarding-sdk - - 2.4.7 - - - - - it.pagopa.selfcare - selc-commons-base - ${selc-commons.version} - - - - - - - - - org.sonarsource.scanner.maven - sonar-maven-plugin - 3.7.0.1746 - - - verify - - sonar - - - - - - - - selfcare-platform @@ -57,6 +24,11 @@ https://pkgs.dev.azure.com/pagopaspa/selfcare-platform-app-projects/_packaging/selfcare-platform/maven/v1 + + selfcare-github + Selfcare Onboarding SDK + https://maven.pkg.github.com/pagopa/selfcare-onboarding +