Todos los endpoints bajoDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/camiloivcode/biblioteca-la-palabra/llms.txt
Use this file to discover all available pages before exploring further.
/api/users requieren autenticación con Bearer token y que el usuario autenticado tenga el rol ADMIN. Los usuarios con rol BIBLIOTECARIO reciben 403 Forbidden en cualquier solicitud a estos endpoints.
GET /api/users
Retorna el listado de todos los usuarios del sistema, ordenados por fecha de creación descendente (más recientes primero). El campopassword nunca se incluye en ninguna respuesta de este router.
200 OK
Identificador único del usuario.
Nombre completo del usuario.
Dirección de correo electrónico. Única en el sistema.
Rol del usuario. Valores posibles:
ADMIN o BIBLIOTECARIO.Estado de la cuenta. Si es
false, el usuario no puede iniciar sesión.Fecha y hora de creación del registro.
GET /api/users/:id
Retorna los datos de un usuario específico por suid. La contraseña nunca se expone.
200 OK
404 Not Found — Si no existe un usuario con el id indicado.
POST /api/users
Crea un nuevo usuario del sistema. Elemail debe ser único. La contraseña se almacena hasheada con bcryptjs (12 rondas de salt); nunca se devuelve en texto plano.
Cuerpo de la solicitud
Nombre completo del usuario. No puede estar vacío. Se aplica
trim automáticamente.Dirección de correo electrónico válida. Debe ser única en el sistema. Se normaliza a minúsculas automáticamente.
Contraseña del usuario. Requisitos obligatorios:
- Mínimo 8 caracteres
- Al menos 1 letra mayúscula
- Al menos 1 dígito numérico
Palabra7, Admin2024, BiblioX9Rol del usuario dentro del sistema. Valores permitidos:
ADMIN o BIBLIOTECARIO.ADMIN— acceso total, incluyendo gestión de usuarios.BIBLIOTECARIO— acceso operativo (catálogo, socios, préstamos, reportes).
201 Created
409 Conflict — Si ya existe un usuario registrado con ese email.
422 Unprocessable Entity — Si la contraseña no cumple los requisitos, el email no es válido, el rol no es ADMIN/BIBLIOTECARIO, o nombre está vacío.
PUT /api/users/:id
Actualiza los datos de un usuario existente. Todos los campos son opcionales; solo se modifican los que se incluyan. Ten en cuenta que el campopassword no forma parte de la validación de este endpoint (no hay reglas de longitud ni formato aplicadas). Sin embargo, si se incluye password en el cuerpo, el servicio lo detecta y lo almacena hasheado con bcryptjs (12 rondas). Si no se incluye, el campo es eliminado del payload antes de la actualización y la contraseña existente no cambia.
Cuerpo de la solicitud
Nuevo nombre completo. No puede enviarse vacío si se incluye. Se aplica
trim.Nueva dirección de correo. Debe ser un email válido. Se normaliza a minúsculas automáticamente.
Nuevo rol. Valores permitidos:
ADMIN o BIBLIOTECARIO.200 OK
404 Not Found — Si no existe un usuario con el id indicado.
Error 422 Unprocessable Entity — Si email o role tienen un valor inválido.
PATCH /api/users/:id/toggle
Alterna el estadoactivo del usuario: si está activo lo desactiva, y viceversa. No requiere cuerpo en la solicitud.
activo: false no puede iniciar sesión. Al intentarlo, el middleware de autenticación responde con 403 Forbidden y el mensaje Cuenta desactivada. Contacta al administrador. Esta es la forma recomendada de deshabilitar temporalmente el acceso sin eliminar la cuenta.
Restricción de auto-modificación. Un administrador no puede desactivar su propia cuenta. Si el
id del path coincide con el id del token autenticado, el servidor responde con 403 Forbidden:200 OK — Tras desactivar un usuario:
200 OK — Tras reactivar un usuario:
Nuevo estado del usuario tras ejecutar el toggle. El mensaje de la respuesta refleja si fue
activado o desactivado.DELETE /api/users/:id
Elimina permanentemente un usuario del sistema. La operación es irreversible.Restricción de auto-eliminación. Un administrador no puede eliminar su propia cuenta. Si el
id del path coincide con el del token autenticado, se retorna 403 Forbidden:200 OK
404 Not Found — Si no existe un usuario con el id indicado.