diff --git a/app/Http/Controllers/TasksController.php b/app/Http/Controllers/TasksController.php index e6ada3f..1de2456 100644 --- a/app/Http/Controllers/TasksController.php +++ b/app/Http/Controllers/TasksController.php @@ -123,4 +123,29 @@ class TasksController extends Controller return response()->json(['message' => "Server error"], 500); } } + + public function update(Request $request, int $id): JsonResponse { + + if(!$this->isAdmin($request->user()->role)){ + return response()->json(["message" => "Forbidden"], 403); + } + + try { + + $task = Task::find($id); + $task->name = $request["name"]; + $task->description = $request["description"]; + $task->start = $request["start"]; + $task->end = $request["end"]; + $task->location = $request["location"]; + $task->max_participants = $request["max_participants"]; + $task->save(); + + return response()->json(['message' => "Task updated"], 200); + + } catch (\Exception $e) { + Log::info($e->getMessage()); + return response()->json(['message' => "Server error"], 500); + } + } } diff --git a/routes/events.php b/routes/events.php index 41cbab7..2eee7ab 100644 --- a/routes/events.php +++ b/routes/events.php @@ -17,3 +17,5 @@ Route::middleware(['web', 'auth:sanctum'])->get('/events/{id}/tasks', [TasksCont Route::middleware(['web', 'auth:sanctum'])->delete('/events/tasks/{id}', [TasksController::class, "deleteTask"]); Route::middleware(['web', 'auth:sanctum'])->post('/events/{id}/update', [EventsController::class, "update"]); + +Route::middleware(['web', 'auth:sanctum'])->post('/events/tasks/{id}/update', [TasksController::class, "update"]); diff --git a/tests/Events/tasks/Update Task.bru b/tests/Events/tasks/Update Task.bru new file mode 100644 index 0000000..ef57d9a --- /dev/null +++ b/tests/Events/tasks/Update Task.bru @@ -0,0 +1,37 @@ +meta { + name: Update Task + type: http + seq: 5 +} + +post { + url: {{url}}/api/events/tasks/{{id}}/update + body: json + auth: inherit +} + +body:json { + { + "name": "{{name}}", + "description": "{{description}}", + "location": "{{location}}", + "start": "{{start}}", + "end": "{{end}}", + "max_participants": "{{max_participants}}" + } +} + +vars:pre-request { + id: + name: + description: + location: + start: + end: + max_participants: +} + +settings { + encodeUrl: true + timeout: 0 +}