Exemple #1
0
 public static function fromResponse(Response $response)
 {
     $data = $response->getContentAsArray();
     $locations = new static();
     $locations->query = $data['query'];
     $locations->queryCorrected = $data['query_corrected'];
     foreach ($data['_embedded']['locations'] as $locationData) {
         $locations->locations[] = new Location($locationData['count'], $locationData['item'], $locationData['name'], $locationData['path'], $locationData['path_name'], $locationData['type']);
     }
     return $locations;
 }
Exemple #2
0
 /**
  * @param Response $response
  *
  * @return static
  */
 public static function fromResponse(Response $response)
 {
     $responseData = $response->getContentAsArray();
     $hotelDeals = new static();
     $hotelDeals->pollingFinished = $response->getHttpCode() === 200;
     $hotelDeals->deals = array_map(function (array $deal) {
         return Deal::fromArray($deal);
     }, $responseData['hotel_rates']);
     $hotelDeals->searchParams = $responseData['search_params'];
     return $hotelDeals;
 }
Exemple #3
0
 /**
  * Returns a filled TagGroups object using a TagsRequest response.
  *
  * @param Response $response
  *
  * @return static
  */
 public static function fromResponse(Response $response)
 {
     $data = $response->getContentAsArray();
     $hotelTags = new static();
     $hotelTags->tagGroups = array_map(function (array $tagGroupData) {
         return new TagGroup($tagGroupData['group_id'], $tagGroupData['type'], $tagGroupData['name']);
     }, $data['tag_groups']);
     $hotelTags->tags = array_map(function (array $tagData) {
         return new Tag($tagData['tag_id'], $tagData['group_id'], $tagData['name']);
     }, $data['tags']);
     return $hotelTags;
 }
 /**
  * @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;
 }
Exemple #5
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;
 }