1
0
mirror of https://github.com/danbee/chess synced 2025-03-04 08:39:06 +00:00
chess/lib/chess_web/controllers/session_controller.ex
2023-02-04 21:35:56 -06:00

40 lines
974 B
Elixir

defmodule ChessWeb.SessionController do
use ChessWeb, :controller
alias Chess.Auth
alias Chess.Auth.Guardian
alias Chess.Store.User
def new(conn, _params) do
changeset = User.changeset(%User{})
render(conn, "new.html", changeset: changeset)
end
def create(
conn,
%{"user" => %{"email" => email, "password" => password}}
) do
case Auth.authenticate_user(email, password) do
{:ok, user} ->
conn
|> Guardian.Plug.sign_in(user)
|> put_flash(:info, "You are logged in")
|> redirect(to: game_path(conn, :index))
{:error, _error} ->
changeset = User.changeset(%User{})
conn
|> put_flash(:error, "Bad email or password")
|> render("new.html", changeset: changeset)
end
end
def delete(conn, _params) do
conn
|> Guardian.Plug.sign_out()
|> put_flash(:info, "You are logged out")
|> redirect(to: page_path(conn, :index))
end
end