diff options
author | Jesse Morgan <jesse@jesterpm.net> | 2014-02-13 22:49:46 -0800 |
---|---|---|
committer | Jesse Morgan <jesse@jesterpm.net> | 2014-02-13 22:49:46 -0800 |
commit | 9fd23c11d28911d2ea8f66e648d01c4733c81380 (patch) | |
tree | d67e33f925e2bc287b0e30ae3a33c37fc8f6863f /src/com/p4square/grow/frontend/NewBelieverResource.java | |
parent | c91558898921c2063762c3b346eaa36a259b6391 (diff) |
Adding New Believer resource.
Diffstat (limited to 'src/com/p4square/grow/frontend/NewBelieverResource.java')
-rw-r--r-- | src/com/p4square/grow/frontend/NewBelieverResource.java | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/src/com/p4square/grow/frontend/NewBelieverResource.java b/src/com/p4square/grow/frontend/NewBelieverResource.java new file mode 100644 index 0000000..8fe078a --- /dev/null +++ b/src/com/p4square/grow/frontend/NewBelieverResource.java @@ -0,0 +1,72 @@ +/* + * Copyright 2014 Jesse Morgan + */ + +package com.p4square.grow.frontend; + +import freemarker.template.Template; + +import org.restlet.data.CookieSetting; +import org.restlet.data.MediaType; +import org.restlet.data.Status; +import org.restlet.representation.Representation; +import org.restlet.ext.freemarker.TemplateRepresentation; + +import org.apache.log4j.Logger; + +import com.p4square.fmfacade.FreeMarkerPageResource; + +/** + * This resource displays the transitional page between chapters. + * + * @author Jesse Morgan <jesse@jesterpm.net> + */ +public class NewBelieverResource extends FreeMarkerPageResource { + private static final Logger LOG = Logger.getLogger(NewBelieverResource.class); + + public static final String COOKIE_NAME = "seeker"; + + private GrowFrontend mGrowFrontend; + + @Override + public void doInit() { + super.doInit(); + + mGrowFrontend = (GrowFrontend) getApplication(); + } + + /** + * Display the New Believer page. + * + * The New Believer page creates a cookie to remember the user, + * explains what's going on, and then asks the user to go to the login + * page. + * + * When the user hits the {@link AccountRedirectResource} the cookie + * is read and the user is moved ahead to the training section. + */ + @Override + protected Representation get() { + Template t = mGrowFrontend.getTemplate("templates/newbeliever.ftl"); + + try { + if (t == null) { + setStatus(Status.CLIENT_ERROR_NOT_FOUND); + return ErrorPage.TEMPLATE_NOT_FOUND; + } + + // Set the new believer cookie + CookieSetting cookie = new CookieSetting(COOKIE_NAME, "true"); + cookie.setPath("/"); + getRequest().getCookies().add(cookie); + getResponse().getCookieSettings().add(cookie); + + return new TemplateRepresentation(t, getRootObject(), MediaType.TEXT_HTML); + + } catch (Exception e) { + LOG.fatal("Could not render page: " + e.getMessage(), e); + setStatus(Status.SERVER_ERROR_INTERNAL); + return ErrorPage.RENDER_ERROR; + } + } +} |