isAdmin($request->user()->role)){ return response()->json(["message" => "Can't create task"], 403); } try { $event = Events::find($request["event_id"]); $event->tasks()->create([ "name" => $request["name"], "description" => $request["description"], "start" => $request["start"], "end" => $request["end"], "location" => $request["location"], "max_participants" => $request["max_participants"], ]); return response()->json(['message' => "Task created"], 200); } catch(\Exception $e) { Log::info($e->getMessage()); return response()->json(['message' => "Server error"], 500); } } public function assignSelf(Request $request): JsonResponse { try { $task = Task::find($request["task_id"]); if($task->max_participants = $task->users()->count()) { return response()->json(["message" => "Max participants reached"], 403); } $task->users()->attach($request->user()->id); return response()->json(['message' => "Task assigned"], 200); } catch (\Exception $e) { Log::info($e->getMessage()); return response()->json(['message' => "Server error"], 500); } } public function assignUser(request $request, int $id): JsonResponse { if(!$this->isAdmin($request->user()->role)){ return response()->json(["message" => "Can't create task"], 403); } try { $task = Task::find($request["task_id"]); if($task->max_participants === $task->users()->count()) { return response()->json(["message" => "Max participants reached"], 403); } $user = User::find($id); if($user) $task->users()->attach($id); return response()->json(['message' => "Task assigned"], 200); } catch(\Exception $e) { Log::info($e->getMessage()); return response()->json(['message' => "Server error"], 500); } } public function getEventTasks(Request $request, int $id): JsonResponse { try { $event = Events::find($id); return response()->json(['data' => $event->tasks()->get()]); } catch(\Exception $e) { Log::info($e->getMessage()); return response()->json(['message' => "Server error"], 500); } } }