Updated code

This commit is contained in:
nisha
2024-11-18 16:49:01 +05:30
parent dac9610b0f
commit 0342d1b2eb
10 changed files with 46 additions and 37 deletions

View File

@@ -733,7 +733,7 @@ public class ApplicationAmendmentRequestDao {
String body = prepareBody(emailTemplate, amendment, beneficiaryUser); String body = prepareBody(emailTemplate, amendment, beneficiaryUser);
String email = beneficiaryUser.getEmail(); String email = beneficiaryUser.getEmail();
if (Boolean.TRUE.equals(amendment.getIsEmail())&&email != null && !email.isEmpty()) { 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); emailNotificationDao.sendMail(hub.getId(), subject, body, List.of(email),emailLogRequest);
} else { } else {
throw new CustomValidationException(Status.BAD_REQUEST, Translator.toLocale(GepafinConstant.BENEFICIARY_EMAIL_NOT_FOUND_MSG)); throw new CustomValidationException(Status.BAD_REQUEST, Translator.toLocale(GepafinConstant.BENEFICIARY_EMAIL_NOT_FOUND_MSG));

View File

@@ -787,8 +787,8 @@ public class ApplicationDao {
// Replace placeholders in the subject and body // Replace placeholders in the subject and body
String subject = Utils.replacePlaceholders(systemEmailTemplateResponse.getSubject(), subjectPlaceholders); String subject = Utils.replacePlaceholders(systemEmailTemplateResponse.getSubject(), subjectPlaceholders);
String body = Utils.replacePlaceholders(systemEmailTemplateResponse.getHtmlContent(), bodyPlaceholders); 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(); String email = userEntity.getEmail();
if (userEntity.getBeneficiary() != null) { if (userEntity.getBeneficiary() != null) {
emailLogRequest.setRecipientType(RecipientTypeEnum.BENEFICIARY); emailLogRequest.setRecipientType(RecipientTypeEnum.BENEFICIARY);
email = userEntity.getBeneficiary().getEmail(); email = userEntity.getBeneficiary().getEmail();
@@ -839,7 +839,7 @@ public class ApplicationDao {
String subject = Utils.replacePlaceholders(systemEmailTemplateResponse.getSubject(), subjectPlaceholders); String subject = Utils.replacePlaceholders(systemEmailTemplateResponse.getSubject(), subjectPlaceholders);
String body = Utils.replacePlaceholders(systemEmailTemplateResponse.getHtmlContent(), bodyPlaceholders); 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(defaultSystemReceiverEmail), null);
// mailUtil.sendByMailGun(subject, body, List.of(gepafinEmail), null); // mailUtil.sendByMailGun(subject, body, List.of(gepafinEmail), null);

View File

@@ -34,10 +34,9 @@ public class EmailLogDao {
emailLogEntity.setRecipientEmails(emailLogRequest.getRecipientEmails()); emailLogEntity.setRecipientEmails(emailLogRequest.getRecipientEmails());
emailLogEntity.setEmailServiceType(emailLogRequest.getEmailServiceType().getValue()); emailLogEntity.setEmailServiceType(emailLogRequest.getEmailServiceType().getValue());
emailLogEntity.setIsDeleted(false); emailLogEntity.setIsDeleted(false);
if(emailLogRequest.getEntityId()!=null && emailLogRequest.getEntityId()>0){ emailLogEntity.setApplicationId(emailLogRequest.getApplicatioId());
emailLogEntity.setEntityId(emailLogRequest.getEntityId()); emailLogEntity.setAmendmentId(emailLogRequest.getAmendmentId());
emailLogEntity.setEntityType(emailLogRequest.getEntitytype().getValue()); emailLogEntity.setCallId(emailLogRequest.getCallId());
}
emailLogEntity=saveEmailLogEntity(emailLogEntity); emailLogEntity=saveEmailLogEntity(emailLogEntity);
return emailLogEntity; return emailLogEntity;
} }
@@ -45,20 +44,16 @@ public class EmailLogDao {
return emailLogRepository.save(emailLogEntity); return emailLogRepository.save(emailLogEntity);
} }
public EmailLogRequest createEmailLogRequest(EmailScenarioTypeEnum emailType, RecipientTypeEnum recipientType, Long recipientId, public EmailLogRequest createEmailLogRequest(EmailScenarioTypeEnum emailType, RecipientTypeEnum recipientType, Long recipientId,
String emailSubject, String emailBody, String sendStatus, String recipientEmails, Long userId,Long applicationId,Long amendmentId,Long callId) {
String errorMessage, Long entityId, EmailEntityTypeEnum entityType, String recipientEmails, Long userId) {
EmailLogRequest emailLogRequest = new EmailLogRequest(); EmailLogRequest emailLogRequest = new EmailLogRequest();
emailLogRequest.setEmailType(emailType); emailLogRequest.setEmailType(emailType);
emailLogRequest.setRecipientType(recipientType); emailLogRequest.setRecipientType(recipientType);
emailLogRequest.setRecipientId(recipientId); emailLogRequest.setRecipientId(recipientId);
emailLogRequest.setEmailSubject(emailSubject);
emailLogRequest.setEmailBody(emailBody);
emailLogRequest.setSendStatus(sendStatus);
emailLogRequest.setErrorMessage(errorMessage);
emailLogRequest.setUserId(userId); emailLogRequest.setUserId(userId);
emailLogRequest.setEntityId(entityId);
emailLogRequest.setEntitytype(entityType);
emailLogRequest.setRecipientEmails(recipientEmails); emailLogRequest.setRecipientEmails(recipientEmails);
emailLogRequest.setApplicatioId(applicationId);
emailLogRequest.setAmendmentId(amendmentId);
emailLogRequest.setCallId(callId);
return emailLogRequest; return emailLogRequest;
} }
} }

View File

@@ -61,7 +61,7 @@ public class EmailNotificationDao {
private void sendEmail(ApplicationEntity applicationEntity, SystemEmailTemplatesEntity.SystemEmailTemplatesEntityTypeEnum templateType, 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()); HubEntity hubEntity = hubService.valdateHub(applicationEntity.getHubId());
String service = determineService(applicationEntity.getHubId()); String service = determineService(applicationEntity.getHubId());
@@ -77,11 +77,7 @@ public class EmailNotificationDao {
UserEntity userEntity = userService.validateUser(applicationEntity.getUserId()); UserEntity userEntity = userService.validateUser(applicationEntity.getUserId());
List<String> recipientEmails = getRecipientEmails(applicationEntity, userEntity, additionalRecipients); 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()); EmailLogRequest emailLogRequest=emailLogDao.createEmailLogRequest(systemEmailTemplateResponse.getEmailScenario(), RecipientTypeEnum.BENEFICIARY,userEntity.getBeneficiary().getId(),Utils.listToCommaSeparatedString(recipientEmails),userEntity.getId(),applicationEntity.getId(),amendmentId ,applicationEntity.getCall().getId());
if(Boolean.TRUE.equals(isAmendment) && amendmentId !=null){
emailLogRequest.setEntitytype(EmailEntityTypeEnum.AMENDMENT);
emailLogRequest.setEntityId(amendmentId);
}
sendMail(applicationEntity.getHubId(), subject, body, recipientEmails,emailLogRequest); sendMail(applicationEntity.getHubId(), subject, body, recipientEmails,emailLogRequest);
} }
private List<String> getRecipientEmails(ApplicationEntity applicationEntity, UserEntity userEntity, List<String> additionalRecipients) { 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); log.error("Failed to parse form fields JSON: ", e);
} }
bodyPlaceholders.put("{{note}}", applicationAmendmentRequest.getNote()); 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) { public void sendApplicationFailureNotificationEmail(ApplicationAmendmentRequestEntity amendmentRequest) {
@@ -151,14 +147,14 @@ public class EmailNotificationDao {
Map<String, String> bodyPlaceholders = new HashMap<>(); Map<String, String> bodyPlaceholders = new HashMap<>();
bodyPlaceholders.put("{{call_name}}", applicationEntity.getCall().getName()); bodyPlaceholders.put("{{call_name}}", applicationEntity.getCall().getName());
LocalDateTime lastReminderDateTime=amendmentRequest.getCreatedDate(); 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())){ if(emailLogEntity!=null && (!emailLogEntity.isEmpty())){
EmailLogEntity emailLogEntity1=emailLogEntity.get(0); EmailLogEntity emailLogEntity1=emailLogEntity.get(0);
lastReminderDateTime=emailLogEntity1.getSendDateTime(); lastReminderDateTime=emailLogEntity1.getSendDateTime();
} }
bodyPlaceholders.put("{{date_time_emailSend}}", DateTimeUtil.formatLocalDateTime(lastReminderDateTime, GepafinConstant.DD_MM_YYYY)); 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) { public void sendAdmissibilityNotificationEmailForApprovedApplication(ApplicationEntity applicationEntity) {
@@ -168,7 +164,7 @@ public class EmailNotificationDao {
bodyPlaceholders.put("{{protocol_date}}", DateTimeUtil.formatCreatedDate(applicationEntity.getProtocol().getCreatedDate())); bodyPlaceholders.put("{{protocol_date}}", DateTimeUtil.formatCreatedDate(applicationEntity.getProtocol().getCreatedDate()));
bodyPlaceholders.put("{{protocol_time}}", DateTimeUtil.parseLocalTimeToString(applicationEntity.getProtocol().getTime(), GepafinConstant.HH_MM_SS)); 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) { 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("{{protocol_time}}", DateTimeUtil.parseLocalTimeToString(applicationEntity.getProtocol().getTime(), GepafinConstant.HH_MM_SS));
bodyPlaceholders.put("{{form_text}}", applicationEvaluationEntity.getNote()); 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) { public void sendMail(Long hubId, String subject, String body, List<String> recipientEmails, EmailLogRequest emailLogRequest) {

View File

@@ -45,11 +45,14 @@ public class EmailLogEntity extends BaseEntity{
@Column(name = "user_id") @Column(name = "user_id")
private Long userId; private Long userId;
@Column(name = "entity_id") @Column(name = "application_id")
private Long entityId; private Long applicationId;
@Column(name = "entity_type") @Column(name = "amendment_id")
private String entityType; private Long amendmentId;
@Column(name = "call_id")
private Long callId;
@Column(name = "is_deleted") @Column(name = "is_deleted")
private Boolean isDeleted; private Boolean isDeleted;

View File

@@ -23,10 +23,6 @@ public class EmailLogRequest {
private String errorMessage; private String errorMessage;
private Long entityId;
private EmailEntityTypeEnum entitytype;
private Long userId; private Long userId;
private String emailServiceResponse; private String emailServiceResponse;
@@ -35,4 +31,10 @@ public class EmailLogRequest {
private String recipientEmails; private String recipientEmails;
private Long applicatioId;
private Long amendmentId;
private Long callId;
} }

View File

@@ -7,5 +7,5 @@ import java.util.List;
public interface EmailLogRepository extends JpaRepository<EmailLogEntity,Long> { public interface EmailLogRepository extends JpaRepository<EmailLogEntity,Long> {
List<EmailLogEntity> findByUserIdAndEntityIdAndEntityTypeAndIsDeletedFalse(Long userId,Long entityId,String entityType); List<EmailLogEntity> findByUserIdAndAmendmentIdAndIsDeletedFalse(Long userId,Long amendmentId);
} }

View File

@@ -45,7 +45,9 @@ public class MailgunEmailService implements EmailService {
// Send email via Mailgun API // Send email via Mailgun API
HttpResponse<String> response2=null; HttpResponse<String> response2=null;
if (Boolean.FALSE.equals(validator.isTestProfileActivated())) { if (Boolean.FALSE.equals(validator.isTestProfileActivated())) {
emailLogRequest.setEmailSubject(subject);
emailLogRequest.setEmailBody(body);
emailLogRequest.setSendStatus(StatusTypeEnum.SUCCESS.getValue());
emailLogRequest.setRecipientEmails(Utils.listToCommaSeparatedString(recipientEmails)); emailLogRequest.setRecipientEmails(Utils.listToCommaSeparatedString(recipientEmails));
try { try {
Unirest.setTimeouts(0, 0); Unirest.setTimeouts(0, 0);

View File

@@ -50,6 +50,9 @@ public class PecEmailService implements EmailService {
String authToken = emailConfig.getAuthToken(); String authToken = emailConfig.getAuthToken();
HttpResponse<String> response2=null; HttpResponse<String> response2=null;
if (Boolean.FALSE.equals(validator.isTestProfileActivated())) { 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())); emailLogRequest.setRecipientEmails(Utils.listToCommaSeparatedString(emailRequest.getRecipient()));
try { try {
Unirest.setTimeouts(0, 0); Unirest.setTimeouts(0, 0);

View File

@@ -1775,6 +1775,14 @@
<changeSet id="18-11-2024_1" author="Nisha Kashyap"> <changeSet id="18-11-2024_1" author="Nisha Kashyap">
<addColumn tableName="email_log"> <addColumn tableName="email_log">
<column name="is_deleted" type="BOOLEAN" defaultValueBoolean="false"></column> <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> </addColumn>
<dropColumn tableName="email_log">
<column name="entity_id"></column>
<column name="entity_type"></column>
</dropColumn>
</changeSet> </changeSet>
</databaseChangeLog> </databaseChangeLog>