Skip to content

Commit

Permalink
send email after a message is sent to a user
Browse files Browse the repository at this point in the history
  • Loading branch information
BelisAliosmanova committed Apr 21, 2024
1 parent d63672d commit 715b76f
Showing 1 changed file with 41 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,17 @@
import com.ginAndTonic.LudogorieHackEnter2024.exceptions.user.UserNotFoundException;
import com.ginAndTonic.LudogorieHackEnter2024.model.dto.auth.PublicUserDTO;
import com.ginAndTonic.LudogorieHackEnter2024.model.dto.common.MessageDTO;
import com.ginAndTonic.LudogorieHackEnter2024.model.dto.response.EventResponseDTO;
import com.ginAndTonic.LudogorieHackEnter2024.model.entity.Message;
import com.ginAndTonic.LudogorieHackEnter2024.model.entity.User;
import com.ginAndTonic.LudogorieHackEnter2024.repositories.MessagesRepository;
import com.ginAndTonic.LudogorieHackEnter2024.repositories.UserRepository;
import com.ginAndTonic.LudogorieHackEnter2024.services.MessageService;
import jakarta.mail.MessagingException;
import jakarta.mail.internet.MimeMessage;
import org.modelmapper.ModelMapper;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Service;

import java.time.LocalDateTime;
Expand All @@ -21,11 +25,13 @@ public class MessageServiceImpl implements MessageService {
private final UserRepository userRepository;

private final ModelMapper modelMapper;
private final JavaMailSender emailSender;

public MessageServiceImpl(MessagesRepository messagesRepository, UserRepository userRepository, ModelMapper modelMapper) {
public MessageServiceImpl(MessagesRepository messagesRepository, UserRepository userRepository, ModelMapper modelMapper, JavaMailSender emailSender) {
this.messagesRepository = messagesRepository;
this.userRepository = userRepository;
this.modelMapper = modelMapper;
this.emailSender = emailSender;
}

@Override
Expand All @@ -41,7 +47,40 @@ public Message sendMessage(MessageDTO message, PublicUserDTO loggedUser) {
message.setSentAt(LocalDateTime.now());

Message savedMessage = modelMapper.map(message, Message.class);

sendMessageEmail(savedMessage);
return messagesRepository.save(savedMessage);
}

private void sendMessageEmail(Message savedMessage) {
User userReceiver = userRepository.findById(savedMessage.getReceiverId().getId()).get();

String subject = "You have a message from user in EventEntry";

String message = "Dear, " + userReceiver.getFirstname() + "\n\n"
+ "You have a message from " + userReceiver.getFirstname()+ "\n"
+ "You can go and check it at our out site.\n"
+ "Best regards,\n"
+ "Gin & Tonic Team!";

SimpleMailMessage email = new SimpleMailMessage();
email.setTo(userReceiver.getEmail());
email.setSubject(subject);
email.setText(message);

sendEmail(userReceiver.getEmail(), subject, message);
}
public void sendEmail(String to, String subject, String text) {
MimeMessage message = emailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message);
try {
helper.setTo(to);
helper.setSubject(subject);
helper.setText(text);
emailSender.send(message);
} catch (MessagingException e) {
e.printStackTrace();
}
}
}

0 comments on commit 715b76f

Please sign in to comment.