diff --git a/src/main/java/net/gepafin/tendermanagement/constants/GepafinConstant.java b/src/main/java/net/gepafin/tendermanagement/constants/GepafinConstant.java index d0fb0136..7e165dc3 100644 --- a/src/main/java/net/gepafin/tendermanagement/constants/GepafinConstant.java +++ b/src/main/java/net/gepafin/tendermanagement/constants/GepafinConstant.java @@ -541,6 +541,8 @@ public class GepafinConstant { public static final String RESEND_EMAIL_SENT_FAILED_MSG = "resend.email.sent.failed.msg"; public static final String REMINDER_EMAIL_FAILED_MSG = "reminder.email.sent.failed.msg"; + public static final String NO_EMAIL_LOG_FOUND = "no.email.log.msg"; + public static final String USER_ACTION_ID_NOT_FOUND = "user.action.id.not.found"; diff --git a/src/main/java/net/gepafin/tendermanagement/dao/EmailDao.java b/src/main/java/net/gepafin/tendermanagement/dao/EmailDao.java index df5566e0..6e46d475 100644 --- a/src/main/java/net/gepafin/tendermanagement/dao/EmailDao.java +++ b/src/main/java/net/gepafin/tendermanagement/dao/EmailDao.java @@ -3,9 +3,11 @@ package net.gepafin.tendermanagement.dao; import jakarta.servlet.http.HttpServletRequest; import lombok.extern.log4j.Log4j2; +import net.gepafin.tendermanagement.config.Translator; import net.gepafin.tendermanagement.constants.GepafinConstant; import net.gepafin.tendermanagement.entities.CallEntity; import net.gepafin.tendermanagement.entities.EmailLogEntity; +import net.gepafin.tendermanagement.entities.UserActionEntity; import net.gepafin.tendermanagement.enums.EmailScenarioTypeEnum; import net.gepafin.tendermanagement.enums.EmailServiceTypeEnum; import net.gepafin.tendermanagement.enums.RecipientTypeEnum; @@ -14,8 +16,12 @@ import net.gepafin.tendermanagement.model.request.EmailLogRequest; import net.gepafin.tendermanagement.model.response.EmailResendResponseBean; import net.gepafin.tendermanagement.model.response.EmailSendResponse; import net.gepafin.tendermanagement.repositories.EmailLogRepository; +import net.gepafin.tendermanagement.repositories.UserActionsRepository; import net.gepafin.tendermanagement.service.CallService; import net.gepafin.tendermanagement.util.Utils; +import net.gepafin.tendermanagement.web.rest.api.errors.CustomValidationException; +import net.gepafin.tendermanagement.web.rest.api.errors.ResourceNotFoundException; +import net.gepafin.tendermanagement.web.rest.api.errors.Status; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; @@ -38,10 +44,19 @@ public class EmailDao { @Autowired private EmailLogDao emailLogDao; + @Autowired + private UserActionsRepository userActionsRepository; + public EmailResendResponseBean resendEmail(HttpServletRequest request , Long userActionId){ + UserActionEntity userActionEntity = userActionsRepository.findUserActionByIdAndIsDeletedFalse(userActionId); + if(userActionEntity == null){ + throw new ResourceNotFoundException(Status.NOT_FOUND, Translator.toLocale(GepafinConstant.USER_ACTION_ID_NOT_FOUND)); + } List emailLogs = emailLogRepository.findByUserActionIdAndEmailServiceTypeAndSendStatus(userActionId,EmailServiceTypeEnum.PEC_SERVICE.getValue(),StatusTypeEnum.FAILED.getValue()); + if (emailLogs.isEmpty()) { - log.info("No emails found for given userActionId."); + log.info("No emails found for given userActionId: {}",userActionId); + throw new CustomValidationException(Status.VALIDATION_ERROR,Translator.toLocale(GepafinConstant.NO_EMAIL_LOG_FOUND)); } EmailResendResponseBean emailResendResponseBean = new EmailResendResponseBean(); for (EmailLogEntity log : emailLogs){ diff --git a/src/main/resources/message_en.properties b/src/main/resources/message_en.properties index b09c8d62..ddd71c3e 100644 --- a/src/main/resources/message_en.properties +++ b/src/main/resources/message_en.properties @@ -403,4 +403,6 @@ invalid.user=Invalid user. reminder.email.sent.failed.msg = Failed to send reminder email resend.email.sent.success.msg = Email resend successfully -resend.email.sent.failed.msg = Failed to resend the email. \ No newline at end of file +resend.email.sent.failed.msg = Failed to resend the email. +no.email.log.msg = No failed emails found for given userActionId. +user.action.id.not.found = User Action id not found. \ No newline at end of file diff --git a/src/main/resources/message_it.properties b/src/main/resources/message_it.properties index faafb940..09ec0e49 100644 --- a/src/main/resources/message_it.properties +++ b/src/main/resources/message_it.properties @@ -394,4 +394,6 @@ invalid.user=Utente non valido. reminder.email.sent.failed.msg = Impossibile inviare l'e-mail di promemoria resend.email.sent.success.msg = Email reinviata con successo -resend.email.sent.failed.msg = Impossibile inviare nuovamente l'e-mail. \ No newline at end of file +resend.email.sent.failed.msg = Impossibile inviare nuovamente l'e-mail. +no.email.log.msg = Nessuna email trovata per userActionId specificato. +user.action.id.not.found = ID azione utente non trovato. \ No newline at end of file