You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
64 lines
2.4 KiB
Java
64 lines
2.4 KiB
Java
package eu.eudat.services.utilities;
|
|
|
|
import eu.eudat.dao.entities.DMPDao;
|
|
import eu.eudat.dao.entities.InvitationDao;
|
|
import eu.eudat.entities.DMP;
|
|
import eu.eudat.entities.Invitation;
|
|
import eu.eudat.models.mail.SimpleMail;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
import java.util.List;
|
|
import java.util.UUID;
|
|
|
|
|
|
@Service("invitationService")
|
|
public class InvitationServiceImpl implements InvitationService {
|
|
@Override
|
|
public void assignToDmp(DMPDao dmpDao, List<eu.eudat.entities.UserInfo> users, DMP dmp) {
|
|
for (eu.eudat.entities.UserInfo user : users) {
|
|
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
|
|
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) {
|
|
Invitation invitation = new Invitation();
|
|
invitation.setDmp(dmp);
|
|
invitation.setInvitationEmail(userInfo.getEmail());
|
|
invitation.setUser(creator);
|
|
invitation.setToken(UUID.randomUUID());
|
|
invitation.setAcceptedInvitation(false);
|
|
invitationDao.createOrUpdate(invitation);
|
|
sendInvitation(dmp, invitation, mailService);
|
|
}
|
|
}
|
|
|
|
@Override
|
|
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;
|
|
}
|
|
|
|
private String createContent(UUID invitationID, DMP dmp, String templateContent) {
|
|
String content = templateContent.replace("{dmpname}", dmp.getLabel());
|
|
content = content.replace("{invitationID}", invitationID.toString());
|
|
return content;
|
|
}
|
|
}
|