Actualizar una incidencia

Este endpoint permite actualizar la información de una incidencia ya registrada para un empleado.

PUT /api/v1/import/incidence

A continuación, se expone una explicación detallada de cada uno de los campos que pueden conformar el cuerpo de la petición, siendo algunos de ellos obligatorios para que esta se realice de manera exitosa.

Los campos obligatorios están marcados con un asterisco (*).

Cuerpo de la petición

Análisis del JSON
{
  "business": "string",
  "employeeId": "string",
  "type": "string",
  "initTime": "string",
  "endTime": "string",
  "workedMinutes": 0,
  "from": "string",
  "to": "string",
  "id": "string",
  "orquestId": 0
}
Detalles
  • business*: identificador configurado en Orquest para el negocio.

  • employeeId*: identificador del empleado vinculado con la incidencia.

  • type*: identificador del tipo de incidencia. Debe estar configurado previamente en Orquest.

  • initTime: hora de inicio de la incidencia. Debe estar en formato HH:mm con la siguiente expresión regular: ^([01]\d|2[0-3]):[0-5]\d$. Se considera la hora local, es decir, la zona horaria del servicio.

  • endTime: hora de finalización de la incidencia. Debe estar en formato HH:mm con la siguiente expresión regular: ^([01]\d|2[0-3]):[0-5]\d$. Se considera la hora local, es decir, la zona horaria del servicio.

  • workedMinutes*: tiempo, en minutos, que la incidencia computa.

  • from*: fecha en la que comienza la incidencia. Debe estar en formato yyyy-MM-dd.

  • to*: fecha en la que finaliza la incidencia. Debe estar en formato yyyy-MM-dd.

  • id: identificador externo de la incidencia.

  • orquestId: identificador de la incidencia en Orquest.

Ejemplo de la petición

Una vez realizado el análisis de los distintos campos, se muestra un ejemplo del cuerpo de la petición:

{
  "business": "BUSINESSID",
  "employeeId": "C14A658",
  "type": "01",
  "initTime": "08:30",
  "endTime": "09:30",
  "workedMinutes": 30,
  "from": "2024-04-15",
  "to": "2024-04-15",
  "id": "C14-12545"
}

Aspectos que tener en cuenta

Esta petición generará una operación atómica que se puede revertir de forma automática si hay errores: el error se mostrará en la respuesta de la petición.

Si el id indicado no corresponde a ninguna incidencia existente, esta petición la creará en lugar de devolver un error de "no encontrada".

Si existen incidencias del empleado dentro del rango entre from y to de la nueva incidencia, se eliminarán todas ellas antes de registrar la nueva, no solo la que se solape directamente.

Si el identificador de empleado indicado no existe en el negocio, la petición devolverá un estado 200 OK indicando en la respuesta el error not_valid_person.

Códigos de error

Además de los errores comunes, este endpoint puede devolver los siguientes códigos:

Código Mensaje Descripción

406 Not Acceptable

Business in incidence cannot be null

Falta el campo business.

EmployeeId in incidence cannot be null

Falta el campo employeeId.

Type in incidence cannot be null

Falta el campo type.

Worked minutes cannot be null / Worked minutes should be positive or zero

Falta el campo workedMinutes, o tiene un valor negativo.

From in incidence cannot be null / To in incidence cannot be null

Falta el campo from o to.

Init Time is invalid. Format should be: HH:mm / End Time is invalid. Format should be: HH:mm

El campo initTime o endTime no tiene el formato HH:mm esperado.

Incidence range is invalid

El rango definido entre from y to no es válido.

400 Bad Request

has_not_type

El tipo de incidencia indicado en type no está definido en el catálogo de incidencias del negocio.

error.incidence_overlapped

La incidencia solapa con otra incidencia registrada previamente en el sistema.

error.incidence_time_mandatory

El tipo de incidencia requiere horas de inicio y fin (initTime/endTime), que no se han indicado.

validation.error.incidence_input_type_not_allowed

El tipo de incidencia indicado no admite su alta a través de esta petición.

409 Conflict

-

Se ha producido un conflicto al guardar la incidencia. Se recomienda revisar que los datos enviados no violen ninguna restricción de integridad.

Enlaces de interés