/**
  * @param Response $response
  *
  * @return HotelCollection
  */
 public static function fromResponse(Response $response)
 {
     $responseData = $response->getContentAsArray();
     $hotelCollection = new static();
     $hotelCollection->pollingFinished = $response->getHttpCode() === 200;
     $hotelCollection->searchParams = $responseData['search_params'];
     $hotelCollection->resultInfo = ResultInfo::fromArray($responseData['result_info']);
     if (isset($responseData['_links']['next'])) {
         $hotelCollection->hasNextPage = true;
         $hotelCollection->nextPageOffset = static::extractOffsetFromUrl($responseData['_links']['next']['href']);
     }
     if (isset($responseData['_links']['prev'])) {
         $hotelCollection->hasPrevPage = true;
         $hotelCollection->prevPageOffset = static::extractOffsetFromUrl($responseData['_links']['prev']['href']);
     }
     foreach ($responseData['hotels'] as $data) {
         $hotelDetails = $data['_embedded']['hotel_details'];
         $hotelRates = $data['_embedded']['hotel_rates'];
         $hotelCollection->hotel[] = new Hotel($hotelDetails['id'], $hotelDetails['name'], $hotelDetails['category'], $hotelDetails['superior'], $hotelDetails['city'], $hotelDetails['rating_value'], $hotelDetails['rating_count'], Image::fromArray($hotelDetails['main_image']), array_map(function (array $deal) {
             return Deal::fromArray($deal);
         }, $hotelRates));
     }
     return $hotelCollection;
 }
Beispiel #2
0
 public static function fromResponse(Response $response)
 {
     $data = $response->getContentAsArray();
     $hotelDetails = new static();
     $hotelDetails->itemId = (int) $data['item_id'];
     $hotelDetails->name = $data['name'];
     $hotelDetails->address = $data['address'];
     $hotelDetails->zip = $data['zip'];
     $hotelDetails->city = $data['city'];
     $hotelDetails->geoCoordinates = GeoCoordinates::fromArray($data['geo_coordinates']);
     $hotelDetails->category = (int) $data['category'];
     $hotelDetails->superior = (bool) $data['superior'];
     $hotelDetails->homepage = $data['homepage'];
     $hotelDetails->ratingValue = (double) $data['rating_value'];
     $hotelDetails->ratingCount = (int) $data['rating_count'];
     $hotelDetails->description = $data['description'];
     $hotelDetails->path = Path::fromArray($data['path']);
     $hotelDetails->mainImage = Image::fromArray($data['main_image']);
     foreach ($data['gallery'] as $imageData) {
         $hotelDetails->galleryImages[] = Image::fromArray($imageData);
     }
     return $hotelDetails;
 }