From f04fb141923695dc91097bb88bce7a04d525ecd9 Mon Sep 17 00:00:00 2001 From: Pablo de la Torre Jamardo Date: Mon, 15 Sep 2025 08:26:02 +0200 Subject: [PATCH] refactor(use-case): persist status and error if present --- .../application/usecase/SendEmailUseCase.java | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/application/src/main/java/com/pablotj/restemailbridge/application/usecase/SendEmailUseCase.java b/application/src/main/java/com/pablotj/restemailbridge/application/usecase/SendEmailUseCase.java index 4e91745..f02bb3c 100644 --- a/application/src/main/java/com/pablotj/restemailbridge/application/usecase/SendEmailUseCase.java +++ b/application/src/main/java/com/pablotj/restemailbridge/application/usecase/SendEmailUseCase.java @@ -39,19 +39,19 @@ public class SendEmailUseCase { public void handle(EmailDTO emailDTO) { String to = emailConfigurationPort.getDefaultRecipient(); - Email email = Email.builder() - .from(emailDTO.from()) - .to(to) - .subject(emailDTO.subject()) - .body(emailDTO.body()) - .build(); + Email email = Email.create(emailDTO.from(), to, emailDTO.subject(), emailDTO.body()); emailValidatorService.validate(email); log.info("Sending email from {} to {}", emailDTO.from(), to); - email = emailService.sendEmail(email); - + try { + email = emailService.sendEmail(email); + email.markAsSent(); + } catch (Exception e) { + log.error("Error sending email", e); + email.markAsFailed(e.getMessage()); + } emailRepository.save(email); log.info("Email successfully sent and persisted to repository for recipient {}", to); }