package com.plannaplan.services; import java.util.Iterator; import java.util.List; import java.util.Map; import com.plannaplan.entities.Exchange; import com.plannaplan.entities.User; import com.plannaplan.models.EmailAcceptedData; import com.plannaplan.models.EmailExchangesData; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.mail.SimpleMailMessage; import org.springframework.mail.javamail.JavaMailSender; import org.springframework.stereotype.Service; /** * Service to send emails */ @Service public class EmailService { @Autowired private JavaMailSender emailSender; @Autowired private UserService userService; @Value("${plannaplan.email}") private String appEmail; public EmailService() { } /** * send simple text email * * @param destination destitnaion mail * @param message text to be send */ public void sendMail(String destination, String message) { SimpleMailMessage mailMessage = new SimpleMailMessage(); mailMessage.setFrom(appEmail); mailMessage.setTo(destination); mailMessage.setSubject("[Plan na plan] INFO"); mailMessage.setText(message); emailSender.send(mailMessage); } /** * sends email with infromation about accepted groups * * @param user user to send a mail * @param data EmailAcceptedData instance containing informations about accepted * and removed groups */ public void sendAcceptationResult(User user, EmailAcceptedData data) { SimpleMailMessage mailMessage = new SimpleMailMessage(); mailMessage.setFrom(appEmail); mailMessage.setTo(user.getEmail()); mailMessage.setSubject("[PlanNaPlan] Akceptacja przedmiotów"); mailMessage.setText(data.getEmailMessage()); emailSender.send(mailMessage); } /** * method to send email for students whose groups were swaped * * @param data EmailExchangesData instance that contains pair of datas user and * list of performed exhanges */ public void sendExchangesResults(EmailExchangesData data) { for (Map.Entry> entry : data.getDataEntry()) { final User user = this.userService.getById(entry.getKey()).get(); String response = "Znaleźliśmy dla Ciebie osobę, która zamieniła się z Tobą przedmiotami!!!\n Zamienione przedmioty: \n"; final Iterator interator = entry.getValue().iterator(); while (interator.hasNext()) { final Exchange exchange = interator.next(); final String courseFrom = exchange.getDesiredAssignment().getCourseId() != null ? exchange.getDesiredAssignment().getCourseId().getName() : "Nieznane zajęcie"; final String courseTo = exchange.getOwnedAssignment().getGroup().getCourseId() != null ? exchange.getOwnedAssignment().getGroup().getCourseId().getName() : "Nieznane zajęcie"; response += (" - " + courseFrom + " za " + courseTo.toLowerCase()); } SimpleMailMessage mailMessage = new SimpleMailMessage(); mailMessage.setFrom(appEmail); mailMessage.setTo(user.getEmail()); mailMessage.setSubject("[PlanNaPlan] Zamiana przedmiotów"); mailMessage.setText(response); emailSender.send(mailMessage); } } }