Code Coverage
 
Classes and Traits
Functions and Methods
Lines
Total
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 3
CRAP
0.00% covered (danger)
0.00%
0 / 39
PhotoController
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 3
90
0.00% covered (danger)
0.00%
0 / 39
 __construct
0.00% covered (danger)
0.00%
0 / 1
2
0.00% covered (danger)
0.00%
0 / 1
 index
0.00% covered (danger)
0.00%
0 / 1
20
0.00% covered (danger)
0.00%
0 / 17
 categories
0.00% covered (danger)
0.00%
0 / 1
20
0.00% covered (danger)
0.00%
0 / 21
<?php
namespace App\Http\Controllers\Web;
use App\Helpers\ImageHelper;
use App\Http\Controllers\Controller;
use App\Photo;
use App\PhotoDescription;
use App\PhotoCategory;
use App\PhotoCategoryDescription;
use Illuminate\Http\Request;
use \Illuminate\Support\Str;
use Illuminate\View\View;
class PhotoController extends Controller
{
    private $viewDirectory = 'web.photos.';
    /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function __construct()
    {
        // $this->middleware('auth')->except('lang');
    }
    /**
     * Show the Photos of category.
     * @param PhotoCategory $category
     * @return View
     */
    public function index(PhotoCategory $category): View
    {
        $query= Photo::latest()
            ->join('photo_descriptions AS d', 'photos.id', 'd.photo_id')
            ->where('language_id', currentLanguage()->id)
            ->where('photo_category_id', $category->id)
            ->select(['d.title', 'photos.image'])->get();
        $photos= [];
        if($query){
            $photos= $query->toArray();
        }
        foreach ($photos as $a => $value) {
            $photos[$a]['image']= ImageHelper::get($value['image']);
        }
        $categoryDescription= $category->descriptions(currentLanguage()->id)->get()->toArray();
        $categoryDescription= count($categoryDescription) ? $categoryDescription[0] : [];
        // dd($categoryDescription);
        $settings= settings();
        $title= $categoryDescription['name'] ?? $settings['website_name'];
        $keywords= $categoryDescription['keywords'] ?? $settings['keywords'];
        $meta_description= $categoryDescription['meta_description'] ?? $settings['meta_description'];
        return view($this->viewDirectory.'index', compact( 'photos', 'title', 'keywords', 'meta_description'));
    }
    /**
     * Show the Photos of category.
     * @return View
     */
    public function categories(): View
    {
        $query= PhotoCategory::latest()
            ->join('photo_category_descriptions AS d', 'photo_categories.id', 'd.photo_category_id')
            ->where('language_id', currentLanguage()->id)
            ->select(['d.*', 'photo_categories.*'])->get();
        $categories= [];
        if($query){
            $categories= $query->toArray();
        }
        // dd($categories);
        foreach ($categories as $key => $category) {
            $query= Photo::latest()
            ->where('photo_category_id', $category['photo_category_id'])
            ->select(['photos.image'])->limit(1)->first();
            $photo= ['image'=> ''];
            if($query){
                $photo= $query->toArray();
            }
            $categories[$key]['image']= ImageHelper::get($photo['image']);
            $categories[$key]['route']= route('photos', ['category'=> $category['photo_category_id'], 'slug'=> str_slug($category['slug'])] );
        }
        $settings= settings();
        $title= $settings['website_name'];
        $keywords= $settings['keywords'];
        $meta_description= $settings['meta_description'];
        return view($this->viewDirectory.'categories', compact( 'categories', 'title', 'keywords', 'meta_description'));
    }
}