%PDF- %PDF-
Direktori : /var/www/html/diaspora/api_internal/app/Http/Controllers/Api/v1/ |
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()); } }