
org.jlot.mailing.generator.InvitationMailGeneratorImpl Maven / Gradle / Ivy
package org.jlot.mailing.generator;
import javax.inject.Inject;
import org.jlot.core.dto.InvitationDTO;
import org.jlot.core.dto.ProjectDTO;
import org.jlot.core.dto.UserDTO;
import org.jlot.core.utils.Parameter;
import org.jlot.mailing.config.MailSenderConfig;
import org.jlot.mailing.domain.Mail;
import org.jlot.mailing.domain.MailImpl;
import org.springframework.context.support.MessageSourceAccessor;
import org.springframework.stereotype.Component;
@Component
public class InvitationMailGeneratorImpl implements InvitationMailGenerator
{
private static final String SUBJECT = "mail.invitation.subject";
private static final String TEXT = "mail.invitation.text";
@Inject
private MessageSourceAccessor messageSourceAccessor;
@Inject
private MailSenderConfig mailSenderConfig;
@Override
public Mail generate ( UserDTO userDTO, ProjectDTO projectDTO, InvitationDTO invitationDTO )
{
String subject = getSubject(projectDTO);
String text = getText(invitationDTO, projectDTO);
return new MailImpl(invitationDTO.getEmail(), userDTO.getEmailAddress(), subject, text);
}
private String getSubject ( ProjectDTO projectDTO )
{
Object[] args = { projectDTO.getName() };
return messageSourceAccessor.getMessage(SUBJECT, args, projectDTO.getLocale());
}
private String getText ( InvitationDTO invitationDTO, ProjectDTO projectDTO )
{
String invitationUrl = getInvitationUrl(projectDTO.getName(), invitationDTO.getCode());
String registerUrl = getRegisterUrl();
Object[] args = { projectDTO.getName(), invitationUrl, registerUrl };
return messageSourceAccessor.getMessage(TEXT, args, projectDTO.getLocale());
}
private String getInvitationUrl ( String projectName, String code )
{
StringBuffer invitationUrl = new StringBuffer();
invitationUrl.append(getBaseUrl());
invitationUrl.append("/project/");
invitationUrl.append(projectName);
invitationUrl.append("/version/current?");
invitationUrl.append(Parameter.INVITATION_CODE);
invitationUrl.append("=");
invitationUrl.append(code);
return invitationUrl.toString();
}
private String getRegisterUrl ( )
{
StringBuffer registerUrl = new StringBuffer();
registerUrl.append(getBaseUrl());
registerUrl.append("/info/register");
return registerUrl.toString();
}
private String getBaseUrl ( )
{
return mailSenderConfig.getLinkBase();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy