mirror of
https://github.com/danbee/chess
synced 2025-03-04 08:39:06 +00:00
Refactor current_user
This commit is contained in:
parent
73142f8a09
commit
21d843ebc8
@ -9,96 +9,32 @@ defmodule Chess.Auth do
|
|||||||
|
|
||||||
alias Chess.Auth.User
|
alias Chess.Auth.User
|
||||||
|
|
||||||
@doc """
|
def current_user(conn) do
|
||||||
Returns the list of users.
|
Guardian.Plug.current_resource(conn)
|
||||||
|
end
|
||||||
|
|
||||||
## Examples
|
|
||||||
|
|
||||||
iex> list_users()
|
|
||||||
[%User{}, ...]
|
|
||||||
|
|
||||||
"""
|
|
||||||
def list_users do
|
def list_users do
|
||||||
Repo.all(User)
|
Repo.all(User)
|
||||||
end
|
end
|
||||||
|
|
||||||
@doc """
|
|
||||||
Gets a single user.
|
|
||||||
|
|
||||||
Raises `Ecto.NoResultsError` if the User does not exist.
|
|
||||||
|
|
||||||
## Examples
|
|
||||||
|
|
||||||
iex> get_user!(123)
|
|
||||||
%User{}
|
|
||||||
|
|
||||||
iex> get_user!(456)
|
|
||||||
** (Ecto.NoResultsError)
|
|
||||||
|
|
||||||
"""
|
|
||||||
def get_user!(id), do: Repo.get!(User, id)
|
def get_user!(id), do: Repo.get!(User, id)
|
||||||
|
|
||||||
@doc """
|
|
||||||
Creates a user.
|
|
||||||
|
|
||||||
## Examples
|
|
||||||
|
|
||||||
iex> create_user(%{field: value})
|
|
||||||
{:ok, %User{}}
|
|
||||||
|
|
||||||
iex> create_user(%{field: bad_value})
|
|
||||||
{:error, %Ecto.Changeset{}}
|
|
||||||
|
|
||||||
"""
|
|
||||||
def create_user(attrs \\ %{}) do
|
def create_user(attrs \\ %{}) do
|
||||||
%User{}
|
%User{}
|
||||||
|> User.changeset(attrs)
|
|> User.changeset(attrs)
|
||||||
|> Repo.insert()
|
|> Repo.insert()
|
||||||
end
|
end
|
||||||
|
|
||||||
@doc """
|
|
||||||
Updates a user.
|
|
||||||
|
|
||||||
## Examples
|
|
||||||
|
|
||||||
iex> update_user(user, %{field: new_value})
|
|
||||||
{:ok, %User{}}
|
|
||||||
|
|
||||||
iex> update_user(user, %{field: bad_value})
|
|
||||||
{:error, %Ecto.Changeset{}}
|
|
||||||
|
|
||||||
"""
|
|
||||||
def update_user(%User{} = user, attrs) do
|
def update_user(%User{} = user, attrs) do
|
||||||
user
|
user
|
||||||
|> User.changeset(attrs)
|
|> User.changeset(attrs)
|
||||||
|> Repo.update()
|
|> Repo.update()
|
||||||
end
|
end
|
||||||
|
|
||||||
@doc """
|
|
||||||
Deletes a User.
|
|
||||||
|
|
||||||
## Examples
|
|
||||||
|
|
||||||
iex> delete_user(user)
|
|
||||||
{:ok, %User{}}
|
|
||||||
|
|
||||||
iex> delete_user(user)
|
|
||||||
{:error, %Ecto.Changeset{}}
|
|
||||||
|
|
||||||
"""
|
|
||||||
def delete_user(%User{} = user) do
|
def delete_user(%User{} = user) do
|
||||||
Repo.delete(user)
|
Repo.delete(user)
|
||||||
end
|
end
|
||||||
|
|
||||||
@doc """
|
|
||||||
Returns an `%Ecto.Changeset{}` for tracking user changes.
|
|
||||||
|
|
||||||
## Examples
|
|
||||||
|
|
||||||
iex> change_user(user)
|
|
||||||
%Ecto.Changeset{source: %User{}}
|
|
||||||
|
|
||||||
"""
|
|
||||||
def change_user(%User{} = user) do
|
def change_user(%User{} = user) do
|
||||||
User.changeset(user, %{})
|
User.changeset(user, %{})
|
||||||
end
|
end
|
||||||
|
|||||||
@ -3,6 +3,8 @@ defmodule ChessWeb.Api.GameController do
|
|||||||
|
|
||||||
alias Chess.Store.Game
|
alias Chess.Store.Game
|
||||||
|
|
||||||
|
import Chess.Auth, only: [current_user: 1]
|
||||||
|
|
||||||
def show(conn, %{"id" => id}) do
|
def show(conn, %{"id" => id}) do
|
||||||
query =
|
query =
|
||||||
from(game in Game, preload: [:user, :opponent])
|
from(game in Game, preload: [:user, :opponent])
|
||||||
@ -32,8 +34,4 @@ defmodule ChessWeb.Api.GameController do
|
|||||||
|
|
||||||
Map.put(board, "#{to_file},#{to_rank}", piece)
|
Map.put(board, "#{to_file},#{to_rank}", piece)
|
||||||
end
|
end
|
||||||
|
|
||||||
defp current_user(conn) do
|
|
||||||
Guardian.Plug.current_resource(conn)
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|||||||
@ -3,6 +3,8 @@ defmodule ChessWeb.GameController do
|
|||||||
|
|
||||||
alias Chess.Store.Game
|
alias Chess.Store.Game
|
||||||
|
|
||||||
|
import Chess.Auth, only: [current_user: 1]
|
||||||
|
|
||||||
def index(conn, _params) do
|
def index(conn, _params) do
|
||||||
changeset = Game.changeset(%Game{})
|
changeset = Game.changeset(%Game{})
|
||||||
games =
|
games =
|
||||||
@ -72,8 +74,4 @@ defmodule ChessWeb.GameController do
|
|||||||
query
|
query
|
||||||
|> Repo.all
|
|> Repo.all
|
||||||
end
|
end
|
||||||
|
|
||||||
defp current_user(conn) do
|
|
||||||
Guardian.Plug.current_resource(conn)
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
defmodule ChessWeb.GameView do
|
defmodule ChessWeb.GameView do
|
||||||
use ChessWeb, :view
|
use ChessWeb, :view
|
||||||
|
|
||||||
import ChessWeb.LayoutView, only: [current_user: 1]
|
import Chess.Auth, only: [current_user: 1]
|
||||||
|
|
||||||
def opponent(conn, game) do
|
def opponent(conn, game) do
|
||||||
if current_user(conn).id == game.user_id do
|
if current_user(conn).id == game.user_id do
|
||||||
|
|||||||
@ -1,7 +1,5 @@
|
|||||||
defmodule ChessWeb.LayoutView do
|
defmodule ChessWeb.LayoutView do
|
||||||
use ChessWeb, :view
|
use ChessWeb, :view
|
||||||
|
|
||||||
def current_user(conn) do
|
import Chess.Auth, only: [current_user: 1]
|
||||||
Guardian.Plug.current_resource(conn)
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user