-
-
Save shankardevy/2a9bda47f035f22f7baff78025edfaa3 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
defmodule Mango.Administration do | |
@moduledoc """ | |
The boundary for the Administration system. | |
""" | |
import Ecto.Query, warn: false | |
alias Mango.Repo | |
alias Mango.Administration.User | |
def get_admin_by_email(email) do | |
User |> Repo.get_by(email: email) | |
end | |
@doc """ | |
Returns the list of users. | |
## Examples | |
iex> list_users() | |
[%User{}, ...] | |
""" | |
def list_users do | |
Repo.all(User) | |
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) | |
@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 | |
%User{} | |
|> User.changeset(attrs) | |
|> Repo.insert() | |
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 | |
user | |
|> User.changeset(attrs) | |
|> Repo.update() | |
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 | |
Repo.delete(user) | |
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 | |
User.changeset(user, %{}) | |
end | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment