Saltearse al contenido

Usuarios

Tag: users
Descripción: Operaciones CRUD para usuarios del sistema


  • Descripción: Crea un nuevo usuario en el sistema (los nuevos usuarios se crean inactivos por defecto y con rol de usuario normal).
  • Operation ID: UsersController_create
  • Autenticación requerida: ❌ No
  • Validaciones:
    • Email debe ser único (se verifica contra la base de datos)
    • El rol siempre se establece como “usuario normal” (rol_id: 3)
    • El estado siempre se establece como inactivo (is_active: false) inicialmente
    • La contraseña se hashea antes de almacenarse
{
"username": "juan_perez",
"email": "juan@example.com",
"password": "ContraseñaSegura123!",
"first_name": "Juan",
"last_name": "Pérez",
"phone": "+5491155555555",
"address": "Calle Falsa 123",
"city": "Buenos Aires",
"country": "Argentina",
"postal_code": "C1425ABC"
}
CampoTipoDescripciónValidacionesEjemplo
usernamestringNombre de usuario únicoRequerido, único”juan_perez”
emailstringCorreo electrónicoRequerido, formato email, únicojuan@example.com
passwordstringContraseñaRequerido, min 8 caracteres”ContraseñaSegura123!“
first_namestringNombre del usuarioOpcional”Juan”
last_namestringApellido del usuarioOpcional”Pérez”
phonestringTeléfonoOpcional”+5491155555555”
addressstringDirecciónOpcional”Calle Falsa 123”
citystringCiudadOpcional”Buenos Aires”
countrystringPaísOpcional”Argentina”
postal_codestringCódigo postalOpcional”C1425ABC”

Notas:

  • Los campos role_id e is_active no pueden ser establecidos al crear un usuario (se asignan automáticamente)
  • El sistema devolverá el usuario creado sin el campo de contraseña
CódigoDescripciónEjemplo de respuesta (sin password_hash)
201Usuario creado exitosamentejson {"id": 1, "username": "juan_perez", "email": "juan@example.com", "is_active": false, "role_id": 3, ...}
400Datos de entrada inválidosjson {"message": "Validation failed", "errors": [...]}
409El email ya está registradojson {"message": "El correo electrónico ya está registrado"}
  1. Verifica que el email no esté registrado
  2. Hashea la contraseña con bcrypt
  3. Crea el usuario con:
    • is_active: false
    • role_id: 3 (usuario normal)
    • password_hash (versión hasheada de la contraseña)
  4. Guarda el usuario en la base de datos
  5. Devuelve el usuario creado (excluyendo el password_hash)
CódigoDescripción
201Usuario creado exitosamente
400Datos de entrada inválidos
409El email ya está registrado

  • Descripción: Obtiene lista paginada de usuarios (solo administradores).
  • Operation ID: UsersController_findAll
  • Autenticación requerida: 🔒 Sí (Rol: admin)
  • Parámetros Query:
    • page (default: 1) - Página actual
    • limit (default: 10) - Items por página
CódigoDescripción
200Lista de usuarios obtenida
403Acceso no autorizado

  • Descripción: Obtiene detalles de un usuario específico.
  • Operation ID: UsersController_findOne
  • Autenticación requerida: 🔒 Sí
NombreTipoDescripción
idnumberID del usuario
CódigoDescripción
200Usuario encontrado
404Usuario no encontrado

  • Descripción: Actualiza información de un usuario existente.
  • Operation ID: UsersController_update
  • Autenticación requerida: 🔒 Sí
NombreTipoDescripción
idnumberID del usuario
{
"email": "nuevo_email@ejemplo.com",
"phone": "+9876543210"
}
CódigoDescripción
200Usuario actualizado
404Usuario no encontrado

  • Descripción: Elimina un usuario del sistema (solo administradores).
  • Operation ID: UsersController_remove
  • Autenticación requerida: 🔒 Sí (Rol: admin)
NombreTipoDescripción
idnumberID del usuario
CódigoDescripción
200Usuario eliminado
403Acceso no autorizado
404Usuario no encontrado

MétodoEndpointDescripciónAutenticación RequeridaRol Requerido
POST/usersCrear nuevo usuario❌ No-
GET/usersListar usuarios (paginado)🔒 Síadmin
GET/users/:idObtener usuario por ID🔒 Síadmin
PATCH/users/:idActualizar usuario🔒 Síadmin
DELETE/users/:idEliminar usuario🔒 Síadmin
  1. Seguridad: Las contraseñas nunca se devuelven en las respuestas
  2. Roles:
    • Solo usuarios con rol admin pueden listar y eliminar usuarios
    • Los nuevos usuarios siempre se crean con rol user (ID: 3)
  3. Estado:
    • Los nuevos usuarios se crean como is_active: false
    • Requieren activación manual o hacer PATCH al usuario