Skip to content

Instantly share code, notes, and snippets.

@chrismcg
Created August 6, 2015 09:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save chrismcg/305af023911406ec769c to your computer and use it in GitHub Desktop.
Save chrismcg/305af023911406ec769c to your computer and use it in GitHub Desktop.
defmodule Sheep.PageController do
use Sheep.Web, :controller
alias Sheep.Repo
alias Sheep.MailingListAddress
def index(conn, _params) do
render conn, "index.html"
end
def new_email(conn, params) do
changeset = MailingListAddress.changeset %MailingListAddress{}, params
render_email_response conn, params["format"], Repo.insert(changeset), params
end
defp render_email_response(conn, "html", {:ok, _}, params) do
conn
|> put_flash(:email_success, params["email"] <> " is nu aangemeld voor de nieuwsbrief !")
|> redirect(to: page_path(conn, :index))
end
defp render_email_response(conn, "html", {:error, changeset}, params) do
conn
|> put_flash(:email_error, params["email"] <> " #{changeset.errors[:email]}")
|> redirect(to: page_path(conn, :index))
end
defp render_email_response(conn, "json", {:ok, _}, _params) do
json conn, %{success: true}
end
defp render_email_response(conn, "json", {:error, changeset}, _params) do
conn
|> put_status(500)
|> json %{error: changset.errors[:email]}
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment