%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/MyCountrySectionsController.php |
<?php namespace App\Http\Controllers\Api\v1; use App\Http\Controllers\Api\ApiController; use App\Http\Requests\Api\v1\Countries\CreateMyCountrySectionRequest; use App\Models\MyCountryCategory; use App\Models\MyCountrySection; use App\Transformers\MyCountryCategoryTransformer; use App\Transformers\MyCountrySectionTransformer; use Carbon\Carbon; use Illuminate\Http\Request; class MyCountrySectionsController extends ApiController { /** * User $user. */ protected $user; /** * PostsController constructor. */ public function __construct() { $this->user = auth() ->guard('api') ->user(); } public function index(Request $request) { $data = MyCountrySection::query(); if ($title = $request->get('title')) { $data = $data->whereHas('translations', function ($q) use ($title) { $q->where('title', 'like', "%$title%"); $q->where('locale', app()->getLocale()); }); } if ($catId = $request->get('category_id')) { $data = $data->where('category_id', $catId); } $data = $data->orderBy('order') ->get(); return $this->collection($data, new MyCountrySectionTransformer()); } /** * @param MyCountrySection $myCountrySection * @return CountriesController */ public function show(MyCountrySection $myCountrySection) { return $this->item($myCountrySection, new MyCountrySectionTransformer()); } public function store(CreateMyCountrySectionRequest $request) { $count = MyCountrySection::query() ->count(); /** @var MyCountrySection $section */ $section = MyCountrySection::query() ->make($request->all()); $section->order = $count + 1; $category = MyCountryCategory::query() ->find($request->get('category_id')); $section->category() ->associate($category); $section->save(); activity() ->causedBy($this->user) ->performedOn($section) ->log('created'); return $this->item($section, new MyCountrySectionTransformer()); } public function update(CreateMyCountrySectionRequest $request, MyCountrySection $myCountrySection) { $myCountrySection->update($request->except('order')); $myCountrySection->updated_at = Carbon::now(); $category = MyCountryCategory::query() ->find($request->get('category_id')); $myCountrySection->category() ->associate($category); $myCountrySection->save(); activity() ->causedBy($this->user) ->performedOn($myCountrySection) ->log('updated'); return $this->item($myCountrySection, new MyCountrySectionTransformer()); } public function makeVisible(MyCountrySection $section) { $section->show(); activity() ->causedBy($this->user) ->performedOn($section) ->log('enabled'); return $this->item($section, new MyCountrySectionTransformer()); } public function makeInvisible(MyCountrySection $section) { $section->hide(); activity() ->causedBy($this->user) ->performedOn($section) ->log('disabled'); return $this->item($section, new MyCountrySectionTransformer()); } public function moveUp(MyCountrySection $section) { $section->moveUp(); activity() ->causedBy($this->user) ->performedOn($section) ->log('reordered'); return $this->collection(MyCountrySection::query() ->orderBy('order') ->get(), new MyCountrySectionTransformer()); } public function moveDown(MyCountrySection $section) { $section->moveDown(); activity() ->causedBy($this->user) ->performedOn($section) ->log('reordered'); return $this->collection(MyCountrySection::query() ->orderBy('order') ->get(), new MyCountrySectionTransformer()); } public function getCategories() { $categories = MyCountryCategory::query() ->has('translations', '>=', 2) ->get(); return $this->collection($categories, new MyCountryCategoryTransformer()); } }