Endpoints / Usuarios
Actualizar usuario
Actualiza parcialmente los datos editables de un usuario, dentro de la empresa del usuario autenticado, incluyendo nombre, correo, imagen, rol y estado.
/users/:idCaso de Uso
Se usa cuando la aplicación necesita modificar el nombre, correo, imagen de perfil, rol o estado de un usuario existente. Al usarlo, el usuario obtiene los datos completos del usuario actualizado, con la URL pública de su imagen de perfil.
Autenticación
Requiere token JWT en el header `Authorization: Bearer <token>`. Permite acceso a usuarios con rol administrador, jefe o empleado, con reglas adicionales para cambiar usrol o usestado.
Parámetros de ruta
idstringobligatorioIdentificador del usuario a actualizar.
Body
usnombrestring opcionalNuevo nombre del usuario; debe contener solo letras y espacios.
uscorreostring opcionalNuevo correo electrónico del usuario; debe tener formato válido y ser único globalmente.
usestadostring opcionalNuevo estado del usuario. Valores: activo, inactivo, eliminado.
usrolstring opcionalNuevo rol del usuario. Valores: administrador, jefe, empleado.
imagenfile opcionalNueva imagen de perfil del usuario; solo se aceptan .png o .jpg de hasta 5 MB.
Reglas de negocio
Solo permite actualizar usuarios de la misma empresa del usuario autenticado.
El usuario autenticado debe estar activo.
La empresa del usuario autenticado debe estar activa.
Los roles permitidos para este endpoint son jefe, empleado o administrador.
Si se envía usrol o usestado, solo un usuario con rol jefe puede cambiarlo.
Si se envía usrol o usestado, el usuario objetivo debe tener rol jefe o empleado (no administrador).
Si el usuario objetivo está en estado eliminado, no se permite actualizar.
Debe enviarse al menos un campo para actualizar.
Si se envía uscorreo y ya existe, se retorna error de negocio.
El backend transforma usimagen a URL pública completa.
Campo: imagen
Formatos permitidos: .png, .jpg
Tamaño máximo: 5MB
Errores esperados
id inválido o ausente
Body sin campos para actualizar
usnombre ausente o inválido
uscorreo ausente o inválido
usimagen vacía
usestado vacío
usestado inválido
usrol ausente o inválido
Imagen inválida
Correo duplicado
Usuario objetivo no encontrado
Usuario objetivo eliminado
Usuario autenticado sin rol jefe al cambiar usrol o usestado
Usuario objetivo con rol fuera de jefe o empleado al cambiar usrol o usestado
Empresa inactiva
Usuario autenticado inactivo
Notas de uso
Este endpoint no recibe query params.
Envía solo los campos que deseas actualizar.
Si no se envía imagen, usa Content-Type: application/json.
Si se envía imagen, usa Content-Type: multipart/form-data con el archivo en el campo imagen.
No se permite cambiar el apodo (usapodo) mediante este endpoint.
Para cambiar solo el estado, existe el endpoint PATCH /users/:id/status.
Para cambiar solo la contraseña, existe el endpoint PATCH /users/:id/password.