Refactoring + migrate mail package to server.

This commit is contained in:
2025-05-04 19:17:26 +02:00
parent eb17e24511
commit cb4eb80105
16 changed files with 147 additions and 157 deletions

View File

@@ -1,46 +0,0 @@
package dev.rheinsw.shared.mail;
import dev.rheinsw.shared.mail.dto.MailRequest;
import lombok.RequiredArgsConstructor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;
/**
* @author Thatsaphorn Atchariyaphap
* @since 22.04.25
*/
@Service
@RequiredArgsConstructor
public class MailServiceClient {
private static final Logger log = LoggerFactory.getLogger(MailServiceClient.class);
private final RestTemplate restTemplate;
private static final String MAIL_ENDPOINT = "http://gateway/api/mail";
@Async
public void sendMail(String email, String subject, String userMessage) {
MailRequest request = new MailRequest(email, subject, userMessage);
postEmail(request);
}
private void postEmail(MailRequest request) {
try {
HttpHeaders headers = new HttpHeaders();
HttpEntity<MailRequest> entity = new HttpEntity<>(request, headers);
restTemplate.postForEntity(MAIL_ENDPOINT + "/send", entity, String.class);
} catch (Exception e) {
log.error("Failed to send email to {}: {}", request.getTo(), e.getMessage());
}
}
}

View File

@@ -1,20 +0,0 @@
package dev.rheinsw.shared.mail.dto;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.Getter;
import lombok.NoArgsConstructor;
/**
* @author Thatsaphorn Atchariyaphap
* @since 22.04.25
*/
@Data
@Getter
@NoArgsConstructor
@AllArgsConstructor
public class MailRequest {
private String to;
private String subject;
private String message;
}