EmailController.java
2.47 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
package com.ecommerce.notification.controller;
import com.ecommerce.notification.model.dto.EmailRequest;
import com.ecommerce.notification.service.EmailService;
import lombok.RequiredArgsConstructor;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.HashMap;
import java.util.Map;
@RestController
@RequestMapping("/api/email")
@RequiredArgsConstructor
public class EmailController {
private final EmailService emailService;
@PostMapping("/send")
public ResponseEntity<Map<String, Object>> sendEmail(@Valid @RequestBody EmailRequest request) {
boolean success = emailService.sendEmail(request);
Map<String, Object> response = new HashMap<>();
response.put("success", success);
response.put("message", success ? "Email sent successfully" : "Failed to send email");
response.put("to", request.getTo());
return ResponseEntity.ok(response);
}
@PostMapping("/bulk")
public ResponseEntity<Map<String, String>> sendBulkEmail(
@RequestBody Map<String, Object> request) {
String[] toEmails = (String[]) request.get("toEmails");
String subject = (String) request.get("subject");
String content = (String) request.get("content");
Boolean isHtml = (Boolean) request.get("isHtml");
if (isHtml == null) {
isHtml = true;
}
emailService.sendBulkEmail(toEmails, subject, content, isHtml);
Map<String, String> response = new HashMap<>();
response.put("message", "Bulk email sending started");
response.put("recipients", String.valueOf(toEmails.length));
return ResponseEntity.ok(response);
}
@GetMapping("/test")
public ResponseEntity<Map<String, String>> testEmail() {
EmailRequest request = new EmailRequest();
request.setTo("test@example.com");
request.setSubject("Test Email");
request.setContent("<h1>Test Email</h1><p>This is a test email from Notification Service.</p>");
boolean success = emailService.sendEmail(request);
Map<String, String> response = new HashMap<>();
response.put("status", success ? "SUCCESS" : "FAILED");
response.put("message", success ? "Test email sent successfully" : "Failed to send test email");
return ResponseEntity.ok(response);
}
}