%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /var/www/html/shaban/duassis/api/app/Http/Controllers/Api/v1/
Upload File :
Create Path :
Current File : //var/www/html/shaban/duassis/api/app/Http/Controllers/Api/v1/UtilitiesController.php

<?php

namespace App\Http\Controllers\Api\v1;

use App\Http\Controllers\Api\ApiController;
use App\Http\Requests\Api\v1\Utilities\CreateUtilityRequest;
use App\Http\Requests\Api\v1\Utilities\UpdateUtilityRequest;
use App\Models\Utility;
use App\Transformers\UtilityTransformer;
use Illuminate\Http\Request;

class UtilitiesController extends ApiController
{
    /**
     * @var UtilityTransformer
     */
    private $transformer;

    /**
     * UtilitiesController constructor.
     * @param UtilityTransformer $transformer
     */
    public  function __construct(UtilityTransformer $transformer)
    {
        $this->transformer = $transformer;
    }

    public function index(Request $request)
    {
        $utilites = Utility::query()
                            ->paginate($request->get('perPage'));
        return $this->withPaginated($utilites, $this->transformer);
    }

    public function show(Utility $utility)
    {
        return $this->item($utility, $this->transformer);
    }

    public function store(CreateUtilityRequest $request)
    {
        $data = $request->only([
            'code',
            'name'
        ]);
        $utility = Utility::createItem($data);
        return $this->item($utility, $this->transformer);
    }

    public function update(UpdateUtilityRequest $request, Utility $utility)
    {
        $data = $request->only([
            'code',
            'name',
        ]);
        $utility->updateItem($data);
        return $this->item($utility, $this->transformer);
    }

    public function destroy(Utility $utility)
    {
        try {
            $utility->delete();
            return response()->json([], 204);
        } catch (\Exception $exception) {
            return $this->wrongArguments([
                'message' => $exception->getMessage(),
            ]);
        }
    }
}

Zerion Mini Shell 1.0