package br.com.caelum.guj.newsletter;
import org.apache.log4j.Logger;
import br.com.caelum.guj.model.NewsletterParticipant;
import br.com.caelum.guj.newsletter.request.NewsletterRequest;
import br.com.caelum.vraptor.ioc.Component;
import br.com.caelum.vraptor.ioc.RequestScoped;
@Component
@RequestScoped
public class NewsletterSubscriber {
private static final Logger LOGGER = Logger.getLogger(NewsletterSubscriber.class);
private final NewsletterRequest request;
private final NewsletterURIBuilder uriBuilder;
public NewsletterSubscriber(NewsletterURIBuilder uriBuilder, NewsletterRequest request) {
this.uriBuilder = uriBuilder;
this.request = request;
}
public void subscribe(NewsletterParticipant participant) {
subscribe(participant, false);
}
public void subscribeWithConfirmation(NewsletterParticipant participant) {
subscribe(participant, true);
}
private void subscribe(NewsletterParticipant participant, boolean sendConfirmation) {
String uri = uriBuilder.emailAddress(participant.getEmail()).optin(sendConfirmation).genereateURI();
request.executeRequest(uri);
LOGGER.info("Registering the email " + participant.getEmail() + " at the newsletter");
}
}