diff --git a/pom.xml b/pom.xml index b4d9983..dfab9ac 100644 --- a/pom.xml +++ b/pom.xml @@ -77,12 +77,7 @@ spring-boot-starter-mail - - io.jsonwebtoken - jjwt-impl - 0.11.5 - runtime - + org.springframework.boot spring-boot-starter-web @@ -151,7 +146,6 @@ 0.11.5 runtime - org.apache.tomcat.embed diff --git a/update.sql b/sql/update.sql similarity index 100% rename from update.sql rename to sql/update.sql diff --git a/src/main/java/group/goforward/battlbuilder/controllers/api/EmailController.java b/src/main/java/group/goforward/battlbuilder/controllers/api/EmailController.java index 2393fdb..e52ff32 100644 --- a/src/main/java/group/goforward/battlbuilder/controllers/api/EmailController.java +++ b/src/main/java/group/goforward/battlbuilder/controllers/api/EmailController.java @@ -3,6 +3,7 @@ package group.goforward.battlbuilder.controllers.api; import group.goforward.battlbuilder.utils.ApiResponse; import group.goforward.battlbuilder.dto.EmailRequestDto; import group.goforward.battlbuilder.model.EmailRequest; +import group.goforward.battlbuilder.model.EmailStatus; import group.goforward.battlbuilder.repos.EmailRequestRepository; import group.goforward.battlbuilder.services.utils.EmailService; import org.springframework.beans.factory.annotation.Autowired; @@ -11,13 +12,14 @@ import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import org.springframework.web.server.ResponseStatusException; +import java.util.Arrays; import java.util.List; @RestController @RequestMapping("/api/email") public class EmailController { - private static final String EMAIL_STATUS_SENT = "SENT"; + private static final EmailStatus EMAIL_STATUS_SENT = EmailStatus.SENT; private final EmailService emailService; private final EmailRequestRepository emailRequestRepository; @@ -28,6 +30,17 @@ public class EmailController { this.emailRequestRepository = emailRequestRepository; } + @GetMapping("/statuses") + public ResponseEntity>> getEmailStatuses() { + List statuses = Arrays.stream(EmailStatus.values()) + .map(Enum::name) + .toList(); + + return ResponseEntity.ok( + ApiResponse.success(statuses, "Email statuses retrieved successfully") + ); + } + @GetMapping public ResponseEntity>> getAllEmailRequests() { try { @@ -45,7 +58,7 @@ public class EmailController { @GetMapping("/allSent") public ResponseEntity>> getNotSentEmailRequests() { try { - List emailRequests = emailRequestRepository.findSent(); + List emailRequests = emailRequestRepository.findByStatus(EmailStatus.SENT); return ResponseEntity.ok( ApiResponse.success(emailRequests, "Not sent email requests retrieved successfully") ); @@ -59,7 +72,7 @@ public class EmailController { @GetMapping("/allFailed") public ResponseEntity>> getFailedEmailRequests() { try { - List emailRequests = emailRequestRepository.findFailed(); + List emailRequests = emailRequestRepository.findByStatus(EmailStatus.FAILED); return ResponseEntity.ok( ApiResponse.success(emailRequests, "Failed email requests retrieved successfully") ); @@ -73,7 +86,7 @@ public class EmailController { @GetMapping("/allPending") public ResponseEntity>> getPendingEmailRequests() { try { - List emailRequests = emailRequestRepository.findPending(); + List emailRequests = emailRequestRepository.findByStatus(EmailStatus.PENDING); return ResponseEntity.ok( ApiResponse.success(emailRequests, "Pending email requests retrieved successfully") ); diff --git a/src/main/java/group/goforward/battlbuilder/controllers/api/SendEmailForm.tsx b/src/main/java/group/goforward/battlbuilder/controllers/api/SendEmailForm.tsx deleted file mode 100644 index ff0b8a9..0000000 --- a/src/main/java/group/goforward/battlbuilder/controllers/api/SendEmailForm.tsx +++ /dev/null @@ -1,40 +0,0 @@ -"use client"; - -import { useState } from "react"; -import { sendEmailAction, type ApiResponse, type EmailRequest } from "./actions/sendEmail"; - -export default function SendEmailForm(): JSX.Element { - const [result, setResult] = useState | { error: string } | null>(null); - - async function onSubmit(e: React.FormEvent): Promise { - e.preventDefault(); - setResult(null); - - const form = new FormData(e.currentTarget); - - const recipient = String(form.get("recipient") ?? ""); - const subject = String(form.get("subject") ?? ""); - const body = String(form.get("body") ?? ""); - - try { - const data = await sendEmailAction({ recipient, subject, body }); - setResult(data); - } catch (err) { - const message = err instanceof Error ? err.message : "Unknown error"; - setResult({ error: message }); - } - } - - return ( -
- - -