Updated code
This commit is contained in:
@@ -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) {
|
Map<String, String> bodyPlaceholders, List<String> additionalRecipients,Boolean isAmendment,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,8 +77,11 @@ 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.AMENDMENT,Utils.listToCommaSeparatedString(recipientEmails),userEntity.getId());
|
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);
|
||||||
|
}
|
||||||
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) {
|
||||||
@@ -138,7 +141,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);
|
sendEmail(applicationEntity, SystemEmailTemplatesEntity.SystemEmailTemplatesEntityTypeEnum.DOCUMENTATION_INTEGRATION_REQUEST, bodyPlaceholders, null,true,applicationAmendmentRequest.getId());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void sendApplicationFailureNotificationEmail(ApplicationAmendmentRequestEntity amendmentRequest) {
|
public void sendApplicationFailureNotificationEmail(ApplicationAmendmentRequestEntity amendmentRequest) {
|
||||||
@@ -155,7 +158,7 @@ public class EmailNotificationDao {
|
|||||||
}
|
}
|
||||||
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);
|
sendEmail(applicationEntity, SystemEmailTemplatesEntity.SystemEmailTemplatesEntityTypeEnum.INADMISSIBILITY_NOTIFICATION_DUE_TO_FAILURE, bodyPlaceholders, null,true,amendmentRequest.getId());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void sendAdmissibilityNotificationEmailForApprovedApplication(ApplicationEntity applicationEntity) {
|
public void sendAdmissibilityNotificationEmailForApprovedApplication(ApplicationEntity applicationEntity) {
|
||||||
@@ -165,7 +168,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);
|
sendEmail(applicationEntity, SystemEmailTemplatesEntity.SystemEmailTemplatesEntityTypeEnum.ADMISSIBILITY_NOTIFICATION, bodyPlaceholders, null,false,null);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void sendInadmissibilityEmailForRejectedApplication(ApplicationEntity applicationEntity,ApplicationEvaluationEntity applicationEvaluationEntity) {
|
public void sendInadmissibilityEmailForRejectedApplication(ApplicationEntity applicationEntity,ApplicationEvaluationEntity applicationEvaluationEntity) {
|
||||||
@@ -176,7 +179,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);
|
sendEmail(applicationEntity, SystemEmailTemplatesEntity.SystemEmailTemplatesEntityTypeEnum.INADMISSIBILITY_TEMPLATE, bodyPlaceholders, null,false,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) {
|
||||||
|
|||||||
@@ -4,8 +4,8 @@ import com.fasterxml.jackson.annotation.JsonValue;
|
|||||||
|
|
||||||
public enum EmailServiceTypeEnum {
|
public enum EmailServiceTypeEnum {
|
||||||
|
|
||||||
MAILGUN("MAILGUN"),
|
MAILGUN_SERVICE("MAILGUN_SERVICE"),
|
||||||
PEC("PEC");
|
PEC_SERVICE("PEC_SERVICE");
|
||||||
|
|
||||||
private String value;
|
private String value;
|
||||||
|
|
||||||
|
|||||||
@@ -1,40 +0,0 @@
|
|||||||
package net.gepafin.tendermanagement.service.feignClient;
|
|
||||||
|
|
||||||
import org.springframework.cloud.openfeign.FeignClient;
|
|
||||||
import org.springframework.http.HttpHeaders;
|
|
||||||
import org.springframework.http.MediaType;
|
|
||||||
import org.springframework.http.ResponseEntity;
|
|
||||||
import org.springframework.web.bind.annotation.*;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
//@FeignClient(name = "mailgunClient", url = "${mailGun_base_url}")
|
|
||||||
public interface MailgunFeignClient {
|
|
||||||
// @PostMapping(value = "/v3/{domain}/messages", consumes = MediaType.MULTIPART_FORM_DATA_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
|
|
||||||
// ResponseEntity<Void> sendEmail( @RequestPart("from") String from,
|
|
||||||
// @RequestPart("to") List<String> to,
|
|
||||||
// @RequestPart("subject") String subject,
|
|
||||||
// @RequestPart("text") String htmlBody,
|
|
||||||
// @PathVariable("domain") String domain,
|
|
||||||
//// @RequestBody PayloadDTO dto,
|
|
||||||
// //RequestParam
|
|
||||||
//
|
|
||||||
// @RequestHeader HttpHeaders headers);
|
|
||||||
//
|
|
||||||
// public class PayloadDTO {
|
|
||||||
// public String from;
|
|
||||||
// public List<String> to;
|
|
||||||
// public String subject;
|
|
||||||
// public String htmlBody;
|
|
||||||
//
|
|
||||||
// public PayloadDTO(String from, List<String> to, String subject, String htmlBody) {
|
|
||||||
// this.from = from;
|
|
||||||
// this.to = to;
|
|
||||||
// this.subject = subject;
|
|
||||||
// this.htmlBody = htmlBody;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// }
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
package net.gepafin.tendermanagement.service.feignClient;
|
|
||||||
|
|
||||||
import feign.Headers;
|
|
||||||
import net.gepafin.tendermanagement.model.request.PecEmailRequest;
|
|
||||||
import org.springframework.cloud.openfeign.FeignClient;
|
|
||||||
import org.springframework.http.HttpHeaders;
|
|
||||||
import org.springframework.http.ResponseEntity;
|
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RequestBody;
|
|
||||||
import org.springframework.web.bind.annotation.RequestHeader;
|
|
||||||
|
|
||||||
//@FeignClient(name = "pecClient", url = "${api.pecUrl}")
|
|
||||||
public interface PecFeignClient {
|
|
||||||
// @PostMapping("/send")
|
|
||||||
// ResponseEntity<Void> sendEmail(@RequestHeader HttpHeaders headers,
|
|
||||||
// @RequestBody PecEmailRequest emailRequest);
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -2,14 +2,12 @@ package net.gepafin.tendermanagement.service.impl;
|
|||||||
|
|
||||||
import com.mashape.unirest.http.HttpResponse;
|
import com.mashape.unirest.http.HttpResponse;
|
||||||
import com.mashape.unirest.http.Unirest;
|
import com.mashape.unirest.http.Unirest;
|
||||||
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
|
||||||
import net.gepafin.tendermanagement.dao.EmailLogDao;
|
import net.gepafin.tendermanagement.dao.EmailLogDao;
|
||||||
import net.gepafin.tendermanagement.entities.EmailLogEntity;
|
import net.gepafin.tendermanagement.entities.EmailLogEntity;
|
||||||
import net.gepafin.tendermanagement.enums.EmailServiceTypeEnum;
|
import net.gepafin.tendermanagement.enums.EmailServiceTypeEnum;
|
||||||
import net.gepafin.tendermanagement.enums.StatusTypeEnum;
|
import net.gepafin.tendermanagement.enums.StatusTypeEnum;
|
||||||
import net.gepafin.tendermanagement.model.request.EmailConfig;
|
import net.gepafin.tendermanagement.model.request.EmailConfig;
|
||||||
import net.gepafin.tendermanagement.model.request.EmailLogRequest;
|
import net.gepafin.tendermanagement.model.request.EmailLogRequest;
|
||||||
import net.gepafin.tendermanagement.service.feignClient.MailgunFeignClient;
|
|
||||||
import net.gepafin.tendermanagement.util.Utils;
|
import net.gepafin.tendermanagement.util.Utils;
|
||||||
import net.gepafin.tendermanagement.util.Validator;
|
import net.gepafin.tendermanagement.util.Validator;
|
||||||
|
|
||||||
@@ -61,14 +59,14 @@ public class MailgunEmailService implements EmailService {
|
|||||||
.asString();
|
.asString();
|
||||||
}catch(Exception e) {
|
}catch(Exception e) {
|
||||||
emailLogRequest.setSendStatus(StatusTypeEnum.FAILED.getValue());
|
emailLogRequest.setSendStatus(StatusTypeEnum.FAILED.getValue());
|
||||||
emailLogRequest.setEmailServiceType(EmailServiceTypeEnum.MAILGUN);
|
emailLogRequest.setEmailServiceType(EmailServiceTypeEnum.MAILGUN_SERVICE);
|
||||||
emailLogRequest.setErrorMessage(e.getMessage());
|
emailLogRequest.setErrorMessage(e.getMessage());
|
||||||
EmailLogEntity emailLogEntity= emailLogDao.createEmailLog(emailLogRequest);
|
EmailLogEntity emailLogEntity= emailLogDao.createEmailLog(emailLogRequest);
|
||||||
throw new RuntimeException("Failed to send email via Mailgun: " + response2.getStatus());
|
throw new RuntimeException("Failed to send email via Mailgun: " + response2.getStatus());
|
||||||
}
|
}
|
||||||
emailLogRequest.setEmailServiceResponse(response2.getBody());
|
emailLogRequest.setEmailServiceResponse(response2.getBody());
|
||||||
}
|
}
|
||||||
emailLogRequest.setEmailServiceType(EmailServiceTypeEnum.MAILGUN);
|
emailLogRequest.setEmailServiceType(EmailServiceTypeEnum.MAILGUN_SERVICE);
|
||||||
EmailLogEntity emailLogEntity= emailLogDao.createEmailLog(emailLogRequest);
|
EmailLogEntity emailLogEntity= emailLogDao.createEmailLog(emailLogRequest);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,11 +1,8 @@
|
|||||||
package net.gepafin.tendermanagement.service.impl;
|
package net.gepafin.tendermanagement.service.impl;
|
||||||
|
|
||||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
||||||
import com.mashape.unirest.http.HttpResponse;
|
import com.mashape.unirest.http.HttpResponse;
|
||||||
import com.mashape.unirest.http.Unirest;
|
import com.mashape.unirest.http.Unirest;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
|
||||||
import net.gepafin.tendermanagement.dao.EmailLogDao;
|
import net.gepafin.tendermanagement.dao.EmailLogDao;
|
||||||
import net.gepafin.tendermanagement.entities.EmailLogEntity;
|
import net.gepafin.tendermanagement.entities.EmailLogEntity;
|
||||||
import net.gepafin.tendermanagement.enums.EmailServiceTypeEnum;
|
import net.gepafin.tendermanagement.enums.EmailServiceTypeEnum;
|
||||||
@@ -13,14 +10,11 @@ import net.gepafin.tendermanagement.enums.StatusTypeEnum;
|
|||||||
import net.gepafin.tendermanagement.model.request.EmailConfig;
|
import net.gepafin.tendermanagement.model.request.EmailConfig;
|
||||||
import net.gepafin.tendermanagement.model.request.EmailLogRequest;
|
import net.gepafin.tendermanagement.model.request.EmailLogRequest;
|
||||||
import net.gepafin.tendermanagement.model.request.PecEmailRequest;
|
import net.gepafin.tendermanagement.model.request.PecEmailRequest;
|
||||||
import net.gepafin.tendermanagement.service.feignClient.PecFeignClient;
|
|
||||||
import net.gepafin.tendermanagement.util.Utils;
|
import net.gepafin.tendermanagement.util.Utils;
|
||||||
import net.gepafin.tendermanagement.util.Validator;
|
import net.gepafin.tendermanagement.util.Validator;
|
||||||
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.http.HttpHeaders;
|
|
||||||
import org.springframework.http.ResponseEntity;
|
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -47,11 +41,11 @@ public class PecEmailService implements EmailService {
|
|||||||
|
|
||||||
PecEmailRequest emailRequest = new PecEmailRequest();
|
PecEmailRequest emailRequest = new PecEmailRequest();
|
||||||
emailRequest.setSender(emailConfig.getSender());
|
emailRequest.setSender(emailConfig.getSender());
|
||||||
|
|
||||||
emailRequest.setSubject(subject);
|
emailRequest.setSubject(subject);
|
||||||
emailRequest.setBody(body);
|
emailRequest.setBody(body);
|
||||||
emailRequest.setUsername(emailConfig.getUsername());
|
emailRequest.setUsername(emailConfig.getUsername());
|
||||||
emailRequest.setPassword(emailConfig.getPassword());
|
emailRequest.setPassword(emailConfig.getPassword());
|
||||||
|
emailRequest.setRecipient(recipientEmails);
|
||||||
String url=emailConfig.getUrl();
|
String url=emailConfig.getUrl();
|
||||||
String authToken = emailConfig.getAuthToken();
|
String authToken = emailConfig.getAuthToken();
|
||||||
HttpResponse<String> response2=null;
|
HttpResponse<String> response2=null;
|
||||||
@@ -66,14 +60,14 @@ public class PecEmailService implements EmailService {
|
|||||||
.asString();
|
.asString();
|
||||||
}catch(Exception e) {
|
}catch(Exception e) {
|
||||||
emailLogRequest.setSendStatus(StatusTypeEnum.FAILED.getValue());
|
emailLogRequest.setSendStatus(StatusTypeEnum.FAILED.getValue());
|
||||||
emailLogRequest.setEmailServiceType(EmailServiceTypeEnum.PEC);
|
emailLogRequest.setEmailServiceType(EmailServiceTypeEnum.PEC_SERVICE);
|
||||||
emailLogRequest.setErrorMessage(e.getMessage());
|
emailLogRequest.setErrorMessage(e.getMessage());
|
||||||
EmailLogEntity emailLogEntity= emailLogDao.createEmailLog(emailLogRequest);
|
EmailLogEntity emailLogEntity= emailLogDao.createEmailLog(emailLogRequest);
|
||||||
throw new RuntimeException("Failed to send email via PEC: " + response2.getStatus());
|
throw new RuntimeException("Failed to send email via PEC: " + response2.getStatus());
|
||||||
}
|
}
|
||||||
emailLogRequest.setEmailServiceResponse(response2.getBody());
|
emailLogRequest.setEmailServiceResponse(response2.getBody());
|
||||||
}
|
}
|
||||||
emailLogRequest.setEmailServiceType(EmailServiceTypeEnum.PEC);
|
emailLogRequest.setEmailServiceType(EmailServiceTypeEnum.PEC_SERVICE);
|
||||||
EmailLogEntity emailLogEntity= emailLogDao.createEmailLog(emailLogRequest);
|
EmailLogEntity emailLogEntity= emailLogDao.createEmailLog(emailLogRequest);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1759,12 +1759,11 @@
|
|||||||
path="db/dump/updated_hub_data_for_email_service_config_15-11-2024.sql"/>
|
path="db/dump/updated_hub_data_for_email_service_config_15-11-2024.sql"/>
|
||||||
</changeSet>
|
</changeSet>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<changeSet id="13-11-2024_1" author="Rajesh Khore">
|
<changeSet id="13-11-2024_1" author="Rajesh Khore">
|
||||||
<dropNotNullConstraint tableName="application_amendment_request" columnName="is_email"/>
|
<dropNotNullConstraint tableName="application_amendment_request" columnName="is_email"/>
|
||||||
<dropNotNullConstraint tableName="application_amendment_request" columnName="is_notification"/>
|
<dropNotNullConstraint tableName="application_amendment_request" columnName="is_notification"/>
|
||||||
</changeSet>
|
</changeSet>
|
||||||
|
|
||||||
<changeSet id="13-11-2024_2" author="Harish Bagora">
|
<changeSet id="13-11-2024_2" author="Harish Bagora">
|
||||||
<addColumn tableName="beneficiary_preferred_call">
|
<addColumn tableName="beneficiary_preferred_call">
|
||||||
<column name="is_deleted" type="BOOLEAN" defaultValueBoolean="false">
|
<column name="is_deleted" type="BOOLEAN" defaultValueBoolean="false">
|
||||||
@@ -1772,4 +1771,10 @@
|
|||||||
</column>
|
</column>
|
||||||
</addColumn>
|
</addColumn>
|
||||||
</changeSet>
|
</changeSet>
|
||||||
|
|
||||||
|
<changeSet id="18-11-2024_1" author="Nisha Kashyap">
|
||||||
|
<addColumn tableName="email_log">
|
||||||
|
<column name="is_deleted" type="BOOLEAN" defaultValueBoolean="false"></column>
|
||||||
|
</addColumn>
|
||||||
|
</changeSet>
|
||||||
</databaseChangeLog>
|
</databaseChangeLog>
|
||||||
|
|||||||
Reference in New Issue
Block a user