%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/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());
    }

}

Zerion Mini Shell 1.0