AuthManager.Accounts.UserService (auth_manager_core v0.1.1)

Servicio para operaciones relacionadas con usuarios.

Summary

Functions

Activa un usuario.

Autentica a un usuario por nombre de usuario/email y contraseña.

Cambia la contraseña de un usuario.

Cuenta el número de usuarios según criterios de búsqueda.

Obtiene un usuario por su email.

Obtiene un usuario por su nombre de usuario.

Obtiene un usuario por su ID.

Obtiene un usuario por su ID, lanzando un error si no existe.

Inactiva un usuario.

Busca usuarios según criterios.

Actualiza los datos de un usuario.

Functions

activate(user)

Activa un usuario.

Ejemplos

iex> UserService.activate(user)
{:ok, %User{}}

authenticate(username_or_email, password)

Autentica a un usuario por nombre de usuario/email y contraseña.

Ejemplos

iex> UserService.authenticate("usuario", "contraseña")
{:ok, %User{}}

iex> UserService.authenticate("usuario", "incorrecta")
{:error, :invalid_credentials}

change_password(user, password)

Cambia la contraseña de un usuario.

Ejemplos

iex> UserService.change_password(user, "nueva_contraseña")
{:ok, %User{}}

count_users(opts \\ [])

Cuenta el número de usuarios según criterios de búsqueda.

Ejemplos

iex> UserService.count_users(search: "juan", active: true)
5

get_by_email(email)

Obtiene un usuario por su email.

Ejemplos

iex> UserService.get_by_email("juan@example.com")
%User{}

get_by_username(username)

Obtiene un usuario por su nombre de usuario.

Ejemplos

iex> UserService.get_by_username("juanperez")
%User{}

get_user(id)

Obtiene un usuario por su ID.

Ejemplos

iex> UserService.get_user(1)
%User{}

iex> UserService.get_user(999)
nil

get_user!(id)

Obtiene un usuario por su ID, lanzando un error si no existe.

Ejemplos

iex> UserService.get_user!(1)
%User{}

iex> UserService.get_user!(999)
** (Ecto.NoResultsError)

inactivate(user)

Inactiva un usuario.

Ejemplos

iex> UserService.inactivate(user)
{:ok, %User{}}

search_users(opts \\ [])

Busca usuarios según criterios.

Ejemplos

iex> UserService.search_users(search: "juan", active: true)
[%User{}, ...]

update_user(user, attrs)

Actualiza los datos de un usuario.

Ejemplos

iex> UserService.update_user(user, %{first_name: "Nuevo Nombre"})
{:ok, %User{}}