/** * Refresh restaurants by postcode * * @param Postcode $currentPostcode * @return Postcode */ protected function _refreshPostcode($currentPostcode) { $manager = $this->getDoctrine()->getManager(); $result = $this->_callJusteat('restaurants?q=' . $currentPostcode->getPostcode()); $JERestaurants = json_decode($result); $restaurantRepo = $manager->getRepository('TycoonApiBundle:Restaurant'); $cuisineRepo = $manager->getRepository('TycoonApiBundle:Cuisine'); foreach ($JERestaurants->Restaurants as $JERestaurant) { // Load restaurant $currentRestaurant = $restaurantRepo->findOneByJusteatId($JERestaurant->Id); if (empty($currentRestaurant)) { // Create restaurant $currentRestaurant = new Restaurant(); $currentRestaurant->setJusteatId($JERestaurant->Id); } $currentRestaurant->setName($JERestaurant->Name); $currentRestaurant->setAddress($JERestaurant->Address); if (!empty($JERestaurant->City)) { $currentRestaurant->setCity($JERestaurant->City); } if (!empty($JERestaurant->Url)) { $currentRestaurant->setUrl($JERestaurant->Url); } if (!empty($JERestaurant->Logo[0]->StandardResolutionURL)) { $currentRestaurant->setLogo($JERestaurant->Logo[0]->StandardResolutionURL); } if (!empty($JERestaurant->Latitude)) { $currentRestaurant->setLatitude($JERestaurant->Latitude); } if (!empty($JERestaurant->Longitude)) { $currentRestaurant->setLongitude($JERestaurant->Longitude); } if (!empty($JERestaurant->Score)) { $currentRestaurant->setScore($JERestaurant->Score); } foreach ($JERestaurant->CuisineTypes as $cuisineType) { // Load cuisine $currentCuisine = $cuisineRepo->findOneByJusteatId($cuisineType->Id); if (empty($currentCuisine)) { // Create cuisine $currentCuisine = new Cuisine(); $currentCuisine->setJusteatId($cuisineType->Id); $currentCuisine->setName($cuisineType->Name); } $currentRestaurant->addCuisine($currentCuisine); $currentCuisine->addRestaurant($currentRestaurant); $manager->persist($currentCuisine); } $currentRestaurant->addPostcode($currentPostcode); $currentPostcode->addRestaurant($currentRestaurant); $manager->persist($currentRestaurant); $manager->flush(); } $currentPostcode->initRefreshedAt(); $manager->persist($currentPostcode); $manager->flush(); return $currentPostcode; }
private function createRestaurant($row) { $r = new Restaurant(); $r->setId($row['id']); $r->setName($row['name']); $r->setDescription($row['description']); $r->setRating($row['rating']); $r->setRatingCount($row['rating_count']); $r->setPhone($row['phone']); $r->setLat($row['lat']); $r->setLng($row['lng']); $r->setCreated($row['created_at']); $r->setAddress($row['address']); $r->setZip($row['zip']); $r->setCity($row['city']); $r->setWebsite($row['website']); $r->setEmail($row['email']); $r->setPricegroup($row['pricegroup']); $r->setTypes($row['types']); //$r->setModified($row['modified_at']); return $r; }