Esempio n. 1
0
 /**
  * Show the application dashboard to the user, including suggestions to the user.
  *
  * @return Response
  */
 public function index()
 {
     $user = User::where('id', \Auth::id())->with('placesWanted')->with('events')->first();
     if ($user->placesWanted) {
         $event_ids = EventPlace::select('event_id')->whereNotIn('event_id', $user->events->lists('id'))->whereIn('place_id', $user->placesWanted->lists('id'))->orderBy(\DB::raw('rand()'))->distinct()->take(6)->get()->lists('event_id')->toArray();
         if (sizeof($event_ids) < 6) {
             $placeStateWanted = Place::select('id')->whereIn('state', $user->placesWanted->lists('state'))->get();
             $event_ids = array_merge($event_ids, EventPlace::select('event_id')->whereNotIn('event_id', $user->events->lists('id'))->whereIn('place_id', $placeStateWanted->lists('id'))->orderBy(\DB::raw('rand()'))->distinct()->take(6 - sizeof($event_ids))->get()->lists('event_id')->toArray());
             if (sizeof($event_ids) < 6) {
                 $placeCountryWanted = Place::select('id')->whereIn('country', $user->placesWanted->lists('country'))->get();
                 $event_ids = array_merge($event_ids, EventPlace::select('event_id')->whereNotIn('event_id', $user->events->lists('id'))->whereIn('place_id', $placeCountryWanted->lists('id'))->orderBy(\DB::raw('rand()'))->distinct()->take(6 - sizeof($event_ids))->get()->lists('event_id')->toArray());
             }
         }
     }
     $events = Event::where('date_start', '>=', new \DateTime('today'))->whereIn('id', $event_ids)->get();
     if (sizeof($event_ids) < 6) {
         $events = $events->merge(Event::where('date_start', '>=', new \DateTime('today'))->orderBy(\DB::raw('rand()'))->take(6 - sizeof($event_ids))->get());
     }
     $auth_name = \Auth::User()->first_name;
     //$events = Event::take(5)->get();
     return view('home', compact('auth_name', 'events'));
 }
Esempio n. 2
0
        // get all the categories in the cities
        $categories = \App\Category::whereHas('ranks', function ($query) use($city) {
            $query->where('city_id', '=', $city->id);
        })->get();
        return response()->json($categories);
    });
    Route::get('/categories/{categoryId}', function ($categoryId) {
        $category = \App\Category::find($categoryId);
        return response()->json($category);
    });
    Route::get('/categories/{categoryId}/places', function ($categoryId) {
        $lat = \Illuminate\Support\Facades\Input::get('lat', -27.49611);
        $lon = \Illuminate\Support\Facades\Input::get('lon', 153.00207);
        // Check if a valid location
        $radius = 25;
        $city = \App\City::select(DB::raw("*, (6371 * acos( cos( radians({$lat}) ) * cos( radians( latitude ) ) * cos( radians( {$lon} ) - radians(longitude) ) + sin( radians({$lat}) ) * sin( radians(latitude) ) )) AS distance"))->having('distance', '<', $radius)->orderby('distance', 'asc')->first();
        if (!$city) {
            abort(400, 'City not supported.');
        }
        $places = \App\Place::select(DB::raw("*, (6371 * acos( cos( radians({$lat}) ) * cos( radians( latitude ) ) * cos( radians( {$lon} ) - radians(longitude) ) + sin( radians({$lat}) ) * sin( radians(latitude) ) )) AS distance"))->orderby('distance', 'asc')->whereHas('ranks', function ($query) use($categoryId) {
            $query->where('category_id', '=', $categoryId);
        })->where('city_id', '=', $city->id)->with('ranks', 'ranks.category')->get();
        return response()->json($places);
    });
    Route::get('/yelp', function () {
        $yelp = new \App\Yelp\Yelp();
        echo "<pre>";
        print_r($yelp->best('pizza', 'Brisbane, Australia'));
        echo "</pre>";
    });
});