From 758903125a41d47489283e0dda9bd75e9093d294 Mon Sep 17 00:00:00 2001 From: vansia Date: Fri, 18 Mar 2022 16:43:33 -0300 Subject: [PATCH 1/2] refactoring: extract method: MessageService/reply --- .../projectyweb/message/MessageService.java | 26 ++++++++++++------- .../application-development.properties | 2 +- src/main/resources/application.properties | 2 +- 3 files changed, 18 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/projecty/projectyweb/message/MessageService.java b/src/main/java/com/projecty/projectyweb/message/MessageService.java index 732fac2..b4e4c8f 100644 --- a/src/main/java/com/projecty/projectyweb/message/MessageService.java +++ b/src/main/java/com/projecty/projectyweb/message/MessageService.java @@ -77,7 +77,7 @@ public Message sendMessage( ) throws BindException { BindException bindException = new BindException(message, "message"); messageValidator.validate(message, bindException); -// + if (bindException.hasErrors()) { throw bindException; } @@ -103,20 +103,26 @@ public Message reply(Long replyToMessageId, User user = userService.getCurrentUser(); Optional optionalReplyToMessage = messageRepository.findById(replyToMessageId); if (optionalReplyToMessage.isPresent()) { - Message replyToMessage = optionalReplyToMessage.get(); - if (replyToMessage.getSender().equals(user)) { - throw new ResponseStatusException(HttpStatus.BAD_REQUEST); - } - message.setRecipientUsername(replyToMessage.getSender().getUsername()); - message.setReplyTo(replyToMessage); - replyToMessage.setHasReply(true); - messageRepository.save(replyToMessage); - return sendMessage(message, multipartFiles); + return saveReply(user, message, optionalReplyToMessage.get(), multipartFiles); } else { throw new ResponseStatusException(HttpStatus.NOT_FOUND); } } + public Message saveReply(User user, + Message message, + Message replyToMessage, + List multipartFiles) throws BindException { + if (replyToMessage.getSender().equals(user)) { + throw new ResponseStatusException(HttpStatus.BAD_REQUEST); + } + message.setRecipientUsername(replyToMessage.getSender().getUsername()); + message.setReplyTo(replyToMessage); + replyToMessage.setHasReply(true); + messageRepository.save(replyToMessage); + return sendMessage(message, multipartFiles); + } + public void deleteMessage(Message message) { User currentUser = userService.getCurrentUser(); associationService.deleteMessageForUser(message, currentUser); diff --git a/src/main/resources/application-development.properties b/src/main/resources/application-development.properties index d16f659..92984db 100644 --- a/src/main/resources/application-development.properties +++ b/src/main/resources/application-development.properties @@ -1,6 +1,6 @@ spring.datasource.url=jdbc:mysql://localhost:3306/projecty?createDatabaseIfNotExist=true spring.datasource.username=root -spring.datasource.password=password +spring.datasource.password=root123 spring.jpa.hibernate.ddl-auto=update spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL8Dialect spring.servlet.multipart.enabled=true diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 3179cea..b0debe5 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -2,7 +2,7 @@ spring.application.name=Projecty Web #This is a default profile to override this pass the active profile as parameter while running -spring.profiles.active=docker +spring.profiles.active=development #supported languages il8n.supported-languages=fr,en From 8069c3f0caecf52c081b221d82520793f38f5aec Mon Sep 17 00:00:00 2001 From: vansia Date: Fri, 18 Mar 2022 21:00:27 -0300 Subject: [PATCH 2/2] refactoring: extract class --- .../projectyweb/email/EmailService.java | 16 ++-------- .../projectyweb/email/SendEmailService.java | 30 +++++++++++++++++++ 2 files changed, 33 insertions(+), 13 deletions(-) create mode 100644 src/main/java/com/projecty/projectyweb/email/SendEmailService.java diff --git a/src/main/java/com/projecty/projectyweb/email/EmailService.java b/src/main/java/com/projecty/projectyweb/email/EmailService.java index 07e8788..d23c997 100644 --- a/src/main/java/com/projecty/projectyweb/email/EmailService.java +++ b/src/main/java/com/projecty/projectyweb/email/EmailService.java @@ -2,13 +2,11 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.mail.javamail.JavaMailSender; -import org.springframework.mail.javamail.MimeMessageHelper; import org.springframework.stereotype.Service; import org.thymeleaf.context.Context; import org.thymeleaf.spring5.SpringTemplateEngine; import javax.mail.MessagingException; -import javax.mail.internet.MimeMessage; import java.util.Map; @Service @@ -18,26 +16,18 @@ public class EmailService { @Value("${spring.mail.username}") private String from; + SendEmailService sendEmailService; + public EmailService(JavaMailSender javaMailSender, SpringTemplateEngine springTemplateEngine) { this.javaMailSender = javaMailSender; this.springTemplateEngine = springTemplateEngine; } - public void sendEmail(String to, String subject, String text) throws MessagingException { - MimeMessage message = javaMailSender.createMimeMessage(); - MimeMessageHelper helper = new MimeMessageHelper(message, true, "UTF-8"); - helper.setFrom(from); - helper.setTo(to); - helper.setSubject(subject); - helper.setText(text, true); - javaMailSender.send(message); - } - public void sendMessageThymeleafTemplate(String to, String subject, Map templateModel) throws MessagingException { Context context = new Context(); context.setVariables(templateModel); String htmlBody = springTemplateEngine.process("email-template.html", context); - sendEmail(to, subject, htmlBody); + sendEmailService.sendEmail(to, from, subject, htmlBody); } } diff --git a/src/main/java/com/projecty/projectyweb/email/SendEmailService.java b/src/main/java/com/projecty/projectyweb/email/SendEmailService.java new file mode 100644 index 0000000..b0fe72a --- /dev/null +++ b/src/main/java/com/projecty/projectyweb/email/SendEmailService.java @@ -0,0 +1,30 @@ +package com.projecty.projectyweb.email; + +import org.springframework.mail.javamail.JavaMailSender; +import org.springframework.mail.javamail.MimeMessageHelper; + +import javax.mail.MessagingException; +import javax.mail.internet.MimeMessage; + +public class SendEmailService { + + private final JavaMailSender javaMailSender; + + public SendEmailService(JavaMailSender javaMailSender) { + this.javaMailSender = javaMailSender; + } + + + public void sendEmail(String from, + String to, + String subject, + String text) throws MessagingException { + MimeMessage message = javaMailSender.createMimeMessage(); + MimeMessageHelper helper = new MimeMessageHelper(message, true, "UTF-8"); + helper.setFrom(from); + helper.setTo(to); + helper.setSubject(subject); + helper.setText(text, true); + javaMailSender.send(message); + } +}