/** * @access public * @return Response */ public function post_add() { if ($venue_id = \Input::post('venue_id')) { Package::load('Spider'); $FoursquareClient = new \Spider\Foursquare\Client(); $venues = $FoursquareClient->getVenueInfoBatch(array($venue_id), \Input::post('region_id')); $venue = isset($venues->response->responses[0]->response->venue) ? $venues->response->responses[0]->response->venue : false; if (isset($venue)) { $messages = \Collection\Venue::saveVenueJsonToDB($venue); $view = \View::forge('venues/add_success.twig', $messages); return \Response::forge($view); } else { return $this->get_add(); } } }
public function searchForLocations($lat = 40.761821, $lng = -73.974895, $radius = 1000, $query = '', $region_id = false) { $FoursquareClient = new \Foursquare\Client(); // get a setting of category IDs $categoryId = $this->getVenueCategoryIds($this->active_category); if (!$categoryId) { return false; } // get locations surrounding lat/lng geo point. $locations = $FoursquareClient->get('searchLocation', $lat . ',' . $lng, $radius, 50, $categoryId, $query); if (!isset($locations->response)) { return; } foreach ($locations->response->venues as $key => $venue) { $response = \Collection\Venue::saveVenueJsonToDB($venue, $region_id); if (!$response) { // skip this venue if it already exists $this->debugMessage('Venue already exists: ' . $venue->name . ' / ' . $venue->id); continue; } $this->debugMessage($response['log']); // create a default "1 scan per hour" entry to the tracking cycle // \Collection\Tracking_Cylce::create($response['system_venue_id'], 'hourly'); $Cycle = new \Model_Tracking_Cycle(); $Cycle->object_id = $response['system_venue_id']; $Cycle->frequency = 'hourly'; // 2do: manage timezone based tracking // $Cycle->TZ = 'ET'; $Cycle->save(); // if we didn't get back a stats array, an error occured if (!is_array($response['stats'])) { $this->CliOutput('error', 'Failure: ' . $response['stats']); } else { $this->debugMessage('Stats: ' . implode(', ', $response['stats'])); } } }