diff --git a/app/Http/Controllers/TasksController.php b/app/Http/Controllers/TasksController.php index f854cef..f786bee 100644 --- a/app/Http/Controllers/TasksController.php +++ b/app/Http/Controllers/TasksController.php @@ -43,21 +43,25 @@ class TasksController extends Controller } } - public function assignSelf(Request $request): JsonResponse { - + public function assignSelf(Request $request): JsonResponse + { try { + $task = Task::findOrFail($request["task_id"]); - $task = Task::find($request["task_id"]); - - if($task->max_participants === $task->users()->count()) { + if ($task->users()->count() >= $task->max_participants) { return response()->json(["message" => "Max participants reached"], 403); } + if ($task->users()->where('users.id', $request->user()->id)->exists()) { + return response()->json(["message" => "Already registered"], 409); + } + $task->users()->attach($request->user()->id); + return response()->json(['message' => "Task assigned"], 200); - } catch (\Exception $e) { - Log::info($e->getMessage()); + } catch (\Throwable $e) { + Log::error($e->getMessage()); return response()->json(['message' => "Server error"], 500); } }