package controllers; import static play.data.Form.form; import java.util.List; import java.util.Map; import models.User; import play.Logger; import play.Logger.ALogger; import play.data.Form; import play.data.validation.ValidationError; import play.mvc.Controller; import play.mvc.Result; import views.html.contact; import com.typesafe.plugin.MailerAPI; import com.typesafe.plugin.MailerPlugin; import forms.ContactPage; public class ContactPageController extends Controller { /** * Defines a form wrapping the User class. */ private Form<ContactPage> contactForm = form(ContactPage.class); private static ALogger log = Logger.of(PostController.class); public Result newForm() { if (log.isDebugEnabled()) log.debug("newForm() <-"); User user = HttpUtils.loginUser(); if (null == user) { return ok(contact.render(contactForm)); } else { ContactPage contactPage = new ContactPage(user.getFirstName() + " " + user.getLastName(), user.getEmail(), null); return ok(contact.render(contactForm.fill(contactPage))); } } public Result contact() { Form<ContactPage> filledForm = contactForm.bindFromRequest(); if (filledForm.hasErrors()) { Map<String, List<ValidationError>> errors = filledForm.errors(); if (log.isDebugEnabled()) log.debug("errors : " + errors); return badRequest(contact.render(filledForm)); } else { ContactPage contactPage = filledForm.get(); MailerAPI mail = play.Play.application().plugin(MailerPlugin.class).email(); mail.setSubject(contactPage.getName()); mail.setRecipient("necipk@gmail.com"); mail.setFrom(contactPage.getEmail()); // sends text/text mail.send(contactPage.getMessage()); flash("success", "hellp"); return ok(contact.render(contactForm)); } } }