diff --git a/lib/wabanex/users/create.ex b/lib/wabanex/users/create.ex new file mode 100644 index 0000000..240728f --- /dev/null +++ b/lib/wabanex/users/create.ex @@ -0,0 +1,9 @@ +defmodule Wabanex.Users.Create do + alias Wabanex.{Repo, User} + + def call(params) do + params + |> User.changeset() + |> Repo.insert() + end +end diff --git a/lib/wabanex/users/get.ex b/lib/wabanex/users/get.ex new file mode 100644 index 0000000..fc6640a --- /dev/null +++ b/lib/wabanex/users/get.ex @@ -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