Updated code
This commit is contained in:
@@ -733,7 +733,7 @@ public class ApplicationAmendmentRequestDao {
|
||||
String body = prepareBody(emailTemplate, amendment, beneficiaryUser);
|
||||
String email = beneficiaryUser.getEmail();
|
||||
if (Boolean.TRUE.equals(amendment.getIsEmail())&&email != null && !email.isEmpty()) {
|
||||
EmailLogRequest emailLogRequest=emailLogDao.createEmailLogRequest(emailTemplate.getEmailScenario(),RecipientTypeEnum.USER,beneficiaryUser.getId(),subject,body,StatusTypeEnum.SUCCESS.getValue(), null,amendment.getId(), EmailEntityTypeEnum.AMENDMENT,beneficiaryUser.getEmail(),beneficiaryUser.getId());
|
||||
EmailLogRequest emailLogRequest=emailLogDao.createEmailLogRequest(emailTemplate.getEmailScenario(),RecipientTypeEnum.USER,beneficiaryUser.getId(),email,beneficiaryUser.getId(),applicationEntity.getId(),amendment.getId(),applicationEntity.getCall().getId());
|
||||
emailNotificationDao.sendMail(hub.getId(), subject, body, List.of(email),emailLogRequest);
|
||||
} else {
|
||||
throw new CustomValidationException(Status.BAD_REQUEST, Translator.toLocale(GepafinConstant.BENEFICIARY_EMAIL_NOT_FOUND_MSG));
|
||||
|
||||
@@ -787,7 +787,7 @@ public class ApplicationDao {
|
||||
// Replace placeholders in the subject and body
|
||||
String subject = Utils.replacePlaceholders(systemEmailTemplateResponse.getSubject(), subjectPlaceholders);
|
||||
String body = Utils.replacePlaceholders(systemEmailTemplateResponse.getHtmlContent(), bodyPlaceholders);
|
||||
EmailLogRequest emailLogRequest=emailLogDao.createEmailLogRequest(systemEmailTemplateResponse.getEmailScenario(),RecipientTypeEnum.USER,userEntity.getId(),subject,body, StatusTypeEnum.SUCCESS.getValue(), null,applicationEntity.getId(), EmailEntityTypeEnum.APPLICATION,userEntity.getEmail(),userEntity.getId());
|
||||
EmailLogRequest emailLogRequest=emailLogDao.createEmailLogRequest(systemEmailTemplateResponse.getEmailScenario(),RecipientTypeEnum.USER,userEntity.getId(),userEntity.getEmail(),userEntity.getId(),applicationEntity.getId(),null,applicationEntity.getCall().getId());
|
||||
String email = userEntity.getEmail();
|
||||
if (userEntity.getBeneficiary() != null) {
|
||||
emailLogRequest.setRecipientType(RecipientTypeEnum.BENEFICIARY);
|
||||
@@ -839,7 +839,7 @@ public class ApplicationDao {
|
||||
String subject = Utils.replacePlaceholders(systemEmailTemplateResponse.getSubject(), subjectPlaceholders);
|
||||
String body = Utils.replacePlaceholders(systemEmailTemplateResponse.getHtmlContent(), bodyPlaceholders);
|
||||
|
||||
EmailLogRequest emailLogRequest=emailLogDao.createEmailLogRequest(systemEmailTemplateResponse.getEmailScenario(),RecipientTypeEnum.PROPERTIES,null,subject,body,StatusTypeEnum.SUCCESS.getValue(), null,applicationEntity.getId(), EmailEntityTypeEnum.APPLICATION,userEntity.getEmail(),userEntity.getId());
|
||||
EmailLogRequest emailLogRequest=emailLogDao.createEmailLogRequest(systemEmailTemplateResponse.getEmailScenario(),RecipientTypeEnum.PROPERTIES,null,userEntity.getEmail(),userEntity.getId(),applicationEntity.getId(),null,applicationEntity.getCall().getId());
|
||||
|
||||
// mailUtil.sendByMailGun(subject, body, List.of(defaultSystemReceiverEmail), null);
|
||||
// mailUtil.sendByMailGun(subject, body, List.of(gepafinEmail), null);
|
||||
|
||||
@@ -34,10 +34,9 @@ public class EmailLogDao {
|
||||
emailLogEntity.setRecipientEmails(emailLogRequest.getRecipientEmails());
|
||||
emailLogEntity.setEmailServiceType(emailLogRequest.getEmailServiceType().getValue());
|
||||
emailLogEntity.setIsDeleted(false);
|
||||
if(emailLogRequest.getEntityId()!=null && emailLogRequest.getEntityId()>0){
|
||||
emailLogEntity.setEntityId(emailLogRequest.getEntityId());
|
||||
emailLogEntity.setEntityType(emailLogRequest.getEntitytype().getValue());
|
||||
}
|
||||
emailLogEntity.setApplicationId(emailLogRequest.getApplicatioId());
|
||||
emailLogEntity.setAmendmentId(emailLogRequest.getAmendmentId());
|
||||
emailLogEntity.setCallId(emailLogRequest.getCallId());
|
||||
emailLogEntity=saveEmailLogEntity(emailLogEntity);
|
||||
return emailLogEntity;
|
||||
}
|
||||
@@ -45,20 +44,16 @@ public class EmailLogDao {
|
||||
return emailLogRepository.save(emailLogEntity);
|
||||
}
|
||||
public EmailLogRequest createEmailLogRequest(EmailScenarioTypeEnum emailType, RecipientTypeEnum recipientType, Long recipientId,
|
||||
String emailSubject, String emailBody, String sendStatus,
|
||||
String errorMessage, Long entityId, EmailEntityTypeEnum entityType, String recipientEmails, Long userId) {
|
||||
String recipientEmails, Long userId,Long applicationId,Long amendmentId,Long callId) {
|
||||
EmailLogRequest emailLogRequest = new EmailLogRequest();
|
||||
emailLogRequest.setEmailType(emailType);
|
||||
emailLogRequest.setRecipientType(recipientType);
|
||||
emailLogRequest.setRecipientId(recipientId);
|
||||
emailLogRequest.setEmailSubject(emailSubject);
|
||||
emailLogRequest.setEmailBody(emailBody);
|
||||
emailLogRequest.setSendStatus(sendStatus);
|
||||
emailLogRequest.setErrorMessage(errorMessage);
|
||||
emailLogRequest.setUserId(userId);
|
||||
emailLogRequest.setEntityId(entityId);
|
||||
emailLogRequest.setEntitytype(entityType);
|
||||
emailLogRequest.setRecipientEmails(recipientEmails);
|
||||
emailLogRequest.setApplicatioId(applicationId);
|
||||
emailLogRequest.setAmendmentId(amendmentId);
|
||||
emailLogRequest.setCallId(callId);
|
||||
return emailLogRequest;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -61,7 +61,7 @@ public class EmailNotificationDao {
|
||||
|
||||
|
||||
private void sendEmail(ApplicationEntity applicationEntity, SystemEmailTemplatesEntity.SystemEmailTemplatesEntityTypeEnum templateType,
|
||||
Map<String, String> bodyPlaceholders, List<String> additionalRecipients,Boolean isAmendment,Long amendmentId) {
|
||||
Map<String, String> bodyPlaceholders, List<String> additionalRecipients,Long amendmentId) {
|
||||
|
||||
HubEntity hubEntity = hubService.valdateHub(applicationEntity.getHubId());
|
||||
String service = determineService(applicationEntity.getHubId());
|
||||
@@ -77,11 +77,7 @@ public class EmailNotificationDao {
|
||||
|
||||
UserEntity userEntity = userService.validateUser(applicationEntity.getUserId());
|
||||
List<String> recipientEmails = getRecipientEmails(applicationEntity, userEntity, additionalRecipients);
|
||||
EmailLogRequest emailLogRequest=emailLogDao.createEmailLogRequest(systemEmailTemplateResponse.getEmailScenario(), RecipientTypeEnum.BENEFICIARY,userEntity.getBeneficiary().getId(),subject,body, StatusTypeEnum.SUCCESS.getValue(), null, applicationEntity.getId(), EmailEntityTypeEnum.APPLICATION,Utils.listToCommaSeparatedString(recipientEmails),userEntity.getId());
|
||||
if(Boolean.TRUE.equals(isAmendment) && amendmentId !=null){
|
||||
emailLogRequest.setEntitytype(EmailEntityTypeEnum.AMENDMENT);
|
||||
emailLogRequest.setEntityId(amendmentId);
|
||||
}
|
||||
EmailLogRequest emailLogRequest=emailLogDao.createEmailLogRequest(systemEmailTemplateResponse.getEmailScenario(), RecipientTypeEnum.BENEFICIARY,userEntity.getBeneficiary().getId(),Utils.listToCommaSeparatedString(recipientEmails),userEntity.getId(),applicationEntity.getId(),amendmentId ,applicationEntity.getCall().getId());
|
||||
sendMail(applicationEntity.getHubId(), subject, body, recipientEmails,emailLogRequest);
|
||||
}
|
||||
private List<String> getRecipientEmails(ApplicationEntity applicationEntity, UserEntity userEntity, List<String> additionalRecipients) {
|
||||
@@ -141,7 +137,7 @@ public class EmailNotificationDao {
|
||||
log.error("Failed to parse form fields JSON: ", e);
|
||||
}
|
||||
bodyPlaceholders.put("{{note}}", applicationAmendmentRequest.getNote());
|
||||
sendEmail(applicationEntity, SystemEmailTemplatesEntity.SystemEmailTemplatesEntityTypeEnum.DOCUMENTATION_INTEGRATION_REQUEST, bodyPlaceholders, null,true,applicationAmendmentRequest.getId());
|
||||
sendEmail(applicationEntity, SystemEmailTemplatesEntity.SystemEmailTemplatesEntityTypeEnum.DOCUMENTATION_INTEGRATION_REQUEST, bodyPlaceholders, null,applicationAmendmentRequest.getId());
|
||||
}
|
||||
|
||||
public void sendApplicationFailureNotificationEmail(ApplicationAmendmentRequestEntity amendmentRequest) {
|
||||
@@ -151,14 +147,14 @@ public class EmailNotificationDao {
|
||||
Map<String, String> bodyPlaceholders = new HashMap<>();
|
||||
bodyPlaceholders.put("{{call_name}}", applicationEntity.getCall().getName());
|
||||
LocalDateTime lastReminderDateTime=amendmentRequest.getCreatedDate();
|
||||
List<EmailLogEntity> emailLogEntity = emailLogRepository.findByUserIdAndEntityIdAndEntityTypeAndIsDeletedFalse(user.getId(),amendmentRequest.getId(),EmailEntityTypeEnum.AMENDMENT.getValue());
|
||||
List<EmailLogEntity> emailLogEntity = emailLogRepository.findByUserIdAndAmendmentIdAndIsDeletedFalse(user.getId(),amendmentRequest.getId());
|
||||
if(emailLogEntity!=null && (!emailLogEntity.isEmpty())){
|
||||
EmailLogEntity emailLogEntity1=emailLogEntity.get(0);
|
||||
lastReminderDateTime=emailLogEntity1.getSendDateTime();
|
||||
}
|
||||
bodyPlaceholders.put("{{date_time_emailSend}}", DateTimeUtil.formatLocalDateTime(lastReminderDateTime, GepafinConstant.DD_MM_YYYY));
|
||||
|
||||
sendEmail(applicationEntity, SystemEmailTemplatesEntity.SystemEmailTemplatesEntityTypeEnum.INADMISSIBILITY_NOTIFICATION_DUE_TO_FAILURE, bodyPlaceholders, null,true,amendmentRequest.getId());
|
||||
sendEmail(applicationEntity, SystemEmailTemplatesEntity.SystemEmailTemplatesEntityTypeEnum.INADMISSIBILITY_NOTIFICATION_DUE_TO_FAILURE, bodyPlaceholders, null,amendmentRequest.getId());
|
||||
}
|
||||
|
||||
public void sendAdmissibilityNotificationEmailForApprovedApplication(ApplicationEntity applicationEntity) {
|
||||
@@ -168,7 +164,7 @@ public class EmailNotificationDao {
|
||||
bodyPlaceholders.put("{{protocol_date}}", DateTimeUtil.formatCreatedDate(applicationEntity.getProtocol().getCreatedDate()));
|
||||
bodyPlaceholders.put("{{protocol_time}}", DateTimeUtil.parseLocalTimeToString(applicationEntity.getProtocol().getTime(), GepafinConstant.HH_MM_SS));
|
||||
|
||||
sendEmail(applicationEntity, SystemEmailTemplatesEntity.SystemEmailTemplatesEntityTypeEnum.ADMISSIBILITY_NOTIFICATION, bodyPlaceholders, null,false,null);
|
||||
sendEmail(applicationEntity, SystemEmailTemplatesEntity.SystemEmailTemplatesEntityTypeEnum.ADMISSIBILITY_NOTIFICATION, bodyPlaceholders, null,null);
|
||||
}
|
||||
|
||||
public void sendInadmissibilityEmailForRejectedApplication(ApplicationEntity applicationEntity,ApplicationEvaluationEntity applicationEvaluationEntity) {
|
||||
@@ -179,7 +175,7 @@ public class EmailNotificationDao {
|
||||
bodyPlaceholders.put("{{protocol_time}}", DateTimeUtil.parseLocalTimeToString(applicationEntity.getProtocol().getTime(), GepafinConstant.HH_MM_SS));
|
||||
bodyPlaceholders.put("{{form_text}}", applicationEvaluationEntity.getNote());
|
||||
|
||||
sendEmail(applicationEntity, SystemEmailTemplatesEntity.SystemEmailTemplatesEntityTypeEnum.INADMISSIBILITY_TEMPLATE, bodyPlaceholders, null,false,null);
|
||||
sendEmail(applicationEntity, SystemEmailTemplatesEntity.SystemEmailTemplatesEntityTypeEnum.INADMISSIBILITY_TEMPLATE, bodyPlaceholders, null,null);
|
||||
}
|
||||
|
||||
public void sendMail(Long hubId, String subject, String body, List<String> recipientEmails, EmailLogRequest emailLogRequest) {
|
||||
|
||||
@@ -45,11 +45,14 @@ public class EmailLogEntity extends BaseEntity{
|
||||
@Column(name = "user_id")
|
||||
private Long userId;
|
||||
|
||||
@Column(name = "entity_id")
|
||||
private Long entityId;
|
||||
@Column(name = "application_id")
|
||||
private Long applicationId;
|
||||
|
||||
@Column(name = "entity_type")
|
||||
private String entityType;
|
||||
@Column(name = "amendment_id")
|
||||
private Long amendmentId;
|
||||
|
||||
@Column(name = "call_id")
|
||||
private Long callId;
|
||||
|
||||
@Column(name = "is_deleted")
|
||||
private Boolean isDeleted;
|
||||
|
||||
@@ -23,10 +23,6 @@ public class EmailLogRequest {
|
||||
|
||||
private String errorMessage;
|
||||
|
||||
private Long entityId;
|
||||
|
||||
private EmailEntityTypeEnum entitytype;
|
||||
|
||||
private Long userId;
|
||||
|
||||
private String emailServiceResponse;
|
||||
@@ -35,4 +31,10 @@ public class EmailLogRequest {
|
||||
|
||||
private String recipientEmails;
|
||||
|
||||
private Long applicatioId;
|
||||
|
||||
private Long amendmentId;
|
||||
|
||||
private Long callId;
|
||||
|
||||
}
|
||||
|
||||
@@ -7,5 +7,5 @@ import java.util.List;
|
||||
|
||||
public interface EmailLogRepository extends JpaRepository<EmailLogEntity,Long> {
|
||||
|
||||
List<EmailLogEntity> findByUserIdAndEntityIdAndEntityTypeAndIsDeletedFalse(Long userId,Long entityId,String entityType);
|
||||
List<EmailLogEntity> findByUserIdAndAmendmentIdAndIsDeletedFalse(Long userId,Long amendmentId);
|
||||
}
|
||||
|
||||
@@ -45,7 +45,9 @@ public class MailgunEmailService implements EmailService {
|
||||
// Send email via Mailgun API
|
||||
HttpResponse<String> response2=null;
|
||||
if (Boolean.FALSE.equals(validator.isTestProfileActivated())) {
|
||||
|
||||
emailLogRequest.setEmailSubject(subject);
|
||||
emailLogRequest.setEmailBody(body);
|
||||
emailLogRequest.setSendStatus(StatusTypeEnum.SUCCESS.getValue());
|
||||
emailLogRequest.setRecipientEmails(Utils.listToCommaSeparatedString(recipientEmails));
|
||||
try {
|
||||
Unirest.setTimeouts(0, 0);
|
||||
|
||||
@@ -50,6 +50,9 @@ public class PecEmailService implements EmailService {
|
||||
String authToken = emailConfig.getAuthToken();
|
||||
HttpResponse<String> response2=null;
|
||||
if (Boolean.FALSE.equals(validator.isTestProfileActivated())) {
|
||||
emailLogRequest.setEmailSubject(emailRequest.getSubject());
|
||||
emailLogRequest.setEmailBody(emailRequest.getBody());
|
||||
emailLogRequest.setSendStatus(StatusTypeEnum.SUCCESS.getValue());
|
||||
emailLogRequest.setRecipientEmails(Utils.listToCommaSeparatedString(emailRequest.getRecipient()));
|
||||
try {
|
||||
Unirest.setTimeouts(0, 0);
|
||||
|
||||
@@ -1775,6 +1775,14 @@
|
||||
<changeSet id="18-11-2024_1" author="Nisha Kashyap">
|
||||
<addColumn tableName="email_log">
|
||||
<column name="is_deleted" type="BOOLEAN" defaultValueBoolean="false"></column>
|
||||
<column name="application_id" type="INTEGER" ></column>
|
||||
<column name="amendment_id" type="INTEGER"></column>
|
||||
<column name="call_id" type="INTEGER"></column>
|
||||
</addColumn>
|
||||
<dropColumn tableName="email_log">
|
||||
<column name="entity_id"></column>
|
||||
<column name="entity_type"></column>
|
||||
</dropColumn>
|
||||
</changeSet>
|
||||
|
||||
</databaseChangeLog>
|
||||
|
||||
Reference in New Issue
Block a user