diff --git a/onboarding-functions/src/main/java/it/pagopa/selfcare/OnboardingFunctions.java b/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/OnboardingFunctions.java similarity index 71% rename from onboarding-functions/src/main/java/it/pagopa/selfcare/OnboardingFunctions.java rename to onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/OnboardingFunctions.java index ddc483a9d..16ab0e74f 100644 --- a/onboarding-functions/src/main/java/it/pagopa/selfcare/OnboardingFunctions.java +++ b/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/OnboardingFunctions.java @@ -1,4 +1,4 @@ -package it.pagopa.selfcare; +package it.pagopa.selfcare.onboarding; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; @@ -18,9 +18,10 @@ import com.microsoft.durabletask.azurefunctions.DurableClientContext; import com.microsoft.durabletask.azurefunctions.DurableClientInput; import com.microsoft.durabletask.azurefunctions.DurableOrchestrationTrigger; -import it.pagopa.selfcare.entity.Onboarding; -import it.pagopa.selfcare.exception.ResourceNotFoundException; -import it.pagopa.selfcare.service.OnboardingService; +import it.pagopa.selfcare.onboarding.entity.Onboarding; +import it.pagopa.selfcare.onboarding.exception.FunctionOrchestratedException; +import it.pagopa.selfcare.onboarding.exception.ResourceNotFoundException; +import it.pagopa.selfcare.onboarding.service.OnboardingService; import jakarta.inject.Inject; import java.time.Duration; @@ -30,13 +31,17 @@ * Azure Functions with HTTP Trigger integrated with Quarkus */ public class OnboardingFunctions { + public static final String CREATED_NEW_ONBOARDING_ORCHESTRATION_WITH_INSTANCE_ID_MSG = "Created new Onboarding orchestration with instance ID = "; + public static final String SAVE_TOKEN_ACTIVITY_NAME = "SaveToken"; + public static final String BUILD_CONTRACT_ACTIVITY_NAME = "BuildContract"; + public static final String FORMAT_LOGGER_ONBOARDING_STRING = "%s: %s"; @Inject OnboardingService service; @Inject ObjectMapper objectMapper; - final static TaskOptions optionsRetry; + private static final TaskOptions optionsRetry; static { // Make 3 attempts with 5 seconds between retries @@ -60,7 +65,7 @@ public HttpResponseMessage startOrchestration( DurableTaskClient client = durableContext.getClient(); String instanceId = client.scheduleNewOrchestrationInstance("Onboardings", onboardingId); - context.getLogger().info("Created new Onboarding orchestration with instance ID = " + instanceId); + context.getLogger().info(String.format("%s %s", CREATED_NEW_ONBOARDING_ORCHESTRATION_WITH_INSTANCE_ID_MSG, instanceId)); return durableContext.createCheckStatusResponse(request, instanceId); } @@ -70,7 +75,7 @@ public HttpResponseMessage startOrchestration( * or wait for external events in a way that's completely fault-tolerant. */ @FunctionName("Onboardings") - public String OnboardingsOrchestrator( + public String onboardingsOrchestrator( @DurableOrchestrationTrigger(name = "taskOrchestrationContext") TaskOrchestrationContext ctx) { String onboardingId = ctx.getInput(String.class); String onboardingString = getOnboardingString(onboardingId); @@ -82,34 +87,34 @@ private String getOnboardingString(String onboardingId) { Onboarding onboarding = service.getOnboarding(onboardingId) .orElseThrow(() -> new ResourceNotFoundException(String.format("Onboarding with id %s not found!", onboardingId))); - String onboardingString = null; + String onboardingString; try { onboardingString = objectMapper.writeValueAsString(onboarding); } catch (JsonProcessingException e) { - throw new RuntimeException(e); + throw new FunctionOrchestratedException(e); } return onboardingString; } private String onboardingsOrchestratorDefault(TaskOrchestrationContext ctx, String onboardingString){ String result = ""; - result += ctx.callActivity("BuildContract", onboardingString, optionsRetry, String.class).await() + ", "; - result += ctx.callActivity("SaveToken", onboardingString, optionsRetry, String.class).await() + ", "; + result += ctx.callActivity(BUILD_CONTRACT_ACTIVITY_NAME, onboardingString, optionsRetry, String.class).await() + ", "; + result += ctx.callActivity(SAVE_TOKEN_ACTIVITY_NAME, onboardingString, optionsRetry, String.class).await() + ", "; result += ctx.callActivity("SendMailRegistration", onboardingString, optionsRetry, String.class).await() + ", "; return result; } private String onboardingsOrchestratorPAorSAorGSPIPA(TaskOrchestrationContext ctx, String onboardingString){ String result = ""; - result += ctx.callActivity("BuildContract", onboardingString, optionsRetry, String.class).await() + ", "; - result += ctx.callActivity("SaveToken", onboardingString, optionsRetry, String.class).await() + ", "; + result += ctx.callActivity(BUILD_CONTRACT_ACTIVITY_NAME, onboardingString, optionsRetry, String.class).await() + ", "; + result += ctx.callActivity(SAVE_TOKEN_ACTIVITY_NAME, onboardingString, optionsRetry, String.class).await() + ", "; result += ctx.callActivity("SendMailRegistrationWithContract", onboardingString, optionsRetry, String.class).await() + ", "; return result; } private String onboardingsOrchestratorPG(TaskOrchestrationContext ctx, String onboardingString){ String result = ""; - result += ctx.callActivity("SaveToken", onboardingString, optionsRetry, String.class).await() + ", "; + result += ctx.callActivity(SAVE_TOKEN_ACTIVITY_NAME, onboardingString, optionsRetry, String.class).await() + ", "; result += ctx.callActivity("SendMailConfirmation", onboardingString, optionsRetry, String.class).await() + ", "; return result; } @@ -117,13 +122,13 @@ private String onboardingsOrchestratorPG(TaskOrchestrationContext ctx, String on /** * This is the activity function that gets invoked by the orchestrator function. */ - @FunctionName("BuildContract") + @FunctionName(BUILD_CONTRACT_ACTIVITY_NAME) public String buildContract(@DurableActivityTrigger(name = "onboardingString") String onboardingString, final ExecutionContext context) { - context.getLogger().info("BuildContract: " + onboardingString); + context.getLogger().info(String.format(FORMAT_LOGGER_ONBOARDING_STRING, BUILD_CONTRACT_ACTIVITY_NAME, onboardingString)); try { service.createContract(objectMapper.readValue(onboardingString, Onboarding.class)); } catch (JsonProcessingException e) { - throw new RuntimeException(e); + throw new FunctionOrchestratedException(e); } return onboardingString; } @@ -131,13 +136,13 @@ public String buildContract(@DurableActivityTrigger(name = "onboardingString") S /** * This is the activity function that gets invoked by the orchestrator function. */ - @FunctionName("SaveToken") - public String SaveToken(@DurableActivityTrigger(name = "onboardingString") String onboardingString, final ExecutionContext context) { - context.getLogger().info("SaveToken: " + onboardingString); + @FunctionName(SAVE_TOKEN_ACTIVITY_NAME) + public String saveToken(@DurableActivityTrigger(name = "onboardingString") String onboardingString, final ExecutionContext context) { + context.getLogger().info(String.format(FORMAT_LOGGER_ONBOARDING_STRING, SAVE_TOKEN_ACTIVITY_NAME, onboardingString)); try { service.saveToken(objectMapper.readValue(onboardingString, Onboarding.class)); } catch (JsonProcessingException e) { - throw new RuntimeException(e); + throw new FunctionOrchestratedException(e); } return onboardingString; } @@ -147,7 +152,7 @@ public String SaveToken(@DurableActivityTrigger(name = "onboardingString") Strin */ @FunctionName("SendMailRegistrationWithContract") public String sendMailWithContract(@DurableActivityTrigger(name = "onboardingString") String onboardingString, final ExecutionContext context) { - context.getLogger().info("SendMailRegistrationWithContract: " + onboardingString); + context.getLogger().info(String.format(FORMAT_LOGGER_ONBOARDING_STRING,"SendMailRegistrationWithContract", onboardingString)); return onboardingString; } @@ -156,7 +161,7 @@ public String sendMailWithContract(@DurableActivityTrigger(name = "onboardingStr */ @FunctionName("SendMailRegistration") public String sendMailRegistration(@DurableActivityTrigger(name = "onboardingString") String onboardingString, final ExecutionContext context) { - context.getLogger().info("SendMailRegistration: " + onboardingString); + context.getLogger().info(String.format(FORMAT_LOGGER_ONBOARDING_STRING, "SendMailRegistration", onboardingString)); return onboardingString; } @@ -165,7 +170,7 @@ public String sendMailRegistration(@DurableActivityTrigger(name = "onboardingStr */ @FunctionName("SendMailConfirmation") public String sendMailConfirmation(@DurableActivityTrigger(name = "onboardingString") String onboardingString, final ExecutionContext context) { - context.getLogger().info("SendMailConfirmation: " + onboardingString); + context.getLogger().info(String.format(FORMAT_LOGGER_ONBOARDING_STRING,"SendMailConfirmation", onboardingString)); return onboardingString; } } diff --git a/onboarding-functions/src/main/java/it/pagopa/selfcare/config/AzureStorageConfig.java b/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/config/AzureStorageConfig.java similarity index 88% rename from onboarding-functions/src/main/java/it/pagopa/selfcare/config/AzureStorageConfig.java rename to onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/config/AzureStorageConfig.java index 98d2193bf..0af86496f 100644 --- a/onboarding-functions/src/main/java/it/pagopa/selfcare/config/AzureStorageConfig.java +++ b/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/config/AzureStorageConfig.java @@ -1,4 +1,4 @@ -package it.pagopa.selfcare.config; +package it.pagopa.selfcare.onboarding.config; import io.smallrye.config.ConfigMapping; diff --git a/onboarding-functions/src/main/java/it/pagopa/selfcare/config/MailTemplateConfig.java b/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/config/MailTemplateConfig.java similarity index 96% rename from onboarding-functions/src/main/java/it/pagopa/selfcare/config/MailTemplateConfig.java rename to onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/config/MailTemplateConfig.java index 1ec548d78..7dc895254 100644 --- a/onboarding-functions/src/main/java/it/pagopa/selfcare/config/MailTemplateConfig.java +++ b/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/config/MailTemplateConfig.java @@ -1,4 +1,4 @@ -package it.pagopa.selfcare.config; +package it.pagopa.selfcare.onboarding.config; import io.smallrye.config.ConfigMapping; diff --git a/onboarding-functions/src/main/java/it/pagopa/selfcare/config/OnboardingFunctionConfig.java b/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/config/OnboardingFunctionConfig.java similarity index 90% rename from onboarding-functions/src/main/java/it/pagopa/selfcare/config/OnboardingFunctionConfig.java rename to onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/config/OnboardingFunctionConfig.java index afb716a14..c78a0fefd 100644 --- a/onboarding-functions/src/main/java/it/pagopa/selfcare/config/OnboardingFunctionConfig.java +++ b/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/config/OnboardingFunctionConfig.java @@ -1,4 +1,4 @@ -package it.pagopa.selfcare.config; +package it.pagopa.selfcare.onboarding.config; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.core.JsonProcessingException; @@ -9,6 +9,7 @@ import io.vertx.core.json.jackson.DatabindCodec; import it.pagopa.selfcare.azurestorage.AzureBlobClientDefault; import it.pagopa.selfcare.azurestorage.AzureBlobClient; +import it.pagopa.selfcare.onboarding.exception.GenericOnboardingException; import it.pagopa.selfcare.product.service.ProductService; import it.pagopa.selfcare.product.service.ProductServiceDefault; import jakarta.enterprise.context.ApplicationScoped; @@ -43,7 +44,7 @@ public ProductService productService(AzureStorageConfig azureStorageConfig){ try { return new ProductServiceDefault(productJsonString, objectMapper()); } catch (JsonProcessingException e) { - throw new RuntimeException(e); + throw new GenericOnboardingException("Found an issue when trying to serialize product json string!!"); } } diff --git a/onboarding-functions/src/main/java/it/pagopa/selfcare/entity/Billing.java b/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/entity/Billing.java similarity index 93% rename from onboarding-functions/src/main/java/it/pagopa/selfcare/entity/Billing.java rename to onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/entity/Billing.java index 0ef8e009a..ec4fc4ecc 100644 --- a/onboarding-functions/src/main/java/it/pagopa/selfcare/entity/Billing.java +++ b/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/entity/Billing.java @@ -1,4 +1,4 @@ -package it.pagopa.selfcare.entity; +package it.pagopa.selfcare.onboarding.entity; public class Billing { diff --git a/onboarding-functions/src/main/java/it/pagopa/selfcare/entity/DataProtectionOfficer.java b/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/entity/DataProtectionOfficer.java similarity index 91% rename from onboarding-functions/src/main/java/it/pagopa/selfcare/entity/DataProtectionOfficer.java rename to onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/entity/DataProtectionOfficer.java index f5dad9c2c..6393cc56e 100644 --- a/onboarding-functions/src/main/java/it/pagopa/selfcare/entity/DataProtectionOfficer.java +++ b/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/entity/DataProtectionOfficer.java @@ -1,4 +1,4 @@ -package it.pagopa.selfcare.entity; +package it.pagopa.selfcare.onboarding.entity; public class DataProtectionOfficer { diff --git a/onboarding-functions/src/main/java/it/pagopa/selfcare/entity/Institution.java b/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/entity/Institution.java similarity index 98% rename from onboarding-functions/src/main/java/it/pagopa/selfcare/entity/Institution.java rename to onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/entity/Institution.java index 217f8885e..6f2c53fa0 100644 --- a/onboarding-functions/src/main/java/it/pagopa/selfcare/entity/Institution.java +++ b/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/entity/Institution.java @@ -1,4 +1,4 @@ -package it.pagopa.selfcare.entity; +package it.pagopa.selfcare.onboarding.entity; import it.pagopa.selfcare.commons.base.utils.InstitutionType; import it.pagopa.selfcare.onboarding.common.InstitutionPaSubunitType; diff --git a/onboarding-functions/src/main/java/it/pagopa/selfcare/entity/MailTemplate.java b/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/entity/MailTemplate.java similarity index 92% rename from onboarding-functions/src/main/java/it/pagopa/selfcare/entity/MailTemplate.java rename to onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/entity/MailTemplate.java index ac8a787c8..6444490a7 100644 --- a/onboarding-functions/src/main/java/it/pagopa/selfcare/entity/MailTemplate.java +++ b/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/entity/MailTemplate.java @@ -1,4 +1,4 @@ -package it.pagopa.selfcare.entity; +package it.pagopa.selfcare.onboarding.entity; import java.nio.charset.StandardCharsets; diff --git a/onboarding-functions/src/main/java/it/pagopa/selfcare/entity/Onboarding.java b/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/entity/Onboarding.java similarity index 93% rename from onboarding-functions/src/main/java/it/pagopa/selfcare/entity/Onboarding.java rename to onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/entity/Onboarding.java index 97e836280..312203cf8 100644 --- a/onboarding-functions/src/main/java/it/pagopa/selfcare/entity/Onboarding.java +++ b/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/entity/Onboarding.java @@ -1,14 +1,11 @@ -package it.pagopa.selfcare.entity; +package it.pagopa.selfcare.onboarding.entity; import io.quarkus.mongodb.panache.common.MongoEntity; import it.pagopa.selfcare.onboarding.common.OnboardingStatus; -import org.bson.codecs.pojo.annotations.BsonId; -import org.bson.codecs.pojo.annotations.BsonIgnore; import org.bson.types.ObjectId; import java.time.LocalDateTime; -import java.time.OffsetDateTime; import java.util.List; diff --git a/onboarding-functions/src/main/java/it/pagopa/selfcare/entity/PaymentServiceProvider.java b/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/entity/PaymentServiceProvider.java similarity index 96% rename from onboarding-functions/src/main/java/it/pagopa/selfcare/entity/PaymentServiceProvider.java rename to onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/entity/PaymentServiceProvider.java index 06f47b7bf..89c4b8fe6 100644 --- a/onboarding-functions/src/main/java/it/pagopa/selfcare/entity/PaymentServiceProvider.java +++ b/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/entity/PaymentServiceProvider.java @@ -1,4 +1,4 @@ -package it.pagopa.selfcare.entity; +package it.pagopa.selfcare.onboarding.entity; public class PaymentServiceProvider { diff --git a/onboarding-functions/src/main/java/it/pagopa/selfcare/entity/Token.java b/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/entity/Token.java similarity index 96% rename from onboarding-functions/src/main/java/it/pagopa/selfcare/entity/Token.java rename to onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/entity/Token.java index 2ea3d96ba..b5f4ba0d5 100644 --- a/onboarding-functions/src/main/java/it/pagopa/selfcare/entity/Token.java +++ b/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/entity/Token.java @@ -1,12 +1,10 @@ -package it.pagopa.selfcare.entity; +package it.pagopa.selfcare.onboarding.entity; import io.quarkus.mongodb.panache.common.MongoEntity; import it.pagopa.selfcare.onboarding.common.TokenType; import org.bson.types.ObjectId; import java.time.LocalDateTime; -import java.time.OffsetDateTime; -import java.util.List; @MongoEntity(collection="tokens") diff --git a/onboarding-functions/src/main/java/it/pagopa/selfcare/entity/User.java b/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/entity/User.java similarity index 77% rename from onboarding-functions/src/main/java/it/pagopa/selfcare/entity/User.java rename to onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/entity/User.java index b82d065d6..9198669aa 100644 --- a/onboarding-functions/src/main/java/it/pagopa/selfcare/entity/User.java +++ b/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/entity/User.java @@ -1,4 +1,4 @@ -package it.pagopa.selfcare.entity; +package it.pagopa.selfcare.onboarding.entity; import it.pagopa.selfcare.commons.base.security.PartyRole; @@ -7,7 +7,7 @@ public class User { private String id; private PartyRole role; - private String ProductRole; + private String productRole; public String getId() { return id; @@ -26,10 +26,10 @@ public void setRole(PartyRole role) { } public String getProductRole() { - return ProductRole; + return productRole; } public void setProductRole(String productRole) { - ProductRole = productRole; + this.productRole = productRole; } } diff --git a/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/exception/FunctionOrchestratedException.java b/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/exception/FunctionOrchestratedException.java new file mode 100644 index 000000000..df853c7a7 --- /dev/null +++ b/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/exception/FunctionOrchestratedException.java @@ -0,0 +1,8 @@ +package it.pagopa.selfcare.onboarding.exception; + +public class FunctionOrchestratedException extends RuntimeException { + + public FunctionOrchestratedException(Exception e) { + super(e); + } +} diff --git a/onboarding-functions/src/main/java/it/pagopa/selfcare/exception/GenericOnboardingException.java b/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/exception/GenericOnboardingException.java similarity index 63% rename from onboarding-functions/src/main/java/it/pagopa/selfcare/exception/GenericOnboardingException.java rename to onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/exception/GenericOnboardingException.java index cd77e424a..866ca18d1 100644 --- a/onboarding-functions/src/main/java/it/pagopa/selfcare/exception/GenericOnboardingException.java +++ b/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/exception/GenericOnboardingException.java @@ -1,4 +1,4 @@ -package it.pagopa.selfcare.exception; +package it.pagopa.selfcare.onboarding.exception; public class GenericOnboardingException extends RuntimeException { @@ -9,6 +9,11 @@ public GenericOnboardingException(String message, String code) { this.code = code; } + public GenericOnboardingException(String message) { + super(message); + this.code = "0000"; + } + public String getCode() { return code; } diff --git a/onboarding-functions/src/main/java/it/pagopa/selfcare/exception/ResourceNotFoundException.java b/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/exception/ResourceNotFoundException.java similarity index 89% rename from onboarding-functions/src/main/java/it/pagopa/selfcare/exception/ResourceNotFoundException.java rename to onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/exception/ResourceNotFoundException.java index 9d37e5bf1..e696c94c4 100644 --- a/onboarding-functions/src/main/java/it/pagopa/selfcare/exception/ResourceNotFoundException.java +++ b/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/exception/ResourceNotFoundException.java @@ -1,4 +1,4 @@ -package it.pagopa.selfcare.exception; +package it.pagopa.selfcare.onboarding.exception; public class ResourceNotFoundException extends RuntimeException { diff --git a/onboarding-functions/src/main/java/it/pagopa/selfcare/repository/OnboardingRepository.java b/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/repository/OnboardingRepository.java similarity index 67% rename from onboarding-functions/src/main/java/it/pagopa/selfcare/repository/OnboardingRepository.java rename to onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/repository/OnboardingRepository.java index c362ba277..7223b63c6 100644 --- a/onboarding-functions/src/main/java/it/pagopa/selfcare/repository/OnboardingRepository.java +++ b/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/repository/OnboardingRepository.java @@ -1,7 +1,7 @@ -package it.pagopa.selfcare.repository; +package it.pagopa.selfcare.onboarding.repository; import io.quarkus.mongodb.panache.PanacheMongoRepository; -import it.pagopa.selfcare.entity.Onboarding; +import it.pagopa.selfcare.onboarding.entity.Onboarding; import jakarta.enterprise.context.ApplicationScoped; @ApplicationScoped diff --git a/onboarding-functions/src/main/java/it/pagopa/selfcare/repository/TokenRepository.java b/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/repository/TokenRepository.java similarity index 67% rename from onboarding-functions/src/main/java/it/pagopa/selfcare/repository/TokenRepository.java rename to onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/repository/TokenRepository.java index 2df77444e..b49dd78e4 100644 --- a/onboarding-functions/src/main/java/it/pagopa/selfcare/repository/TokenRepository.java +++ b/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/repository/TokenRepository.java @@ -1,7 +1,7 @@ -package it.pagopa.selfcare.repository; +package it.pagopa.selfcare.onboarding.repository; import io.quarkus.mongodb.panache.PanacheMongoRepository; -import it.pagopa.selfcare.entity.Token; +import it.pagopa.selfcare.onboarding.entity.Token; import jakarta.enterprise.context.ApplicationScoped; @ApplicationScoped diff --git a/onboarding-functions/src/main/java/it/pagopa/selfcare/service/ContractService.java b/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/service/ContractService.java similarity index 81% rename from onboarding-functions/src/main/java/it/pagopa/selfcare/service/ContractService.java rename to onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/service/ContractService.java index b49263fc3..e04e70b70 100644 --- a/onboarding-functions/src/main/java/it/pagopa/selfcare/service/ContractService.java +++ b/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/service/ContractService.java @@ -1,6 +1,6 @@ -package it.pagopa.selfcare.service; +package it.pagopa.selfcare.onboarding.service; -import it.pagopa.selfcare.entity.Onboarding; +import it.pagopa.selfcare.onboarding.entity.Onboarding; import org.openapi.quarkus.user_registry_json.model.UserResource; import java.io.File; diff --git a/onboarding-functions/src/main/java/it/pagopa/selfcare/service/ContractServiceDefault.java b/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/service/ContractServiceDefault.java similarity index 80% rename from onboarding-functions/src/main/java/it/pagopa/selfcare/service/ContractServiceDefault.java rename to onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/service/ContractServiceDefault.java index 3649607e9..c48a82b49 100644 --- a/onboarding-functions/src/main/java/it/pagopa/selfcare/service/ContractServiceDefault.java +++ b/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/service/ContractServiceDefault.java @@ -1,4 +1,4 @@ -package it.pagopa.selfcare.service; +package it.pagopa.selfcare.onboarding.service; import com.openhtmltopdf.extend.FSStream; import com.openhtmltopdf.extend.FSStreamFactory; @@ -6,11 +6,11 @@ import com.openhtmltopdf.svgsupport.BatikSVGDrawer; import it.pagopa.selfcare.azurestorage.AzureBlobClient; import it.pagopa.selfcare.commons.base.utils.InstitutionType; -import it.pagopa.selfcare.config.AzureStorageConfig; -import it.pagopa.selfcare.entity.Institution; -import it.pagopa.selfcare.entity.Onboarding; -import it.pagopa.selfcare.exception.GenericOnboardingException; -import it.pagopa.selfcare.utils.ClassPathStream; +import it.pagopa.selfcare.onboarding.config.AzureStorageConfig; +import it.pagopa.selfcare.onboarding.entity.Institution; +import it.pagopa.selfcare.onboarding.entity.Onboarding; +import it.pagopa.selfcare.onboarding.exception.GenericOnboardingException; +import it.pagopa.selfcare.onboarding.utils.ClassPathStream; import jakarta.enterprise.context.ApplicationScoped; import jakarta.inject.Inject; import org.apache.commons.text.StringSubstitutor; @@ -34,14 +34,15 @@ import java.util.UUID; import static it.pagopa.selfcare.onboarding.common.ProductId.*; -import static it.pagopa.selfcare.utils.GenericError.GENERIC_ERROR; -import static it.pagopa.selfcare.utils.PdfMapper.*; +import static it.pagopa.selfcare.onboarding.utils.GenericError.GENERIC_ERROR; +import static it.pagopa.selfcare.onboarding.utils.PdfMapper.*; @ApplicationScoped public class ContractServiceDefault implements ContractService { - private static final Logger log = LoggerFactory.getLogger(OnboardingService.class); + private static final Logger log = LoggerFactory.getLogger(ContractServiceDefault.class); + public static final String PDF_FORMAT_FILENAME = "%s.pdf"; @Inject AzureStorageConfig azureStorageConfig; @@ -79,14 +80,13 @@ public File createContractPDF(String contractTemplatePath, Onboarding onboarding getPDFAsFile(files, contractTemplateText, data); //return signContract(institution, request, files.toFile()); - final String filename = String.format("%s.pdf", onboarding.getOnboardingId()); + final String filename = String.format(PDF_FORMAT_FILENAME, onboarding.getOnboardingId()); final String path = String.format("%s%s", azureStorageConfig.contractPath(), onboarding.getOnboardingId()); azureBlobClient.uploadFile(path, filename, Files.readAllBytes(files)); return files.toFile(); } catch (IOException e) { - log.warn("can not create contract PDF", e); - throw new GenericOnboardingException(e.getMessage(), "0000"); + throw new GenericOnboardingException(String.format("Can not create contract PDF, message: %s", e.getMessage())); } } @@ -95,14 +95,13 @@ public File loadContractPDF(String contractTemplatePath, String onboardingId) { try { File pdf = azureBlobClient.getFileAsPdf(contractTemplatePath); - final String filename = String.format("%s.pdf", onboardingId); + final String filename = String.format(PDF_FORMAT_FILENAME, onboardingId); final String path = String.format("%s/%s", azureStorageConfig.contractPath(), onboardingId); azureBlobClient.uploadFile(path, filename, Files.readAllBytes(pdf.toPath())); return pdf; } catch (IOException e) { - log.warn("can not load contract PDF", e); - throw new GenericOnboardingException(e.getMessage(), "0000"); + throw new GenericOnboardingException(String.format("Can not load contract PDF, message: %s", e.getMessage())); } } @@ -111,9 +110,7 @@ private void getPDFAsFile(Path files, String contractTemplate, Map<String, Objec String html = StringSubstitutor.replace(contractTemplate, data); PdfRendererBuilder builder = new PdfRendererBuilder(); builder.useFastMode(); - builder.useProtocolsStreamImplementation(new FSStreamFactory() { - @Override - public FSStream getUrl(String url) { + builder.useProtocolsStreamImplementation(url -> { URI fullUri; try { fullUri = new URI(url); @@ -122,7 +119,6 @@ public FSStream getUrl(String url) { log.error("URISintaxException in ClassPathStreamFactory: ",e); throw new GenericOnboardingException(GENERIC_ERROR.getMessage(), GENERIC_ERROR.getCode()); } - } }, "classpath"); var doc = Jsoup.parse(html, "UTF-8"); var dom = W3CDom.convert(doc); @@ -133,7 +129,7 @@ public FSStream getUrl(String url) { builder.toStream(fileOutputStream); builder.run(); } catch (IOException e){ - throw new RuntimeException(e); + throw new GenericOnboardingException(e.getMessage()); } log.debug("PDF stream properly retrieved"); @@ -141,7 +137,7 @@ public FSStream getUrl(String url) { @Override public File retrieveContractNotSigned(String onboardingId) { - final String filename = String.format("%s.pdf", onboardingId); + final String filename = String.format(PDF_FORMAT_FILENAME, onboardingId); final String path = String.format("%s%s/%s", azureStorageConfig.contractPath(), onboardingId, filename); return azureBlobClient.getFileAsPdf(path); } diff --git a/onboarding-functions/src/main/java/it/pagopa/selfcare/service/NotificationService.java b/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/service/NotificationService.java similarity index 81% rename from onboarding-functions/src/main/java/it/pagopa/selfcare/service/NotificationService.java rename to onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/service/NotificationService.java index 5bde5ecc8..2d1b7cfb2 100644 --- a/onboarding-functions/src/main/java/it/pagopa/selfcare/service/NotificationService.java +++ b/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/service/NotificationService.java @@ -1,4 +1,4 @@ -package it.pagopa.selfcare.service; +package it.pagopa.selfcare.onboarding.service; public interface NotificationService { diff --git a/onboarding-functions/src/main/java/it/pagopa/selfcare/service/NotificationServiceDefault.java b/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/service/NotificationServiceDefault.java similarity index 74% rename from onboarding-functions/src/main/java/it/pagopa/selfcare/service/NotificationServiceDefault.java rename to onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/service/NotificationServiceDefault.java index 82dbd10eb..8ac52a0e0 100644 --- a/onboarding-functions/src/main/java/it/pagopa/selfcare/service/NotificationServiceDefault.java +++ b/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/service/NotificationServiceDefault.java @@ -1,11 +1,11 @@ -package it.pagopa.selfcare.service; +package it.pagopa.selfcare.onboarding.service; import com.fasterxml.jackson.databind.ObjectMapper; -import io.quarkus.mailer.Mail; import io.quarkus.mailer.Mailer; import it.pagopa.selfcare.azurestorage.AzureBlobClient; -import it.pagopa.selfcare.config.MailTemplateConfig; -import it.pagopa.selfcare.entity.MailTemplate; +import it.pagopa.selfcare.onboarding.config.MailTemplateConfig; +import it.pagopa.selfcare.onboarding.entity.MailTemplate; +import it.pagopa.selfcare.onboarding.exception.GenericOnboardingException; import jakarta.enterprise.context.ApplicationScoped; import jakarta.inject.Inject; import org.apache.commons.text.StringSubstitutor; @@ -15,12 +15,15 @@ import java.io.ByteArrayOutputStream; import java.io.IOException; -import java.util.*; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; -import static it.pagopa.selfcare.utils.GenericError.ERROR_DURING_COMPRESS_FILE; -import static it.pagopa.selfcare.utils.GenericError.ERROR_DURING_SEND_MAIL; +import static it.pagopa.selfcare.onboarding.utils.GenericError.ERROR_DURING_COMPRESS_FILE; +import static it.pagopa.selfcare.onboarding.utils.GenericError.ERROR_DURING_SEND_MAIL; @ApplicationScoped @@ -28,9 +31,6 @@ public class NotificationServiceDefault implements NotificationService { private static final Logger log = LoggerFactory.getLogger(NotificationServiceDefault.class); - private static final String MAIL_PARAMETER_LOG = "mailParameters: {}"; - private static final String DESTINATION_MAIL_LOG = "destinationMails: {}"; - @Inject MailTemplateConfig mailTemplateConfig; @@ -60,11 +60,7 @@ public void sendMailWithContract(String onboardingId, String filenameContract, S byte[] contractData = azureBlobClient.getFile(filepathContract); byte[] contractZipData = zipBytes(fileName, contractData); - //List<String> destinationMail = Objects.nonNull(coreConfig.getDestinationMails()) && !coreConfig.getDestinationMails().isEmpty() - // ? coreConfig.getDestinationMails() : List.of(destination); - List<String> destinationMail = List.of("manuel.rafeli@pagopa.it"); - - sendMailWithFile(destinationMail, mailTemplateConfig.path(), mailParameters, contractZipData, fileNameZip, productName); + sendMailWithFile(List.of("*.*@pagopa.it"), mailTemplateConfig.path(), mailParameters, contractZipData, fileNameZip, productName); log.debug("onboarding-contract-email Email successful sent"); } @@ -76,19 +72,18 @@ public void sendMailWithFile(List<String> destinationMail, String templateName, String html = StringSubstitutor.replace(mailTemplate.getBody(), mailParameters); log.trace("sendMessage start"); - Mail mail = Mail + /*Mail mail = Mail .withHtml(destinationMail.get(0), prefixSubject + ": " + mailTemplate.getSubject(), html) .addAttachment(fileName, fileData, "application/zip") .setFrom(sendMail); - //mailer.send(mail); + mailer.send(mail); */ log.info("END - sendMail to {}, with prefixSubject {}", destinationMail, prefixSubject); } catch (Exception e) { - log.error(ERROR_DURING_SEND_MAIL + ":" + e.getMessage()); - throw new RuntimeException(ERROR_DURING_SEND_MAIL.getMessage()); + throw new GenericOnboardingException(ERROR_DURING_SEND_MAIL.getMessage()); } log.trace("sendMessage end"); } @@ -104,8 +99,7 @@ public byte[] zipBytes(String filename, byte[] data) { zos.finish(); return baos.toByteArray(); } catch (IOException e) { - log.error(String.format(ERROR_DURING_COMPRESS_FILE.getMessage(), filename), e); - throw new RuntimeException(String.format(ERROR_DURING_COMPRESS_FILE.getMessage(), filename)); + throw new GenericOnboardingException(String.format(ERROR_DURING_COMPRESS_FILE.getMessage(), filename)); } } diff --git a/onboarding-functions/src/main/java/it/pagopa/selfcare/service/OnboardingService.java b/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/service/OnboardingService.java similarity index 90% rename from onboarding-functions/src/main/java/it/pagopa/selfcare/service/OnboardingService.java rename to onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/service/OnboardingService.java index 073b43cae..cb052ce5b 100644 --- a/onboarding-functions/src/main/java/it/pagopa/selfcare/service/OnboardingService.java +++ b/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/service/OnboardingService.java @@ -1,19 +1,19 @@ -package it.pagopa.selfcare.service; +package it.pagopa.selfcare.onboarding.service; 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.entity.Onboarding; -import it.pagopa.selfcare.entity.Token; -import it.pagopa.selfcare.entity.User; -import it.pagopa.selfcare.exception.GenericOnboardingException; +import it.pagopa.selfcare.onboarding.entity.Onboarding; +import it.pagopa.selfcare.onboarding.entity.Token; +import it.pagopa.selfcare.onboarding.entity.User; +import it.pagopa.selfcare.onboarding.exception.GenericOnboardingException; import it.pagopa.selfcare.onboarding.common.TokenType; import it.pagopa.selfcare.product.entity.Product; import it.pagopa.selfcare.product.service.ProductService; -import it.pagopa.selfcare.repository.OnboardingRepository; -import it.pagopa.selfcare.repository.TokenRepository; -import it.pagopa.selfcare.utils.GenericError; +import it.pagopa.selfcare.onboarding.repository.OnboardingRepository; +import it.pagopa.selfcare.onboarding.repository.TokenRepository; +import it.pagopa.selfcare.onboarding.utils.GenericError; import jakarta.enterprise.context.ApplicationScoped; import jakarta.inject.Inject; import org.bson.types.ObjectId; @@ -25,8 +25,6 @@ import java.io.File; import java.time.LocalDateTime; -import java.time.OffsetDateTime; -import java.time.temporal.ChronoUnit; import java.util.List; import java.util.Optional; import java.util.stream.Collectors; diff --git a/onboarding-functions/src/main/java/it/pagopa/selfcare/utils/ClassPathStream.java b/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/utils/ClassPathStream.java similarity index 93% rename from onboarding-functions/src/main/java/it/pagopa/selfcare/utils/ClassPathStream.java rename to onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/utils/ClassPathStream.java index 43ddd6b69..207a0a7a7 100644 --- a/onboarding-functions/src/main/java/it/pagopa/selfcare/utils/ClassPathStream.java +++ b/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/utils/ClassPathStream.java @@ -1,4 +1,4 @@ -package it.pagopa.selfcare.utils; +package it.pagopa.selfcare.onboarding.utils; import com.openhtmltopdf.extend.FSStream; diff --git a/onboarding-functions/src/main/java/it/pagopa/selfcare/utils/GenericError.java b/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/utils/GenericError.java similarity index 86% rename from onboarding-functions/src/main/java/it/pagopa/selfcare/utils/GenericError.java rename to onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/utils/GenericError.java index 710a5b310..497a9a717 100644 --- a/onboarding-functions/src/main/java/it/pagopa/selfcare/utils/GenericError.java +++ b/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/utils/GenericError.java @@ -1,14 +1,14 @@ -package it.pagopa.selfcare.utils; +package it.pagopa.selfcare.onboarding.utils; public enum GenericError { MANAGER_NOT_FOUND_GENERIC_ERROR("0033", "No onboarded managers"), GET_USER_INSTITUTION_RELATIONSHIP_ERROR("0023", "Error while retrieving user relationships"), - GET_INSTITUTION_BY_ID_ERROR("0040", "Error while retrieving institution having id %s"), - GET_INSTITUTION_BY_EXTERNAL_ID_ERROR("0041", "Error while retrieving institution having externalId %s"), - INSTITUTION_MANAGER_ERROR("0042", "Error while retrieving institution having externalId %s"), - INSTITUTION_BILLING_ERROR("0044", "Error while retrieving institution having externalId %s"), + GET_INSTITUTION_BY_ID_ERROR("0040", Constants.ERROR_WHILE_RETRIEVING_INSTITUTION_HAVING_EXTERNAL_ID), + GET_INSTITUTION_BY_EXTERNAL_ID_ERROR("0041", Constants.ERROR_WHILE_RETRIEVING_INSTITUTION_HAVING_EXTERNAL_ID), + INSTITUTION_MANAGER_ERROR("0042", Constants.ERROR_WHILE_RETRIEVING_INSTITUTION_HAVING_EXTERNAL_ID), + INSTITUTION_BILLING_ERROR("0044", Constants.ERROR_WHILE_RETRIEVING_INSTITUTION_HAVING_EXTERNAL_ID), CREATE_INSTITUTION_ERROR("0037", "Error while creating requested institution"), ONBOARDING_OPERATION_ERROR("0017", "Error while performing onboarding operation"), CREATE_DELEGATION_ERROR("0027", "Error while creating requested delegation"), @@ -74,4 +74,8 @@ public String getCode() { public String getMessage() { return detail; } + + private static class Constants { + public static final String ERROR_WHILE_RETRIEVING_INSTITUTION_HAVING_EXTERNAL_ID = "Error while retrieving institution having externalId %s"; + } } diff --git a/onboarding-functions/src/main/java/it/pagopa/selfcare/utils/PdfMapper.java b/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/utils/PdfMapper.java similarity index 94% rename from onboarding-functions/src/main/java/it/pagopa/selfcare/utils/PdfMapper.java rename to onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/utils/PdfMapper.java index d56499a02..3d2f55b20 100644 --- a/onboarding-functions/src/main/java/it/pagopa/selfcare/utils/PdfMapper.java +++ b/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/utils/PdfMapper.java @@ -1,22 +1,17 @@ -package it.pagopa.selfcare.utils; +package it.pagopa.selfcare.onboarding.utils; import it.pagopa.selfcare.commons.base.utils.InstitutionType; - -import it.pagopa.selfcare.entity.Billing; -import it.pagopa.selfcare.entity.Institution; -import it.pagopa.selfcare.entity.Onboarding; -import it.pagopa.selfcare.exception.GenericOnboardingException; -import it.pagopa.selfcare.onboarding.common.InstitutionPaSubunitType; 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.*; -import java.util.stream.Collectors; import static it.pagopa.selfcare.onboarding.common.ProductId.PROD_IO; -import static it.pagopa.selfcare.utils.GenericError.MANAGER_EMAIL_NOT_FOUND; public class PdfMapper { @@ -47,11 +42,11 @@ public static Map<String, Object> setUpCommonData(UserResource validManager, Lis if (geographicTaxonomies != null && !geographicTaxonomies.isEmpty()) { map.put("institutionGeoTaxonomies", geographicTaxonomies); } - if(institution.getSubunitType() != null && (institution.getSubunitType().equals(InstitutionPaSubunitType.AOO.name()) || institution.getSubunitType().equals(InstitutionPaSubunitType.UO.name()))){ + //if(institution.getSubunitType() != null && (institution.getSubunitType().equals(InstitutionPaSubunitType.AOO.name()) || institution.getSubunitType().equals(InstitutionPaSubunitType.UO.name()))){ //map.put("parentInfo", " ente centrale " + institution.getParentDescription()); - } else { + //} else { map.put("parentInfo", ""); - } + //} return map; } diff --git a/onboarding-functions/src/main/resources/application.properties b/onboarding-functions/src/main/resources/application.properties index db86eaccf..640d412d6 100644 --- a/onboarding-functions/src/main/resources/application.properties +++ b/onboarding-functions/src/main/resources/application.properties @@ -70,6 +70,3 @@ onboarding-functions.mail-template.placeholders.onboarding.reject-path = ${MAIL_ onboarding-functions.mail-template.placeholders.onboarding.reject-product-name=productName onboarding-functions.mail-template.placeholders.onboarding.reject-onboarding-url-placeholder=onboardingUrl onboarding-functions.mail-template.placeholders.onboarding.reject-onboarding-url-value=${MAIL_ONBOARDING_URL:} - -## Jacoco -quarkus.jacoco.includes=it/pagopa/selfcare/service/**,it/pagopa/selfcare/repository/** \ No newline at end of file diff --git a/onboarding-functions/src/test/java/it/pagopa/selfcare/HttpResponseMessageMock.java b/onboarding-functions/src/test/java/it/pagopa/selfcare/onboarding/HttpResponseMessageMock.java similarity index 98% rename from onboarding-functions/src/test/java/it/pagopa/selfcare/HttpResponseMessageMock.java rename to onboarding-functions/src/test/java/it/pagopa/selfcare/onboarding/HttpResponseMessageMock.java index 9f90be88e..d8ba89bab 100644 --- a/onboarding-functions/src/test/java/it/pagopa/selfcare/HttpResponseMessageMock.java +++ b/onboarding-functions/src/test/java/it/pagopa/selfcare/onboarding/HttpResponseMessageMock.java @@ -1,4 +1,4 @@ -package it.pagopa.selfcare; +package it.pagopa.selfcare.onboarding; import com.microsoft.azure.functions.HttpResponseMessage; import com.microsoft.azure.functions.HttpStatus; diff --git a/onboarding-functions/src/test/java/it/pagopa/selfcare/OnboardingFunctionsTest.java b/onboarding-functions/src/test/java/it/pagopa/selfcare/onboarding/OnboardingFunctionsTest.java similarity index 96% rename from onboarding-functions/src/test/java/it/pagopa/selfcare/OnboardingFunctionsTest.java rename to onboarding-functions/src/test/java/it/pagopa/selfcare/onboarding/OnboardingFunctionsTest.java index 071068fbf..37145dfe6 100644 --- a/onboarding-functions/src/test/java/it/pagopa/selfcare/OnboardingFunctionsTest.java +++ b/onboarding-functions/src/test/java/it/pagopa/selfcare/onboarding/OnboardingFunctionsTest.java @@ -1,4 +1,4 @@ -package it.pagopa.selfcare; +package it.pagopa.selfcare.onboarding; import com.microsoft.azure.functions.ExecutionContext; import com.microsoft.azure.functions.HttpRequestMessage; @@ -7,6 +7,7 @@ import com.microsoft.durabletask.DurableTaskClient; import com.microsoft.durabletask.azurefunctions.DurableClientContext; import io.quarkus.test.junit.QuarkusTest; +import it.pagopa.selfcare.onboarding.OnboardingFunctions; import org.mockito.invocation.InvocationOnMock; import org.mockito.stubbing.Answer; diff --git a/onboarding-functions/src/test/java/it/pagopa/selfcare/service/ContractServiceDefaultTest.java b/onboarding-functions/src/test/java/it/pagopa/selfcare/onboarding/service/ContractServiceDefaultTest.java similarity index 95% rename from onboarding-functions/src/test/java/it/pagopa/selfcare/service/ContractServiceDefaultTest.java rename to onboarding-functions/src/test/java/it/pagopa/selfcare/onboarding/service/ContractServiceDefaultTest.java index 6a6fff16d..6ddf7983e 100644 --- a/onboarding-functions/src/test/java/it/pagopa/selfcare/service/ContractServiceDefaultTest.java +++ b/onboarding-functions/src/test/java/it/pagopa/selfcare/onboarding/service/ContractServiceDefaultTest.java @@ -1,11 +1,11 @@ -package it.pagopa.selfcare.service; +package it.pagopa.selfcare.onboarding.service; 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.entity.Institution; -import it.pagopa.selfcare.entity.Onboarding; +import it.pagopa.selfcare.onboarding.entity.Institution; +import it.pagopa.selfcare.onboarding.entity.Onboarding; import jakarta.inject.Inject; import org.bson.types.ObjectId; import org.junit.jupiter.api.Test; @@ -28,7 +28,7 @@ import static org.mockito.Mockito.times; @QuarkusTest -public class ContractServiceDefaultTest { +class ContractServiceDefaultTest { @InjectMock AzureBlobClient azureBlobClient; diff --git a/onboarding-functions/src/test/java/it/pagopa/selfcare/service/NotificationServiceDefaultTest.java b/onboarding-functions/src/test/java/it/pagopa/selfcare/onboarding/service/NotificationServiceDefaultTest.java similarity index 86% rename from onboarding-functions/src/test/java/it/pagopa/selfcare/service/NotificationServiceDefaultTest.java rename to onboarding-functions/src/test/java/it/pagopa/selfcare/onboarding/service/NotificationServiceDefaultTest.java index 742d2af85..efc582ba1 100644 --- a/onboarding-functions/src/test/java/it/pagopa/selfcare/service/NotificationServiceDefaultTest.java +++ b/onboarding-functions/src/test/java/it/pagopa/selfcare/onboarding/service/NotificationServiceDefaultTest.java @@ -1,11 +1,9 @@ -package it.pagopa.selfcare.service; +package it.pagopa.selfcare.onboarding.service; import io.quarkus.mailer.Mailer; import io.quarkus.test.InjectMock; import io.quarkus.test.junit.QuarkusTest; import it.pagopa.selfcare.azurestorage.AzureBlobClient; -import it.pagopa.selfcare.config.MailTemplateConfig; -import it.pagopa.selfcare.exception.GenericOnboardingException; import jakarta.inject.Inject; import org.junit.jupiter.api.Test; import org.mockito.Mockito; @@ -16,7 +14,7 @@ import static org.mockito.ArgumentMatchers.any; @QuarkusTest -public class NotificationServiceDefaultTest { +class NotificationServiceDefaultTest { @InjectMock AzureBlobClient azureBlobClient; @@ -34,9 +32,11 @@ void sendMailWithContract() { Mockito.when(azureBlobClient.getFile(any())).thenReturn("example".getBytes(StandardCharsets.UTF_8)); Mockito.when(azureBlobClient.getFileAsText(any())).thenReturn(mailTemplate); - //Mockito.doNothing().when(mailer).send(any()); notificationService.sendMailWithContract("onboardingId", "filenameContract", "","","","",""); + + Mockito.verify(azureBlobClient, Mockito.times(1)) + .getFile(any()); } @Test diff --git a/onboarding-functions/src/test/java/it/pagopa/selfcare/service/OnboardingServiceTest.java b/onboarding-functions/src/test/java/it/pagopa/selfcare/onboarding/service/OnboardingServiceTest.java similarity index 91% rename from onboarding-functions/src/test/java/it/pagopa/selfcare/service/OnboardingServiceTest.java rename to onboarding-functions/src/test/java/it/pagopa/selfcare/onboarding/service/OnboardingServiceTest.java index 2a757ac73..6503726b0 100644 --- a/onboarding-functions/src/test/java/it/pagopa/selfcare/service/OnboardingServiceTest.java +++ b/onboarding-functions/src/test/java/it/pagopa/selfcare/onboarding/service/OnboardingServiceTest.java @@ -1,4 +1,4 @@ -package it.pagopa.selfcare.service; +package it.pagopa.selfcare.onboarding.service; import eu.europa.esig.dss.enumerations.DigestAlgorithm; import eu.europa.esig.dss.model.DSSDocument; @@ -6,14 +6,14 @@ import io.quarkus.test.InjectMock; import io.quarkus.test.junit.QuarkusTest; import it.pagopa.selfcare.commons.base.security.PartyRole; -import it.pagopa.selfcare.entity.Onboarding; -import it.pagopa.selfcare.entity.Token; -import it.pagopa.selfcare.entity.User; -import it.pagopa.selfcare.exception.GenericOnboardingException; +import it.pagopa.selfcare.onboarding.entity.Onboarding; +import it.pagopa.selfcare.onboarding.entity.Token; +import it.pagopa.selfcare.onboarding.entity.User; +import it.pagopa.selfcare.onboarding.exception.GenericOnboardingException; import it.pagopa.selfcare.product.entity.Product; import it.pagopa.selfcare.product.service.ProductService; -import it.pagopa.selfcare.repository.OnboardingRepository; -import it.pagopa.selfcare.repository.TokenRepository; +import it.pagopa.selfcare.onboarding.repository.OnboardingRepository; +import it.pagopa.selfcare.onboarding.repository.TokenRepository; import jakarta.inject.Inject; import org.bson.types.ObjectId; import org.eclipse.microprofile.rest.client.inject.RestClient; @@ -29,12 +29,12 @@ import java.util.Optional; import java.util.UUID; -import static it.pagopa.selfcare.service.OnboardingService.USERS_FIELD_LIST; +import static it.pagopa.selfcare.onboarding.service.OnboardingService.USERS_FIELD_LIST; import static org.junit.jupiter.api.Assertions.*; import static org.mockito.ArgumentMatchers.any; @QuarkusTest -public class OnboardingServiceTest { +class OnboardingServiceTest { @InjectMock OnboardingRepository onboardingRepository;