Contratar reservables para una reserva
Última modificación: 27/11/2023
Realiza la contratación de un servicio o medio físico para una reserva ya existente.
Request
HTTP request
PUT /api/v1/bookings/{bookingId}/reservables/all
Headers
| Header | Value | Required |
|---|---|---|
| Authorization | Bearer eyJ0eXBlIjoiSldUIiwiYWxnIjoiSFM1MT… | true |
Body
{
"bookingId": "fb3191f3-3ff7-43d5-b258-7be90150f6ec",
"reservableBookingList": [
{
"reservableId": "89fe7a53-c8f6-42d1-8dd0-cd8dfb774701",
"deliveryTimeMs": 36000000,
"quantity": 1,
"comment": "La leche fría y desnatada."
},
{
"reservableId": "efd62f06-a75a-40fa-b188-1990fd1c5e22",
"deliveryTimeMs": 37800000,
"quantity": 14,
"comment": "comentario para el proveedor 2"
}
]
}
Ejemplo de petición
PUT /api/v1/bookings/fb3191f3-3ff7-43d5-b258-7be90150f6ec/reservables/all HTTP/1.1
Host: 127.0.0.1:9010
Content-Type: application/json
Accept: application/json
app-version: WEBAPP/1.3.1
Authorization: Bearer eyJ0eXBlIjoiSldUIiwiYWxnIjoiSFM1MTIifQ.eyJpc3MiOiJzZWN1cmUtYXBpIiwiYXVkIjoic2VjdXJlLWFwcCIsInN1YiI6ImFuZHJlcy5wcnVlYmFzeEBnbWFpbC5jb20iLCJleHAiOjE2NjM5MzIzMTUsInJvbCI6WyIxZGZkZTA1OS1kYTY1LTQ5YzktOGRiMy1kY2NjNGYzMjkyZTQiXX0.nWg33FXFPYhn_TfYawOEFRQxCtC5swxtmd6dBumkVZzyp5sz8-iRw8oiyUGuWxAvAC01vCzv3Tyjf5UTmGDLcg
Content-Length: 84
{
"bookingId": "fb3191f3-3ff7-43d5-b258-7be90150f6ec",
"reservableBookingList": [
{
"reservableId": "89fe7a53-c8f6-42d1-8dd0-cd8dfb774701",
"deliveryTimeMs": 36000000,
"quantity": 1,
"comment": "La leche fría y desnatada."
},
{
"reservableId": "efd62f06-a75a-40fa-b188-1990fd1c5e22",
"deliveryTimeMs": 37800000,
"quantity": 14,
"comment": "comentario para el proveedor 2"
}
]
}
Response
Se devuelve un código 201 con la información de los servicios contratados en la reserva. “Foto final”
{
"bookingId": "fb3191f3-3ff7-43d5-b258-7be90150f6ec",
"bookingReservableList": [
{
"reservable": {
"id": "89fe7a53-c8f6-42d1-8dd0-cd8dfb774701",
"organizationId": "8aee218a-fce2-4900-9410-00f485a2729e",
"name": "servicio cafe",
"type": "SERVICE",
"description": "Servicio de café estándar. Se permite indicar el tipo de leche.",
"chooseQuantity": true,
"chooseDeliveryTime": true,
"allowComments": true
},
"minimumCancellationMs": 3600000,
"standardDeliveryTimeMs": 3600000,
"deliveryTimeMs": 17913184,
"quantity": 1,
"comment": "La leche fría y desnatada."
},
{
"reservable": {
"id": "89fe7a53-c8f6-42d1-8dd0-cd8dfb774701",
"organizationId": "8aee218a-fce2-4900-9410-00f485a2729e",
"name": "servicio cafe",
"type": "SERVICE",
"description": "Servicio de café estándar. Se permite indicar el tipo de leche.",
"chooseQuantity": true,
"chooseDeliveryTime": true,
"allowComments": true
},
"minimumCancellationMs": 3600000,
"standardDeliveryTimeMs": 3600000,
"deliveryTimeMs": 37800000,
"quantity": 14,
"comment": "La leche fría y desnatada."
}
]
}
Lista de posibles errores
| ErrorCode | HttpStatus | Descripción |
|---|---|---|
| 1002 - RESOURCE_NOT_FOUND | 404 | No se ha encontrado el recurso. El recurso, su planta o su edificio no están en estado ACTIVATED. El recurso, su planta o su edificio no están visibles. |
| 1011 - BOOKING_NOT_FOUND | 404 | No se ha encontrado la reserva. |
| 1043 - RESOURCE_RESERVABLE_NOT_FOUND | 404 | El reservable que se ha mandado en la URL, no esta asociado al recurso de la reserva. |
| 4072 - INVALID_DATE_BY_MIN_CANCELLATION_OF_THE_RESERVABLE | 409 | No se puede realizar la acción debido a que falta menos tiempo para el inicio de la reserva que el mínimo permitido para cancelar la contratación y, por lo tanto, no se puede/podría cancelar. |
| 4077 - INVALID_RESERVABLE_DELIVERY_TIME | 409 | La hora de entrega seleccionada no es válida. |
| 4078 - INVALID_RESERVABLE_QUANTITY | 409 | La cantidad seleccionada no es válida. |
| 4079 - ADDITIONAL_SERVICES_MODULE_NOT_ACTIVE | 409 | La organización no tiene activo/contratado el módulo de servicios adicionales. |