[day-02] add context to create/get a user
Create context module to create and fetch a user.
This commit is contained in:
parent
d578bc6cf3
commit
3709cd265a
9
lib/wabanex/users/create.ex
Normal file
9
lib/wabanex/users/create.ex
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
defmodule Wabanex.Users.Create do
|
||||||
|
alias Wabanex.{Repo, User}
|
||||||
|
|
||||||
|
def call(params) do
|
||||||
|
params
|
||||||
|
|> User.changeset()
|
||||||
|
|> Repo.insert()
|
||||||
|
end
|
||||||
|
end
|
20
lib/wabanex/users/get.ex
Normal file
20
lib/wabanex/users/get.ex
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
defmodule Wabanex.Users.Get do
|
||||||
|
alias Wabanex.{Repo, User}
|
||||||
|
|
||||||
|
def call(id) do
|
||||||
|
id
|
||||||
|
|> Ecto.UUID.cast()
|
||||||
|
|> handle_result()
|
||||||
|
end
|
||||||
|
|
||||||
|
defp handle_result(:error), do: {:error, "Invalid id format"}
|
||||||
|
|
||||||
|
defp handle_result({:ok, uuid}) do
|
||||||
|
User
|
||||||
|
|> Repo.get(uuid)
|
||||||
|
|> case do
|
||||||
|
nil -> {:error, "User not found"}
|
||||||
|
user -> {:ok, user}
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
Loading…
x
Reference in New Issue
Block a user