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; }
/** * @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; }
/** * 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; }
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; }