Packages
guard
0.14.6
0.19.1
0.19.0
0.18.0
0.17.2
0.17.1
0.17.0
0.16.3
0.16.2
0.16.1
0.16.0
0.15.3
0.15.2
0.15.1
0.15.0
0.14.9
0.14.8
0.14.7
0.14.6
0.14.5
0.14.4
0.14.3
0.14.2
0.14.1
0.14.0
0.13.1
0.13.0
0.12.9
0.12.8
0.12.7
0.12.6
0.12.5
0.12.4
0.12.3
0.12.2
0.12.1
0.12.0
0.11.3
0.11.2
0.11.1
0.11.0
0.10.4
0.10.3
0.10.2
0.10.1
0.10.0
0.9.0
0.8.0
0.7.1
0.7.0
0.6.1
0.6.0
0.5.0
0.4.1
0.4.0
0.3.0
0.2.0
0.1.0
Useful package for dealing with user authentication and signup
Current section
Files
Jump to
Current section
Files
lib/guard/controller/user_controller.ex
defmodule Guard.Controller.UserController do
use Guard.Controller
alias Guard.{User, Users}
def get_user(conn, %{"id" => id}) do
conn
|> json(Users.get!(id))
end
def get_user(conn, %{"username" => username}) do
conn
|> json(Users.get_by_username!(username))
end
def get_user(conn, %{"email" => email}) do
conn
|> json(Users.get_by_email!(email))
end
def get_user(conn, %{"mobile" => mobile}) do
conn
|> json(Users.get_by_mobile!(mobile))
end
def list_user_devices(conn, %{"user_id" => user_id}) do
user = Users.get!(user_id)
devices = Users.list_devices(user)
conn
|> json(devices)
end
def delete_user(conn, %{"id" => user_id}) do
user = Users.get!(user_id)
with {:ok, %User{}} <- Users.delete_user(user) do
conn
|> send_resp(:no_content, "")
end
end
def update_user(conn, %{"id" => user_id, "user" => user_params}) do
user = Users.get!(user_id)
with {:ok, %User{} = user} <- Users.update_user(user, user_params) do
conn
|> json(user)
end
end
def create_user(conn, %{"user" => user_params}) do
with {:ok, %User{} = user} <- Users.create_user(user_params) do
conn
|> json(user)
end
end
def list_all_users(conn, params) do
limit = Map.get(params, "limit", nil)
start_id = Map.get(params, "start_id", nil)
start_key = Map.get(params, "start_key", nil)
key =
case Map.get(params, "key", "username") do
nil -> nil
val -> String.to_existing_atom(val)
end
direction =
case Map.get(params, "direction", "asc") do
nil -> nil
val -> String.to_existing_atom(val)
end
users =
Users.list_users(
limit: limit,
start_key: start_key,
start_id: start_id,
key: key,
direction: direction
)
conn
|> json(%{data: users})
end
end