Files
portal/app/Http/Controllers/EventCategoryController.php
2020-07-19 15:40:55 +02:00

87 lines
2.3 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Http\Requests\EventCategoryRequest;
use App\Http\Resources\CustomerCatchmentArea;
use App\Http\Resources\EventCategory as EventCategoryResource;
use App\Models\EventCategory;
use Illuminate\Http\Request;
class EventCategoryController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\JsonResponse
*/
public function index()
{
return response()->json([
'data' => EventCategoryResource::collection(EventCategory::orderBy('name')->get()),
]);
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\JsonResponse
*/
public function store(EventCategoryRequest $request)
{
$validated = $request->validated();
$category = EventCategory::create($validated);
$category->save();
return (new EventCategoryResource($category))
->response()
->setStatusCode(201);
}
/**
* Display the specified resource.
*
* @param \App\Models\EventCategory $category
* @return \Illuminate\Http\JsonResponse
*/
public function show(EventCategory $category)
{
return (new EventCategoryResource($category))
->response()
->setStatusCode(200);
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param \App\Models\EventCategory $category
* @return \Illuminate\Http\JsonResponse
*/
public function update(EventCategoryRequest $request, EventCategory $category)
{
$category->update($request->validated());
return (new EventCategoryResource($category))
->response()
->setStatusCode(200);
}
/**
* Remove the specified resource from storage.
*
* @param \App\Models\EventCategory $category
* @return \Illuminate\Http\JsonResponse
*/
public function destroy(EventCategory $category)
{
if(auth()->user()->role === 2) {
$category->delete();
return response()->json([], 204);
} else {
return response()->json([], 403);
}
}
}