Endpoints / Empresas

PATCH

Actualizar empresa

Actualiza parcialmente los datos editables de una empresa, limitado a la empresa del usuario autenticado.

PATCH/companies/:id

Caso de Uso

Se usa cuando la aplicación necesita modificar la razón social, el correo o el logo de la empresa del usuario autenticado. Al usarlo, el usuario obtiene los datos completos de la empresa actualizada, incluyendo la URL pública del logo.

Autenticación

Requiere token JWT en el header `Authorization: Bearer <token>`. Permite acceso a usuarios con rol administrador, jefe o empleado, pero solo sobre la misma empresa del usuario autenticado.

Parámetros de ruta

idstringobligatorio

Identificador de la empresa.

Body

emrznsocialstring opcional

Nueva razón social de la empresa.

emcorreostring opcional

Nuevo correo electrónico de la empresa; debe tener formato válido.

imagenfile opcional

Nuevo logo de la empresa; solo se aceptan .png o .jpg de hasta 5 MB.

Reglas de negocio

1

Solo permite actualizar la empresa del usuario autenticado; no permite modificar otras empresas.

2

La empresa del usuario autenticado debe estar activa.

3

El usuario autenticado debe estar activo.

4

El usuario autenticado debe tener rol administrador, jefe o empleado.

5

La empresa objetivo debe estar activa; si está inactiva o eliminada, no puede actualizarse.

6

Debe enviarse al menos un campo editable con un valor diferente al actual.

7

Si se envía emrznsocial, no puede estar vacío.

8

Si se envía emcorreo, debe tener formato de correo válido.

9

emcorreo no puede repetirse en otra empresa.

10

Si se envía imagen, solo se aceptan archivos .png y .jpg.

11

Si se envía imagen, el tamaño máximo permitido es 5 MB.

12

El backend transforma emlogo a una URL pública completa.

13

Cuando se envía imagen, el Content-Type debe ser multipart/form-data. Si no, puede usarse application/json.

Errores esperados

401No autorizado

No se envió un token JWT válido o el token no contiene información válida del usuario.

400El id de empresa es requerido

No se envió el parámetro id en la ruta.

404Empresa no encontrada

La empresa objetivo no existe o la actualización no devolvió resultados.

500La razon social de empresa es requerida

emrznsocial fue enviado vacío.

500El correo de empresa es requerido

emcorreo fue enviado vacío.

500El correo de empresa debe ser válido

emcorreo no tiene formato de correo válido.

500El logo de empresa es requerido

emlogo fue enviado vacío.

500El tamaño de la imagen excede el límite permitido

La imagen enviada supera los 5 MB.

500Solo se permiten imágenes PNG y JPG

La imagen enviada no tiene extensión .png o .jpg.

500Error al guardar la imagen

Ocurrió un error interno al guardar la imagen en el servidor.

500La empresa inactiva o eliminada no puede ser actualizada

La empresa objetivo está en estado inactivo o eliminado.

500Ya existe una empresa con ese correo

Otra empresa ya usa el emcorreo enviado.

500Al menos un campo es requerido para actualizar la empresa

No se envió ningún campo editable o todos los valores enviados son iguales a los actuales.

500Error al actualizar la empresa

Ocurrió un error interno al ejecutar la actualización.

500El código de empresa no es inválido

La empresa asociada al usuario autenticado no fue encontrada.

500La empresa no está activa

La empresa asociada al usuario autenticado está inactiva.

500El usuario no existe

El usuario autenticado no fue encontrado dentro de su empresa.

500El usuario no pertenece a la empresa

El usuario autenticado no pertenece a la empresa indicada por su sesión.

500El usuario no puede acceder a otra empresa

El id enviado no coincide con la empresa del usuario autenticado.

500El usuario no es jefe, empleado o administrador

El rol del usuario no está permitido para acceder al módulo de empresas.

500El usuario no está activo

El usuario autenticado está inactivo y no puede usar el sistema.

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

El campo emlogo se devuelve como URL pública completa, lista para usar en etiquetas <img>.