feat: expose CRUD, onboarding, pubsub via web
This commit is contained in:
@@ -2,8 +2,19 @@ defmodule Localiser.Domain.Users do
|
||||
alias Localiser.Repo
|
||||
alias Localiser.Domain.Schema.User
|
||||
|
||||
def list_users, do: Repo.all(User)
|
||||
|
||||
def get_user!(id), do: Repo.get!(User, id)
|
||||
|
||||
def get_user(id) do
|
||||
case Repo.get(User, id) do
|
||||
nil -> {:error, :not_found}
|
||||
user -> {:ok, user}
|
||||
end
|
||||
end
|
||||
|
||||
def any?, do: Repo.exists?(User)
|
||||
|
||||
def get_user_by_username(username) do
|
||||
Repo.get_by(User, username: username)
|
||||
end
|
||||
@@ -14,6 +25,20 @@ defmodule Localiser.Domain.Users do
|
||||
|> Repo.insert()
|
||||
end
|
||||
|
||||
def update_user(%User{} = user, attrs) do
|
||||
user
|
||||
|> User.changeset(attrs)
|
||||
|> Repo.update()
|
||||
end
|
||||
|
||||
def promote_to_admin(%User{} = user) do
|
||||
user
|
||||
|> Ecto.Changeset.change(is_admin: true)
|
||||
|> Repo.update()
|
||||
end
|
||||
|
||||
def delete_user(%User{} = user), do: Repo.delete(user)
|
||||
|
||||
def authenticate_user(username, password) do
|
||||
user = get_user_by_username(username)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user