Crear o actualizar necesidades

Este endpoint permite actualizar o crear las necesidades de un día.

PUT /api/v1/businesses/{businessId}/products/{productId}/needs/{yyyy-MM-dd}

En la URL de la petición, deben especificarse los siguientes parámetros:

  • Identificador externo del negocio (businessId).

  • Identificador externo del producto o sección (productId).

  • Fecha para la que se crean o actualizan las necesidades en formato yyyy-MM-dd.

A continuación, se enumeran los campos que conforman 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
[
  {
    "startMinuteDay": 0,
    "duration": 0,
    "location": "string",
    "value": 0,
    "zone": "string"
  }
]
Detalles
  • startMinuteDay*: inicio de la necesidad en minutos a partir de las 00:00. Por ejemplo 600 para las 10:00.

  • duration*: duración del periodo de necesidad en minutos.

  • location*: identificador externo de la tarea vinculada a la necesidad.

  • value*: número de personas necesarias para cubrir la necesidad.

  • zone: identificador externo de la zona. Si no se añade ninguna zona, se utilizará la zona general.

Ejemplo de la petición

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

PUT /api/v1/businesses/BUSINESSID/products/PRODUCTID/needs/2024-07-19
[
  {
    "startMinuteDay": 600,
    "duration": 60,
    "location": "03",
    "value": 5,
    "zone": "General"
  },
  {
    "startMinuteDay": 540,
    "duration": 120,
    "location": "06",
    "value": 2,
    "zone": "General"
  }
]

Si todos los datos de la petición son correctos, se crearán las siguientes necesidades para el día 2024-07-19:

  • Tarea 03: 5 personas a las 10:00 con duración de una hora.

  • Tarea 06: 2 personas a las 9:00 con duración de dos horas.

Consideraciones

La petición tiene en cuenta la zona horaria de servicio. Por ejemplo, si el servicio está en UTC+2, el campo startMinuteDay considerará ese huso horario.

Si se envía un array vacío ([]), todas las necesidades para ese día se eliminan.

Códigos de error

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

Código Mensaje Descripción

404 Not Found

Location not found

La tarea indicada en location no está registrada en el catálogo de tareas del negocio o no tiene identificador externo.

406 Not Acceptable

Start minute cannot be null

Falta el campo startMinuteDay en uno o más elementos.

Start minute should be positive

El campo startMinuteDay tiene un valor negativo en uno o más elementos.

Duration cannot be null

Falta el campo duration en uno o más elementos.

Duration should be positive

El campo duration tiene un valor negativo o cero en uno o más elementos.

Location cannot be empty

Falta el campo location en uno o más elementos.

The value for the need should be positive or zero

El campo value tiene un valor negativo en uno o más elementos.

409 Conflict

-

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

Enlaces de interés

¿Qué son las necesidades?

¿Qué es el catálogo de tareas?