%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/KkdSectionsController.php |
<?php namespace App\Http\Controllers\Api\v1; use App\Http\Controllers\Api\ApiController; use App\Http\Requests\Api\v1\Countries\CreateSectionRequest; use App\Models\KkdSection; use App\Models\Section; use App\Transformers\KkdSectionTransformer; use Carbon\Carbon; use Illuminate\Http\Request; class KkdSectionsController extends ApiController { /** * User $user. */ protected $user; /** * PostsController constructor. */ public function __construct() { $this->user = auth() ->guard('api') ->user(); } public function index(Request $request) { $data = KkdSection::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 KkdSectionTransformer()); } /** * @param KkdSection $kkdSection * @return CountriesController */ public function show(KkdSection $kkdSection) { return $this->item($kkdSection, new KkdSectionTransformer()); } public function store(CreateSectionRequest $request) { $count = KkdSection::query() ->count(); /** @var Section $section */ $section = KkdSection::query() ->make($request->all()); $section->order = $count + 1; $section->save(); activity() ->causedBy($this->user) ->performedOn($section) ->log('created'); return $this->item($section, new KkdSectionTransformer()); } public function update(CreateSectionRequest $request, KkdSection $kkdSection) { $kkdSection->update($request->except('order')); $kkdSection->updated_at = Carbon::now(); $kkdSection->save(); activity() ->causedBy($this->user) ->performedOn($kkdSection) ->log('updated'); return $this->item($kkdSection, new KkdSectionTransformer()); } public function makeVisible(KkdSection $section) { $section->show(); activity() ->causedBy($this->user) ->performedOn($section) ->log('enabled'); return $this->item($section, new KkdSectionTransformer()); } public function makeInvisible(KkdSection $section) { $section->hide(); activity() ->causedBy($this->user) ->performedOn($section) ->log('disabled'); return $this->item($section, new KkdSectionTransformer()); } public function moveUp(KkdSection $section) { $section->moveUp(); activity() ->causedBy($this->user) ->performedOn($section) ->log('reordered'); return $this->collection(KkdSection::query() ->orderBy('order') ->get(), new KkdSectionTransformer()); } public function moveDown(KkdSection $section) { $section->moveDown(); activity() ->causedBy($this->user) ->performedOn($section) ->log('reordered'); return $this->collection(KkdSection::query() ->orderBy('order') ->get(), new KkdSectionTransformer()); } }