You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
asciinema.org/lib/asciinema_web/controllers/login_controller.ex

28 lines
822 B
Elixir

defmodule AsciinemaWeb.LoginController do
use AsciinemaWeb, :controller
alias Asciinema.Users
def new(conn, _params) do
render(conn, "new.html")
end
def create(conn, %{"login" => %{"email" => email_or_username}}) do
email_or_username = String.trim(email_or_username)
case Users.send_login_email(email_or_username) do
{:ok, _url} ->
redirect(conn, to: login_path(conn, :sent))
{:error, :user_not_found} ->
render(conn, "new.html", error: "No user found for given username.")
{:error, :email_invalid} ->
render(conn, "new.html", error: "This doesn't look like a correct email address.")
{:error, :email_missing} ->
redirect(conn, to: login_path(conn, :sent))
end
end
def sent(conn, _params) do
render(conn, "sent.html")
end
end