Done ticket

This commit is contained in:
nisha
2024-11-12 18:11:15 +05:30
parent 256fa6c49e
commit 50c1f0b800
18 changed files with 411 additions and 36 deletions

View File

@@ -1,11 +1,12 @@
package net.gepafin.tendermanagement.service.impl;
import net.gepafin.tendermanagement.model.request.EmailConfig;
import net.gepafin.tendermanagement.model.request.EmailLogRequest;
import java.util.List;
public interface EmailService {
void sendEmail(String subject, String body, List<String> recipientEmails, EmailConfig emailConfig);
void sendEmail(String subject, String body, List<String> recipientEmails, EmailConfig emailConfig, EmailLogRequest emailLogRequest);
}

View File

@@ -1,6 +1,10 @@
package net.gepafin.tendermanagement.service.impl;
import net.gepafin.tendermanagement.dao.EmailLogDao;
import net.gepafin.tendermanagement.entities.EmailLogEntity;
import net.gepafin.tendermanagement.enums.StatusTypeEnum;
import net.gepafin.tendermanagement.model.request.EmailConfig;
import net.gepafin.tendermanagement.model.request.EmailLogRequest;
import net.gepafin.tendermanagement.service.feignClient.MailgunFeignClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
@@ -15,8 +19,11 @@ public class MailgunEmailService implements EmailService {
@Autowired
private MailgunFeignClient mailgunFeignClient;
@Autowired
private EmailLogDao emailLogDao;
@Override
public void sendEmail(String subject, String body, List<String> recipientEmails, EmailConfig emailConfig) {
public void sendEmail(String subject, String body, List<String> recipientEmails, EmailConfig emailConfig, EmailLogRequest emailLogRequest) {
String domain = emailConfig.getDomain();
String from = emailConfig.getSender();
String apiKey = emailConfig.getApiKey();
@@ -25,8 +32,13 @@ public class MailgunEmailService implements EmailService {
// Send email via Mailgun API
ResponseEntity<Void> response = mailgunFeignClient.sendEmail(domain, from, recipientEmails, subject, body, authHeader);
if (!response.getStatusCode().is2xxSuccessful()) {
emailLogRequest.setSendStatus(StatusTypeEnum.FAILED.getValue());
emailLogRequest.setErrorMessage(String.valueOf(response.getStatusCode()));
EmailLogEntity emailLogEntity= emailLogDao.createEmailLog(emailLogRequest);
throw new RuntimeException("Failed to send email via Mailgun: " + response.getStatusCode());
}
EmailLogEntity emailLogEntity= emailLogDao.createEmailLog(emailLogRequest);
}
}

View File

@@ -1,7 +1,11 @@
package net.gepafin.tendermanagement.service.impl;
import lombok.extern.slf4j.Slf4j;
import net.gepafin.tendermanagement.dao.EmailLogDao;
import net.gepafin.tendermanagement.entities.EmailLogEntity;
import net.gepafin.tendermanagement.enums.StatusTypeEnum;
import net.gepafin.tendermanagement.model.request.EmailConfig;
import net.gepafin.tendermanagement.model.request.EmailLogRequest;
import net.gepafin.tendermanagement.model.request.PecEmailRequest;
import net.gepafin.tendermanagement.service.feignClient.PecFeignClient;
import org.springframework.beans.factory.annotation.Autowired;
@@ -20,8 +24,11 @@ public class PecEmailService implements EmailService {
this.pecFeignClient = pecFeignClient;
}
@Autowired
private EmailLogDao emailLogDao;
@Override
public void sendEmail(String subject, String body, List<String> recipientEmails, EmailConfig emailConfig) {
public void sendEmail(String subject, String body, List<String> recipientEmails, EmailConfig emailConfig, EmailLogRequest emailLogRequest) {
PecEmailRequest emailRequest = new PecEmailRequest();
emailRequest.setSender(emailConfig.getSender());
emailRequest.setRecipient(recipientEmails);
@@ -34,8 +41,12 @@ public class PecEmailService implements EmailService {
ResponseEntity<Void> response = pecFeignClient.sendEmail("Bearer " + authToken, emailRequest);
log.info("Mail response status: {}, headers: {}, body: {}", response.getStatusCode(), response.getHeaders(), response.getBody());
if (!response.getStatusCode().is2xxSuccessful()) {
emailLogRequest.setSendStatus(StatusTypeEnum.FAILED.getValue());
emailLogRequest.setErrorMessage(String.valueOf(response.getStatusCode()));
EmailLogEntity emailLogEntity= emailLogDao.createEmailLog(emailLogRequest);
throw new RuntimeException("Failed to send email via PEC: " + response.getStatusCode());
}
EmailLogEntity emailLogEntity= emailLogDao.createEmailLog(emailLogRequest);
}
}