59 lines
2.1 KiB
Java
59 lines
2.1 KiB
Java
package net.gepafin.tendermanagement.service.impl;
|
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import net.gepafin.tendermanagement.model.request.EmailConfig;
|
|
import net.gepafin.tendermanagement.model.request.PecEmailRequest;
|
|
import net.gepafin.tendermanagement.service.feignClient.PecFeignClient;
|
|
import net.gepafin.tendermanagement.util.Validator;
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
import org.springframework.http.ResponseEntity;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
import java.util.List;
|
|
|
|
@Slf4j
|
|
@Service
|
|
public class PecEmailService implements EmailService {
|
|
private final PecFeignClient pecFeignClient;
|
|
|
|
public PecEmailService(PecFeignClient pecFeignClient) {
|
|
|
|
this.pecFeignClient = pecFeignClient;
|
|
}
|
|
|
|
@Value("${isMailSendingEnabled}")
|
|
private String isEmailSendingEnabled;
|
|
|
|
@Autowired
|
|
private Validator validator;
|
|
|
|
@Override
|
|
public void sendEmail(String subject, String body, List<String> recipientEmails, EmailConfig emailConfig) {
|
|
|
|
if (Boolean.FALSE.equals(Boolean.parseBoolean(isEmailSendingEnabled))) {
|
|
return;
|
|
}
|
|
|
|
PecEmailRequest emailRequest = new PecEmailRequest();
|
|
emailRequest.setSender(emailConfig.getSender());
|
|
emailRequest.setRecipient(List.of("rajeshkhoreupwork@gmail.com"));
|
|
emailRequest.setSubject(subject);
|
|
emailRequest.setBody(body);
|
|
emailRequest.setUsername(emailConfig.getUsername());
|
|
emailRequest.setPassword(emailConfig.getPassword());
|
|
|
|
String authToken = emailConfig.getAuthToken();
|
|
if (Boolean.FALSE.equals(validator.isTestProfileActivated())) {
|
|
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()) {
|
|
throw new RuntimeException("Failed to send email via PEC: " + response.getStatusCode());
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|