diff --git a/app/Http/Controllers/TasksController.php b/app/Http/Controllers/TasksController.php index ab51329..f854cef 100644 --- a/app/Http/Controllers/TasksController.php +++ b/app/Http/Controllers/TasksController.php @@ -70,7 +70,7 @@ class TasksController extends Controller try { - $task = Task::find($request["task_id"]); + $task = Task::with('event')->find($request["task_id"]); if ($task->users()->where('user_id', $id)->exists()) { return response()->json(["message" => "User already assigned to this task"], 400); @@ -209,6 +209,11 @@ class TasksController extends Controller return response()->json(["message" => "Task not found"], 404); } + if (!$task->event) { + Log::error("Relation 'event' manquante pour la tâche ID: " . $task->id); + return response()->json(["message" => "Task is missing its parent event"], 422); + } + $isAssigned = $task->users()->where('user_id', $id)->exists(); if (!$isAssigned) { return response()->json(["message" => "User is not assigned to this task"], 400); diff --git a/app/Models/Task.php b/app/Models/Task.php index 353ea54..c569495 100644 --- a/app/Models/Task.php +++ b/app/Models/Task.php @@ -7,7 +7,6 @@ use Illuminate\Database\Eloquent\Model; class Task extends Model { - /** @use HasFactory<\Database\Factories\TaskFactory> */ use HasFactory; protected $fillable = [ diff --git a/app/Policies/EventsPolicy.php b/app/Policies/EventsPolicy.php index 0273ad5..a888718 100644 --- a/app/Policies/EventsPolicy.php +++ b/app/Policies/EventsPolicy.php @@ -8,17 +8,17 @@ use Illuminate\Auth\Access\Response; class EventsPolicy { - public function create(User $user, Events $model): bool + public function create(User $user): bool { return $user->role === 1 || $user->role === 2; } - public function update(User $user, Events $model): bool + public function update(User $user): bool { return $user->role === 1 || $user->role === 2; } - public function delete(User $user, Events $model): bool + public function delete(User $user): bool { return $user->role === 1 || $user->role === 2; } diff --git a/app/Policies/TasksPolicy.php b/app/Policies/TasksPolicy.php index 42f576c..7efc5b1 100644 --- a/app/Policies/TasksPolicy.php +++ b/app/Policies/TasksPolicy.php @@ -8,27 +8,27 @@ use Illuminate\Auth\Access\Response; class TasksPolicy { - public function create(User $user, Task $model): bool + public function create(User $user): bool { return $user->role === 1 || $user->role === 2; } - public function assignOther(User $user, Task $model): bool + public function assignOther(User $user): bool { return $user->role === 1 || $user->role === 2; } - public function unassignOther(User $user, Task $model): bool + public function unassignOther(User $user): bool { return $user->role === 1 || $user->role === 2; } - public function delete(User $user, Task $model): bool + public function delete(User $user): bool { return $user->role === 1 || $user->role === 2; } - public function update(User $user, Task $model): bool + public function update(User $user): bool { return $user->role === 1 || $user->role === 2; } diff --git a/app/Policies/UsersPolicy.php b/app/Policies/UsersPolicy.php index 495cc85..d5578ba 100644 --- a/app/Policies/UsersPolicy.php +++ b/app/Policies/UsersPolicy.php @@ -7,17 +7,17 @@ use Illuminate\Auth\Access\Response; class UsersPolicy { - public function deleteOther(User $user, User $model): bool + public function deleteOther(User $user): bool { return $user->role === 1; } - public function validate(User $user, User $model): bool + public function validate(User $user): bool { return $user->role === 1 || $user->role === 2; } - public function addRole(User $user, User $model): bool + public function addRole(User $user): bool { return $user->role === 1; } diff --git a/tests/Events/Delete event.bru b/tests/Events/Delete event.bru index 1cfedb3..025cf2e 100644 --- a/tests/Events/Delete event.bru +++ b/tests/Events/Delete event.bru @@ -11,7 +11,7 @@ delete { } vars:pre-request { - id: + id: 1 } settings { diff --git a/tests/Events/tasks/Assign task to user.bru b/tests/Events/tasks/Assign task to user.bru index 15cf31b..c9967d0 100644 --- a/tests/Events/tasks/Assign task to user.bru +++ b/tests/Events/tasks/Assign task to user.bru @@ -17,8 +17,8 @@ body:json { } vars:pre-request { - id: 1 - task_id: 3 + id: 3 + task_id: 2 } settings { diff --git a/tests/Events/tasks/Delete task.bru b/tests/Events/tasks/Delete task.bru index fac39b0..0245113 100644 --- a/tests/Events/tasks/Delete task.bru +++ b/tests/Events/tasks/Delete task.bru @@ -11,7 +11,7 @@ delete { } vars:pre-request { - id: + id: 1 } settings { diff --git a/tests/Events/tasks/create event task.bru b/tests/Events/tasks/create event task.bru index 4f00dd7..9708149 100644 --- a/tests/Events/tasks/create event task.bru +++ b/tests/Events/tasks/create event task.bru @@ -12,16 +12,26 @@ post { body:json { { - "event_id": 1, - "name": "test12", - "location": "blahhhhh", - "description": "blouuuuuuuuuuh", - "start": "2025-11-09 15:30:00", - "end": "2025-11-09 15:30:00", - "max_participants": 10 + "event_id": "{{event_id}}", + "name": "{{name}}", + "location": "{{location}}", + "description": "{{description}}", + "start": "{{start}}", + "end": "{{end}}", + "max_participants": "{{max_participants}}" } } +vars:pre-request { + event_id: 1 + name: Organisation plage + location: la rochelle + description: il faut organiser la sortie + start: 2025-01-15T13:45 + end: 2025-03-15T13:00 + max_participants: 5 +} + settings { encodeUrl: true timeout: 0 diff --git a/tests/collection.bru b/tests/collection.bru index f502c76..89ee22e 100644 --- a/tests/collection.bru +++ b/tests/collection.bru @@ -1,4 +1,4 @@ headers { Accept: application/json - X-XSRF-TOKEN: eyJpdiI6ImFwSWk4NFdMcWJkcGF2YjRZQlQrRlE9PSIsInZhbHVlIjoiUXlyeFBkZFhDWmF1WE85OW1uY3c4ak1MM2dWMWlKRy9DRkN0MVNPNGVUUmthT1MxZ2hKREZhT0Y4d25idk5RdnZEcFh2UTRlbWpzYXRwSkNWL2Y5V2xlaEtYN09KMHpMQnQ4RzJvaElmWnFzTXEvSTJzZmZBenJEa2ZPelpydHoiLCJtYWMiOiIxNmIwNGRhNWQwYzIwZjBiYjA1ZTZlYzA2Y2NiY2FiNDY0NTZmNzU4NGIyZDYxODVhZGEwZWJiZmMwOGEwNzlmIiwidGFnIjoiIn0= + X-XSRF-TOKEN: eyJpdiI6IndFcmlWNnVVS2VFaXFHOVhzYS9iUEE9PSIsInZhbHVlIjoidWZHRUdvRy9tMWpRRnVxL0dkc2d4ZDRnTkwvVEtObndORFZpWWpNL0VTOWNOR3NHczV1V1pFUC9MdS9YTE9nMmJpZ1ViOVFmR05QaDZaN251TlNlQnl6MFB6VWNYNjdHT0NqTlBYNjRjaEY2SlhWNHk5WWwrQ09teTRwN2dzdDYiLCJtYWMiOiJhYjY0N2EwMzEzNTk4ODlkMjZkYTE0YTY1NTllN2VkODlhYjU0M2RmYzNjYzI3NDZkYjAwNWU5OTBiNDFjMjc4IiwidGFnIjoiIn0= }