Files
localiserd/lib/localiser/domain/users.ex
T
2026-04-16 15:46:00 +02:00

33 lines
675 B
Elixir

defmodule Localiser.Domain.Users do
alias Localiser.Repo
alias Localiser.Domain.Schema.User
def get_user!(id), do: Repo.get!(User, id)
def get_user_by_username(username) do
Repo.get_by(User, username: username)
end
def create_user(attrs) do
%User{}
|> User.changeset(attrs)
|> Repo.insert()
end
def authenticate_user(username, password) do
user = get_user_by_username(username)
cond do
user && Argon2.verify_pass(password, user.password_hash) ->
{:ok, user}
user ->
{:error, :invalid_credentials}
true ->
Argon2.no_user_verify()
{:error, :invalid_credentials}
end
end
end