%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /var/www/html/diaspora/api_internal/app/Http/Controllers/Api/v1/
Upload File :
Create Path :
Current File : /var/www/html/diaspora/api_internal/app/Http/Controllers/Api/v1/MyCountryCategoriesController.php

<?php

namespace App\Http\Controllers\Api\v1;

use App\Http\Controllers\Api\ApiController;
use App\Http\Requests\Api\v1\Countries\CreateCategoryRequest;
use App\Models\MyCountryCategory;
use App\Transformers\MyCountryCategoryTransformer;
use Carbon\Carbon;
use Illuminate\Http\Request;

class MyCountryCategoriesController extends ApiController
{
    /**
     * User $user.
     */
    protected $user;

    /**
     * PostsController constructor.
     */
    public function __construct()
    {
        $this->user = auth()
            ->guard('api')
            ->user();
    }

    public function index(Request $request)
    {
        $data = MyCountryCategory::query();

        if ($title = $request->get('title')) {
            $data = $data->whereHas('translations', function ($q) use ($title) {
                $q->where('title', 'like', "%$title%");
                $q->where('locale', app()->getLocale());
            });
        }

        $data = $data->orderBy('order')
                     ->get();

        return $this->collection($data, new MyCountryCategoryTransformer());
    }

    /**
     * @param MyCountryCategory $myCountryCategory
     * @return CountriesController
     */
    public function show(MyCountryCategory $myCountryCategory)
    {
        return $this->item($myCountryCategory, new MyCountryCategoryTransformer());
    }

    public function store(CreateCategoryRequest $request)
    {
        $count = MyCountryCategory::query()
                                  ->count();
        /** @var MyCountryCategory $category */
        $category = MyCountryCategory::query()
                                     ->make($request->all());

        $category->order = $count + 1;
        $category->save();
        activity()
            ->causedBy($this->user)
            ->performedOn($category)
            ->log('created');
        return $this->item($category, new MyCountryCategoryTransformer());
    }

    public function update(CreateCategoryRequest $request, MyCountryCategory $myCountryCategory)
    {
        $myCountryCategory->update($request->except('order'));
        $myCountryCategory->updated_at = Carbon::now();
        $myCountryCategory->save();
        activity()
            ->causedBy($this->user)
            ->performedOn($myCountryCategory)
            ->log('updated');
        return $this->item($myCountryCategory, new MyCountryCategoryTransformer());
    }

    public function moveUp(MyCountryCategory $category)
    {
        $category->moveUp();
        activity()
            ->causedBy($this->user)
            ->performedOn($category)
            ->log('reordered');
        return $this->collection(MyCountryCategory::query()
                                                  ->orderBy('order')
                                                  ->get(), new MyCountryCategoryTransformer());
    }

    public function moveDown(MyCountryCategory $category)
    {
        $category->moveDown();
        activity()
            ->causedBy($this->user)
            ->performedOn($category)
            ->log('reordered');
        return $this->collection(MyCountryCategory::query()
                                                  ->orderBy('order')
                                                  ->get(), new MyCountryCategoryTransformer());
    }

}

Zerion Mini Shell 1.0