From e118debc6b5010caebd5b95a4bc6331db7e8fcc9 Mon Sep 17 00:00:00 2001 From: T'JAMPENS QUENTIN p2406187 Date: Mon, 12 Jan 2026 14:15:08 +0100 Subject: [PATCH] Improve assignSelf function --- app/Http/Controllers/TasksController.php | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) 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); } }