/
var
/
www
/
html
/
cravings
/
app
/
Http
/
Controllers
/
Upload File
HOME
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; class HomeController extends Controller { /** * Create a new controller instance. * * @return void */ public function __construct() { // $this->middleware('auth'); } public function getPopular($area = null) { $match = ['popular' => true]; if ($area) { $match['address'] = ['$regex' => "$area", '$options' => 'i']; } return $match; } /** * Show the application dashboard. * * @return \Illuminate\Http\Response */ public function index(Request $request) { $location = null; if ($encoded = $request->session()->get('location')) { $location = json_decode($encoded, true); } $projection = ['_id' => 0, 'name' => 1, 'slug' => 1, 'image' => 1, 'address' => 1, 'phones' => 1]; $user = $request->user(); if($user) { $projection['liked'] = ['$in' => [(string) $user->_id, '$likes']]; }else { $projection['liked'] = ['$in' => [1, '$likes']]; } $db = DB::getMongoDB(); $places = []; $places['Lekki Phase 1'] = $db->places->aggregate([ ['$match' => $this->getPopular('lekki phase 1')], ['$sample' => ['size' => 10]], ['$project' => $projection] ]); $places['Surulere'] = $db->places->aggregate([ ['$match' => $this->getPopular('surulere')], ['$sample' => ['size' => 10]], ['$project' => $projection] ]); // $places = DB::table('places')->limit(5)->get(); return view('welcome', ['location' => $location, 'page' => 'Home', 'places' => $places]); } public function home() { return redirect()->route('suggest'); } public function privacy(Request $request) { return view('privacy', ['page' => 'Others']); } public function contact(Request $request) { return view('contact', ['title' => 'Get in Touch', 'page' => 'Contact Us']); } public function postContact(Request $request) { $data = json_decode($request->getContent(), true); $db = DB::getMongoDB(); $db->contact->insertOne($data); return response()->json(['status' => 'success', 'message' => "Thank you for contacting us, we'll get back to you as soon as possible"]); } public function getImages() { $db = DB::getMongoDB(); $pipeline = [ ['$match' => ['image' => ['$ne' => [], '$exists' => true]]], ['$lookup' => [ 'from' => 'fooding', 'let' => ['id' => '$slug'], 'pipeline' => [ ['$match' => [ '$expr' => [ '$eq' => ['$place_slug', '$$id'] ] ]] ], 'as' => 'food' ]], [ '$project' => [ '_id' => 0, 'name' => 1, 'image' => 1, 'slug' => 1 // 'food.rating' => '$food.rating.rate' ] ] ]; $place = $db->places->aggregate($pipeline)->toArray(); return response()->json($place); } }