50 lines
1.7 KiB
Java
50 lines
1.7 KiB
Java
package net.gepafin.tendermanagement.service.impl;
|
|
|
|
import net.gepafin.tendermanagement.model.request.EmailConfig;
|
|
import net.gepafin.tendermanagement.service.feignClient.MailgunFeignClient;
|
|
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.Base64;
|
|
import java.util.List;
|
|
|
|
@Service
|
|
public class MailgunEmailService implements EmailService {
|
|
|
|
@Autowired
|
|
private MailgunFeignClient mailgunFeignClient;
|
|
|
|
@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;
|
|
}
|
|
|
|
String domain = emailConfig.getDomain();
|
|
String from = emailConfig.getSender();
|
|
String apiKey = emailConfig.getApiKey();
|
|
String authHeader = "Basic " + Base64.getEncoder().encodeToString(("api:" + apiKey).getBytes());
|
|
|
|
// Send email via Mailgun API
|
|
if (Boolean.FALSE.equals(validator.isTestProfileActivated())) {
|
|
ResponseEntity<Void> response = mailgunFeignClient.sendEmail(domain, from, List.of("rajeshkhoreupwork@gmail.com"), subject, body, authHeader);
|
|
if (!response.getStatusCode().is2xxSuccessful()) {
|
|
throw new RuntimeException("Failed to send email via Mailgun: " + response.getStatusCode());
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|