Método UpdateBooking

El cliente usa UpdateBooking para modificar o cancelar una reserva existente.

Si la actualización de una reserva falla debido a un error de lógica empresarial, el error debería ser el siguiente: se propaga en el campo UpdateBookingResponse.booking_failure y se muestra con estado HTTP 200.

Solicitud

UpdateBookingRequest

Un mensaje de solicitud contiene información actualizada en el campo de reserva. ¿ La solicitud contendrá una booking_id para identificar la reserva que se actualizará. Integra también incluirá uno de los siguientes:

  1. Detalles del espacio que se debe actualizar (modificaciones de la reserva)
  2. Estado que se debe cambiar (cancelación de la reserva)

Los campos que no requieren cambios no se incluirán en la solicitud.

Valor que se muestra

UpdateBookingResponse

// Request to update a Booking.
message UpdateBookingRequest {
  // The booking to be updated
  // The following fields can be set in a booking:
  // - status, to cancel a booking.
  // - one of the following is required:
  //   - start_time AND duration in the slot, to reschedule a booking.
  //   - party_size (for dining reservations).
  Booking booking = 1;
}

// Response with the updated Booking.
message UpdateBookingResponse {
  // The updated booking (required)
  Booking booking = 1;

  // The updated user payment option originally used to pay for this booking.
  // This should be set if the UpdateBookingRequest results in a change to
  // the UserPaymentOption.
  // For instance, if the booking is canceled, the UserPaymentOption should
  // reflect an additional credit to the user. In the case of a multi-use
  // payment option, the current_count should be increased by one to
  // allow the user to create another booking with this payment option. In the
  // case of a single-use payment option, a new single-use user payment option
  // should be returned. (required if altered in update)
  UserPaymentOption user_payment_option = 2;

  // If updating a booking fails, this field should reflect the business logic
  // error (e.g., booking is not cancellable) (required if failure occurs)
  BookingFailure booking_failure = 3;
}