PATH:
home
/
lab2454c
/
omvstudio.com
/
app
/
Http
/
Controllers
/
API
/
V1
<?php namespace App\Http\Controllers\API\V1; use App\Http\Controllers\Controller; use Illuminate\Http\Request; use App\Models\Movie; use App\Models\Category; use App\Models\Review; use App\Models\User; use DB; class MobHomeController extends Controller { public function index() { $data = []; $data['featured_movies'] = Movie::where('is_featured',1)->where('status','active')->orderBy('created_at','desc')->get(); $data['featured_categories'] = Category::where('is_featured',1)->where('status','active')->orderBy('created_at','desc')->get(); $data['featured_categories_with_movie'] = Category::inRandomOrder()->take(4)->where('is_featured','1')->where('status','active')->orderBy('created_at','desc')->get(); $category_movies = []; foreach ($data['featured_categories_with_movie'] as $category) { $movies = Movie::whereHas('categories', function ($query) use($category) { //$query->where('id', ) //$query->whereIn('categories.id',$category->id); $query->where('categories.id',$category->id); $query->where('movies.status','active'); })->inRandomOrder()->take(10)->get(); $category_movies[$category->slug] = ['category' => $category, 'movies' => $movies]; } $data['category_movies'] = $category_movies; //dd($data['category_movies']); return $data; } public function categoryList($category_slug='') { /*$data= []; $categories = Category::where('status','active')->orderBy('created_at','desc')->get(); $category_movies = []; foreach ($categories as $category) { $movies = Movie::whereHas('categories', function ($query) use($category){ $query->where('categories.id',$category->id); $query->where('movies.status','active'); })->paginate(12); $category_movies[$category->slug] = ['category' => $category, 'movies' => $movies]; } $data['category_movies'] = $category_movies;*/ $data= []; $categories = empty($category_slug) ? Category::where('status','active')->orderBy('created_at','desc')->get() : Category::where('slug',$category_slug)->orderBy('created_at','desc')->first(); //dd($categories->toArray()); if (empty($category_slug)) { $category_movies = []; foreach ($categories as $category) { $movies = Movie::whereHas('categories', function ($query) use($category){ $query->where('categories.id',$category->id); $query->where('movies.status','active'); })->paginate(12); $category_movies[$category->slug] = ['category' => $category, 'movies' => $movies]; } $data['category_movies'] = $category_movies; } else{ if(!isset($categories) || $categories->status == "inactive"){ abort(404, 'Page Not Found'); } $movies = Movie::whereHas('categories', function ($query) use($category_slug){ $query->where('categories.slug',$category_slug); $query->where('movies.status','active'); })->paginate(12); if ($movies->count() > 0) { $category_movies[$categories->slug] = ['category' => $categories, 'movies' => $movies]; $data['category_movies'] = $category_movies; } } //dd($data['category_movies'][$categories->slug]); return $data; } public function movieDetails($movie_slug) { //$data['movie'] = Movie::findOrFail($movie_slug); // it's for movie $data['movie'] = Movie::where('slug',$movie_slug)->where('status','active')->first(); //dd($data['movie']); if(!isset($data['movie']) || $data['movie']->status == "inactive"){ abort(404, 'Page Not Found'); } // it's for movie star cast $data['movie_star_cast'] = json_decode($data['movie']->star_cast); // get category id in array by movie $category_id_arr = []; foreach ($data['movie']->categories as $value) { array_push($category_id_arr,$value->id); } // get categories $data['categories'] = Category::whereIn('id',$category_id_arr)->where('status','active')->take(2)->get(); // get related movies by movie $data['related_movies'] = Movie::whereHas('categories', function ($query) use($category_id_arr) { $query->whereIn('categories.id',$category_id_arr); $query->where('movies.status','active'); })->inRandomOrder()->take(20)->where('id','!=', $data['movie']->id)->get(); // get reviews $reviews = Review::where('movie_id',$data['movie']->id)->where('status','active')->orderByDesc('created_at')->get(); $rating_sum = Review::where('movie_id',$data['movie']->id)->where('status','active')->sum('rating'); $data['average'] = DB::select( DB::raw("SELECT ((SELECT COUNT(*) AS Total FROM `reviews` WHERE `rating` > 4 AND movie_id = ".$data['movie']->id.") / COUNT(*)) * 100 AS excellent, ((SELECT COUNT(*) AS Total FROM `reviews` WHERE (`rating` < 5 AND `rating` >= 4) AND movie_id = ".$data['movie']->id.") / COUNT(*)) * 100 AS good, ((SELECT COUNT(*) AS Total FROM `reviews` WHERE (`rating` < 4 AND `rating` >= 3) AND movie_id = ".$data['movie']->id.") / COUNT(*)) * 100 AS average, ((SELECT COUNT(*) AS Total FROM `reviews` WHERE `rating` < 3 AND movie_id = ".$data['movie']->id.") / COUNT(*)) * 100 AS belowaverage FROM `reviews` WHERE `movie_id` = ".$data['movie']->id." ") ); if ($reviews->count() > 0) { //slove error if no review $data['average_rating'] = number_format($rating_sum / $reviews->count(),1); $data['reviews_count'] = $reviews->count(); $review_data_arr = []; foreach ($reviews as $count => $review) { $review_arr = [ 'first_name' => $review->user->first_name, 'last_name' => $review->user->last_name, 'rating' => $review->rating, 'created_at' => $review->created_at->diffForHumans(), 'profile_picture' => $review->user->profile_picture, ]; array_push($review_data_arr, $review_arr); } //dd($review_data_arr); $data['reviews'] = collect($review_data_arr)->paginate(12); } else{ $data['average_rating'] = 0; $data['reviews_count'] = 'no'; } //dd($category_id_arr); //prxArr($category); return $data; } public function watchList(Request $request) { $user = User::find(13); $data['watchlists'] = $user->movies; return $data; //dd($x); // $user = auth()->user(); // if($user){ // dd($user); // $watchlists = $user()->movies->count(); // } } }
[-] ProfileController.php
[edit]
[+]
..
[-] MobHomeController.php
[edit]
[-] ReviewController.php
[edit]
[-] DashboardController.php
[edit]
[-] HomeController.php
[edit]
[-] AuthController.php
[edit]