init: inital commit
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
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
|
||||
Reference in New Issue
Block a user