argos/dmp-backend/src/main/java/eu/eudat/services/utilities/InvitationServiceImpl.java

64 lines
2.4 KiB
Java
Raw Normal View History

2018-03-05 17:18:45 +01:00
package eu.eudat.services.utilities;
2018-01-05 08:47:52 +01:00
import eu.eudat.dao.entities.DMPDao;
import eu.eudat.dao.entities.InvitationDao;
import eu.eudat.entities.DMP;
import eu.eudat.entities.Invitation;
2018-01-08 12:44:48 +01:00
import eu.eudat.models.mail.SimpleMail;
2018-01-05 08:47:52 +01:00
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.UUID;
2018-02-01 10:08:06 +01:00
2018-01-05 08:47:52 +01:00
@Service("invitationService")
public class InvitationServiceImpl implements InvitationService {
@Override
public void assignToDmp(DMPDao dmpDao, List<eu.eudat.entities.UserInfo> users, DMP dmp) {
2018-01-08 12:44:48 +01:00
for (eu.eudat.entities.UserInfo user : users) {
2018-01-05 08:47:52 +01:00
dmp.getUsers().add(user);
}
dmpDao.createOrUpdate(dmp);
}
@Override
public void assignToDmp(DMPDao dmpDao, eu.eudat.entities.UserInfo user, DMP dmp) {
dmp.getUsers().add(user);
dmpDao.createOrUpdate(dmp);
}
@Override
2018-01-08 12:44:48 +01:00
public void createInvitations(InvitationDao invitationDao, MailService mailService, List<eu.eudat.entities.UserInfo> users, DMP dmp, eu.eudat.entities.UserInfo creator) {
for (eu.eudat.entities.UserInfo userInfo : users) {
2018-01-05 08:47:52 +01:00
Invitation invitation = new Invitation();
invitation.setDmp(dmp);
invitation.setInvitationEmail(userInfo.getEmail());
2018-01-05 16:40:19 +01:00
invitation.setUser(creator);
2018-01-05 08:47:52 +01:00
invitation.setToken(UUID.randomUUID());
2018-01-08 15:57:21 +01:00
invitation.setAcceptedInvitation(false);
2018-01-05 08:47:52 +01:00
invitationDao.createOrUpdate(invitation);
2018-01-08 12:44:48 +01:00
sendInvitation(dmp, invitation, mailService);
2018-01-05 08:47:52 +01:00
}
}
@Override
2018-01-08 12:44:48 +01:00
public void sendInvitation(DMP dmp, Invitation invitation, MailService mailService) {
SimpleMail mail = new SimpleMail();
mail.setSubject(createSubject(dmp, mailService.getMailTemplateSubject()));
mail.setContent(createContent(invitation.getId(), dmp, mailService.getMailTemplateContent()));
mail.setTo(invitation.getInvitationEmail());
mailService.sendSimpleMail(mail);
}
private String createSubject(DMP dmp, String templateSubject) {
String subject = templateSubject.replace("{dmpname}", dmp.getLabel());
return subject;
}
2018-01-05 08:47:52 +01:00
2018-01-08 12:44:48 +01:00
private String createContent(UUID invitationID, DMP dmp, String templateContent) {
String content = templateContent.replace("{dmpname}", dmp.getLabel());
2018-01-08 15:57:21 +01:00
content = content.replace("{invitationID}", invitationID.toString());
2018-01-08 12:44:48 +01:00
return content;
2018-01-05 08:47:52 +01:00
}
}