Endpoints / Usuarios

PATCH

Actualizar usuario

Actualiza parcialmente los datos editables de un usuario, dentro de la empresa del usuario autenticado, incluyendo nombre, correo, imagen, rol y estado.

PATCH/users/:id

Caso 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

idstringobligatorio

Identificador del usuario a actualizar.

Body

usnombrestring opcional

Nuevo nombre del usuario; debe contener solo letras y espacios.

uscorreostring opcional

Nuevo correo electrónico del usuario; debe tener formato válido y ser único globalmente.

usestadostring opcional

Nuevo estado del usuario. Valores: activo, inactivo, eliminado.

usrolstring opcional

Nuevo rol del usuario. Valores: administrador, jefe, empleado.

imagenfile opcional

Nueva imagen de perfil del usuario; solo se aceptan .png o .jpg de hasta 5 MB.

Reglas de negocio

1

Solo permite actualizar usuarios de la misma empresa del usuario autenticado.

2

El usuario autenticado debe estar activo.

3

La empresa del usuario autenticado debe estar activa.

4

Los roles permitidos para este endpoint son jefe, empleado o administrador.

5

Si se envía usrol o usestado, solo un usuario con rol jefe puede cambiarlo.

6

Si se envía usrol o usestado, el usuario objetivo debe tener rol jefe o empleado (no administrador).

7

Si el usuario objetivo está en estado eliminado, no se permite actualizar.

8

Debe enviarse al menos un campo para actualizar.

9

Si se envía uscorreo y ya existe, se retorna error de negocio.

10

El backend transforma usimagen a URL pública completa.

11

Campo: imagen

12

Formatos permitidos: .png, .jpg

13

Tamaño máximo: 5MB

Errores esperados

401Token inválido o ausente
400ID de usuario requerido

id inválido o ausente

500Se requiere al menos un campo para actualizar

Body sin campos para actualizar

500Nombre requerido, El nombre debe contener solo letras y espacios

usnombre ausente o inválido

500Correo requerido, El correo debe ser válido

uscorreo ausente o inválido

500Imagen de usuario requerida

usimagen vacía

500Estado de usuario requerido

usestado vacío

500El usuario no está activo (estado inválido)

usestado inválido

500Rol requerido, El rol debe ser válido

usrol ausente o inválido

500El tamaño de la imagen excede el límite permitido, Solo se permiten imágenes PNG y JPG

Imagen inválida

500El usuario ya existe con ese correo

Correo duplicado

500Usuario no encontrado

Usuario objetivo no encontrado

500No se puede actualizar un usuario eliminado

Usuario objetivo eliminado

500El usuario no es jefe

Usuario autenticado sin rol jefe al cambiar usrol o usestado

500El rol debe ser jefe o empleado

Usuario objetivo con rol fuera de jefe o empleado al cambiar usrol o usestado

500La empresa no está activa

Empresa inactiva

500El usuario no está activo

Usuario autenticado inactivo

Notas de uso

1

Este endpoint no recibe query params.

2

Envía solo los campos que deseas actualizar.

3

Si no se envía imagen, usa Content-Type: application/json.

4

Si se envía imagen, usa Content-Type: multipart/form-data con el archivo en el campo imagen.

5

No se permite cambiar el apodo (usapodo) mediante este endpoint.

6

Para cambiar solo el estado, existe el endpoint PATCH /users/:id/status.

7

Para cambiar solo la contraseña, existe el endpoint PATCH /users/:id/password.