Los endpoints de Usuarios administran las cuentas internas que operan el sistema de gestión de visitas al Túnel Subfluvial. Los usuarios pueden tener el rolDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/JuanM84/gestor-visitas/llms.txt
Use this file to discover all available pages before exploring further.
Admin o Guía. La mayoría de los endpoints están restringidos al rol Admin; los endpoints de contraseña y perfil permiten a cada usuario gestionar sus propios datos. Todos los requests requieren un encabezado Authorization: Bearer <token> válido.
GET /api/usuarios
Devuelve la lista de todos los usuarios registrados en el sistema. Este endpoint está restringido al rolAdmin.
Array de objetos de usuario.
Identificador único del usuario.
Nombre completo del usuario.
Dirección de email de acceso.
Rol del usuario:
Admin o Guía.Indica si la cuenta está actualmente activa.
| Estado | Significado |
|---|---|
200 | Éxito — lista completa de usuarios devuelta |
401 | Token ausente o inválido |
403 | El usuario autenticado no tiene el rol Admin |
500 | Error interno del servidor |
POST /api/usuarios
Crea un nuevo usuario del sistema. Restringido al rolAdmin. El servicio valida la unicidad del email y aplica el hash de la contraseña antes de persistir.
Nombre completo del nuevo usuario.
Dirección de email de acceso. Debe ser única en el sistema.
Contraseña inicial en texto plano. Se almacena como hash bcrypt.
Rol a asignar:
Admin o Guía.Mensaje de confirmación:
"Usuario creado exitosamente".El objeto del nuevo usuario recién creado (el hash de contraseña no se devuelve).
| Estado | Significado |
|---|---|
201 | Usuario creado — devuelve { mensaje, usuario } |
400 | Error de validación (email duplicado, campos requeridos faltantes, etc.) |
401 | Token ausente o inválido |
403 | El usuario autenticado no tiene el rol Admin |
PUT /api/usuarios/:id
Actualiza los datos de perfil de un usuario existente. Solo se pueden modificarnombre, email, telefono y rol a través de este endpoint. Los cambios de contraseña deben realizarse mediante PUT /api/usuarios/:id/password. Restringido al rol Admin.
El identificador único del usuario a actualizar.
Nombre completo actualizado.
Dirección de email actualizada.
Teléfono de contacto actualizado.
Rol actualizado:
Admin o Guía.Mensaje de confirmación:
"Usuario actualizado correctamente.".El objeto de usuario completo y actualizado.
| Estado | Significado |
|---|---|
200 | Usuario actualizado — devuelve { mensaje, usuario } |
400 | Error de validación o del servicio |
401 | Token ausente o inválido |
403 | El usuario autenticado no tiene el rol Admin |
PATCH /api/usuarios/:id/desactivar
Desactiva una cuenta de usuario mediante soft-delete, estableciendoactivo = false. El usuario se conserva en la base de datos con fines de auditoría pero no puede volver a iniciar sesión. Restringido al rol Admin.
El identificador único del usuario a desactivar.
Mensaje de confirmación incluyendo el nombre del usuario, ej.
"Usuario \"Martina López\" desactivado correctamente".El objeto de usuario actualizado con
activo igual a false.| Estado | Significado |
|---|---|
200 | Usuario desactivado — devuelve { mensaje, usuario } |
400 | Intento de auto-desactivación, protección del último Admin, o usuario ya inactivo |
401 | Token ausente o inválido |
403 | El usuario autenticado no tiene el rol Admin |
404 | No se encontró ningún usuario con ese ID |
PATCH /api/usuarios/:id/reactivar
Reactiva una cuenta de usuario previamente desactivada estableciendoactivo = true. Restringido al rol Admin. El usuario reactivado puede iniciar sesión de inmediato.
El identificador único del usuario a reactivar.
Mensaje de confirmación incluyendo el nombre del usuario, ej.
"Usuario \"Martina López\" reactivado correctamente".El objeto de usuario actualizado con
activo igual a true.| Estado | Significado |
|---|---|
200 | Usuario reactivado — devuelve { mensaje, usuario } |
400 | Usuario ya se encuentra activo ("El usuario ya se encuentra activo") |
401 | Token ausente o inválido |
403 | El usuario autenticado no tiene el rol Admin |
404 | No se encontró ningún usuario con ese ID |
PUT /api/usuarios/:id/password
Cambia la contraseña de una cuenta de usuario. El usuario solicitante debe ser el propietario de la cuenta o tener el rolAdmin. Se requieren tanto la contraseña actual como la nueva. La contraseña actual se verifica contra el hash almacenado antes de aplicar el cambio.
El identificador único del usuario cuya contraseña se cambia.
La contraseña actual del usuario en texto plano, para verificación.
La nueva contraseña en texto plano. Se almacenará como hash bcrypt.
Mensaje de confirmación:
"Contraseña actualizada correctamente.".| Estado | Significado |
|---|---|
200 | Contraseña cambiada — devuelve { mensaje } |
400 | Campos faltantes o contraseña actual incorrecta |
401 | Token ausente o inválido |
403 | El solicitante no es el propietario de la cuenta ni tiene el rol Admin |
GET /api/usuarios/:id/perfil
Devuelve el perfil del usuario especificado. Un usuario solo puede ver su propio perfil a menos que tenga el rolAdmin. Devuelve 404 si el usuario no se encuentra.
El identificador único del usuario cuyo perfil se desea consultar.
Identificador único del usuario.
Nombre completo.
Dirección de email de acceso.
Teléfono de contacto.
Rol actual:
Admin o Guía.Indica si la cuenta está actualmente activa.
| Estado | Significado |
|---|---|
200 | Éxito — perfil del usuario devuelto |
401 | Token ausente o inválido |
403 | El solicitante no es el propietario de la cuenta ni tiene el rol Admin |
404 | No se encontró ningún usuario con ese ID |
PUT /api/usuarios/:id/perfil
Permite a un usuario actualizar sus propios datos de contacto. Solo se pueden modificaremail y telefono a través de este endpoint. Solo el propietario de la cuenta puede llamar a este endpoint — ni siquiera un Admin puede actualizar el perfil de otro usuario aquí. Para cambiar nombre o rol, usá PUT /api/usuarios/:id.
El identificador único del usuario cuyo perfil se actualiza. Debe coincidir con el ID del usuario autenticado.
Dirección de email actualizada.
Teléfono de contacto actualizado.
Mensaje de confirmación:
"Perfil actualizado correctamente.".El objeto de usuario actualizado con los nuevos datos de contacto.
| Estado | Significado |
|---|---|
200 | Perfil actualizado — devuelve { mensaje, usuario } |
400 | Error de validación o del servicio |
401 | Token ausente o inválido |
403 | El usuario autenticado no es el propietario de la cuenta |