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()->isAdmin()) { $category->delete(); return response()->json([], 204); } else { return response()->json([], 403); } } }