/**
  * @param ServiceRequest $request
  * @param $type
  * @throws ServiceTypesListException
  */
 public function __construct(ServiceRequest $request, $type)
 {
     try {
         $this->request = $request->setOptions("types")->setOptions($type);
     } catch (ServiceRequestException $e) {
         throw new ServiceTypesListException($e->getMessage());
     }
 }
 /**
  * @param ServiceRequest $request
  * @param string $reference
  * @param string $language
  * @throws ServiceHotelBookingException
  */
 public function __construct(ServiceRequest $request, $reference, $language = "ENG")
 {
     try {
         $this->request_data = ["cancellationFlag" => "CANCELLATION"];
         $this->response = $request->setOptions("bookings")->setOptions($reference)->setQueryStringParams($this->request_data)->send("DELETE");
     } catch (\Exception $e) {
         $request_data = json_encode($this->request_data, true);
         throw new ServiceHotelCancellationException($request->getRequestUrl() . " - " . $e->getMessage() . " - " . $request_data);
     }
 }
 /**
  * @param ServiceRequest $request
  */
 public function __construct(ServiceRequest $request, $request_params)
 {
     $body = "";
     $this->response = $request->setOptions("hotels")->setBody($body)->send("POST");
 }
 /**
  * @param ServiceRequest $request
  */
 public function __construct(ServiceRequest $request)
 {
     $this->response = $request->setOptions("hotels")->send();
 }
 public function __construct(ServiceRequest $request, $hotels_code, $api_params)
 {
     $request_data = $api_params;
     $request_data['hotels']['hotel'] = $hotels_code;
     $this->response = $request->setOptions("hotels")->setHeaders(['json' => $request_data])->send("POST");
 }