/**
  * @param ServiceRequest $request
  * @param Holder $holder
  * @param Rooms $rooms
  * @param ClientReference $client_reference
  * @throws ServiceHotelBookingException
  */
 public function __construct(ServiceRequest $request, Holder $holder, Rooms $rooms, ClientReference $client_reference)
 {
     try {
         $this->request_data = ["holder" => $holder->getHolderData(), "rooms" => $rooms->getRooms(), "clientReference" => $client_reference->getReference()];
         $this->response = $request->setHeaders(['json' => $this->request_data])->setOptions("bookings")->send("POST");
     } catch (\Exception $e) {
         throw new ServiceHotelBookingException($e->getMessage());
     }
 }
 public function __construct(ServiceRequest $request, $rate_key)
 {
     $rate_data = ["rooms" => [0 => ["rateKey" => $rate_key]]];
     $this->response = $request->setHeaders(['json' => $rate_data])->setOptions("checkrates")->send("POST");
 }