package controllers;
import cloudify.widget.api.clouds.IWidgetLoginDetails;
import cloudify.widget.common.MailChimpWidgetLoginHandler;
import models.Widget;
import models.WidgetInstanceUserDetails;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import play.libs.Json;
import play.mvc.Controller;
import java.util.Collection;
/**
* Created with IntelliJ IDEA.
* User: guym
* Date: 3/16/14
* Time: 11:41 PM
*/
public abstract class AbstractLoginController extends Controller {
private static Logger logger = LoggerFactory.getLogger(AbstractLoginController.class);
public static void handleLogin( Widget widget, IWidgetLoginDetails loginDetails ){
if (loginDetails instanceof MailChimpWidgetLoginHandler.MailChimpLoginDetails) {
MailChimpWidgetLoginHandler.MailChimpLoginDetails details = (MailChimpWidgetLoginHandler.MailChimpLoginDetails) loginDetails;
WidgetInstanceUserDetails userDetails = new WidgetInstanceUserDetails();
userDetails.setLastName( details.getLastName() );
userDetails.setName( details.getFirstName() );
userDetails.setEmail( details.getEmail() );
session().put(WidgetInstanceUserDetails.COOKIE_NAME,Json.toJson(userDetails).toString());
}
if ( widget.mailChimpDetails != null && widget.mailChimpDetails.isEnabled() ){
logger.info("I got mailchimp details. I will send to it : " + widget.mailChimpDetails.toString() );
try{
MailChimpWidgetLoginHandler mclh = new MailChimpWidgetLoginHandler();
mclh.setListId(widget.mailChimpDetails.getListId());
mclh.setApiKey(widget.mailChimpDetails.getApiKey());
mclh.handleWidgetLogin(loginDetails);
}catch(Exception e){
logger.error("error while sending login details to mailchimp",e);
}
}else{
logger.info("no mailchimp details");
}
}
}