All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.jlot.mailing.generator.InvitationMailGeneratorImpl Maven / Gradle / Ivy

There is a newer version: 1.2
Show newest version
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