%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /var/www/html/kpk/api/app/Http/Controllers/Api/
Upload File :
Create Path :
Current File : /var/www/html/kpk/api/app/Http/Controllers/Api/InstitutionsController.php

<?php

namespace App\Http\Controllers\Api;

use App\Http\Requests\Institutions\InstitutionEditRequest;
use App\Http\Requests\Institutions\InstitutionStoreRequest;
use App\Models\Institution;
use App\Models\Log;
use App\Transformers\InstitutionTransformer;
use Illuminate\Http\Request;

class InstitutionsController extends ApiController
{
    protected $user;

    public function __construct()
    {
        $this->user = auth()->guard('api')->user();
    }
    /**
     * @param Request $request
     * @return InstitutionsController
     */
    public function index(Request $request)
    {
        $result = Institution::query();
        if ($request->code) {
            $result = $result->where('code', 'like', "$request->code%");
        }
        if ($request->name) {
            $result = $result->where('name', 'like', "$request->name%");
        }
        $result = $result->paginate(10);
        return $this->withPaginated($result, new InstitutionTransformer());
    }

    public function show($id)
    {
        $institution = Institution::query()->findOrFail($id);
        return $this->item($institution, new InstitutionTransformer());
    }

    /**
     * @param Request $request
     * @return InstitutionsController
     */
    public function getActive(Request $request)
    {
        $result = Institution::query()->where('is_enabled',true);
        if ($search = $request->search) {
            $result = $result->where('code', 'like', "$search%")
                             ->orWhere('name', 'like', "$search%");
        }

        return $this->collection($result->get(), new InstitutionTransformer());
    }

    /**
     * @param InstitutionStoreRequest $request
     * @return \Illuminate\Http\JsonResponse
     */
    public function store(InstitutionStoreRequest $request)
    {
        $institution = Institution::query()->create([
            'code' => $request->code,
            'name' => $request->name,
            'is_enabled' => true
        ]);
        try {
            $msg = 'Perdoruesi "' . $this->user->username . '" shtoi nje institucion te ri.';
            Log::info($this->user->id, 'Add', $msg);
        } catch (\Exception $e) {
        }
        return $this->item($institution, new InstitutionTransformer());
    }

    /**
     * @param InstitutionEditRequest $request
     * @param $id
     * @return \Illuminate\Http\JsonResponse
     */
    public function edit(InstitutionEditRequest $request, $id)
    {
        $institution = Institution::query()->findOrFail($id);
        $institution->name = $request->name;
        $institution->save();
        try {
            $msg = 'Perdoruesi "' . $this->user->username . '" modifikoi institucionin me id=' . $id . '.';
            Log::info($this->user->id, 'Edit', $msg);
        } catch (\Exception $e) {
        }
        return $this->item($institution, new InstitutionTransformer());
    }

    /**
     * @param $id
     * @return \Illuminate\Http\JsonResponse
     */
    public function enable($id)
    {
        $item = Institution::query()->findOrFail($id);
        $item->is_enabled = true;
        $item->save();
        try {
            $msg = 'Perdoruesi "' . $this->user->username . '" aktivizoi institucionin me id=' . $id . '.';
            Log::info($this->user->id, 'Edit', $msg);
        } catch (\Exception $e) {
        }
        return $this->item($item, new InstitutionTransformer);
    }

    /**
     * @param $id
     * @return \Illuminate\Http\JsonResponse
     */
    public function disable($id)
    {
        $item = Institution::query()->findOrFail($id);
        $item->is_enabled = false;
        $item->save();
        try {
            $msg = 'Perdoruesi "' . $this->user->username . 'c`aktivizoi institucionin me id=' . $id . '.';
            Log::info($this->user->id, 'Edit', $msg);
        } catch (\Exception $e) {
        }
        return $this->item($item, new InstitutionTransformer);
    }
}

Zerion Mini Shell 1.0