validated(); $event = $request->user()->events()->create($validated); $event->save(); return (new EventResource($event)) ->response() ->setStatusCode(201); } /** * Display the specified resource. * * @param \App\Models\Event $event * @return \Illuminate\Http\JsonResponse */ public function show(Event $event) { return (new EventResource($event)) ->response() ->setStatusCode(200); } /** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param \App\Models\Event $event * @return \Illuminate\Http\JsonResponse */ public function update(EventRequest $request, Event $event) { $this->authorize('update', $event); $event->update($request->all()); return (new EventResource($event)) ->response() ->setStatusCode(200); } /** * Remove the specified resource from storage. * * @param \App\Models\Event $event * @return \Illuminate\Http\Response */ public function destroy(Event $event) { $this->authorize('delete', $event); $event->delete(); return response([], 204); } public function inviteUser(Event $event, User $user) { $this->authorize('update', $event); $event->guests()->attach($user); return (new EventResource($event)) ->response() ->setStatusCode(200); } public function removeInviteUser(Event $event, User $user) { $this->authorize('delete', $event); $event->guests()->detach($user); return (new EventResource($event)) ->response() ->setStatusCode(204); } public function addGuestToStaffEvent(Event $event, User $user) { $this->authorize('delete', $event); $event->guests()->updateExistingPivot($user, ['is_staff' => true], false); return (new EventResource($event)) ->response() ->setStatusCode(200); } public function deleteGuestToStaffEvent(Event $event, User $user) { $this->authorize('delete', $event); $event->guests()->updateExistingPivot($user, ['is_staff' => false], false); return (new EventResource($event)) ->response() ->setStatusCode(200); } }