From 6cc055b2c44dd5804cda862b0ce7b986854464f9 Mon Sep 17 00:00:00 2001
From: sebastien <dupuy@datakode.fr>
Date: Tue, 28 Jun 2022 11:42:58 +0200
Subject: [PATCH] avancement des tests evaluation pour le controleur

---
 app/Http/Controllers/Api/EvaluationsController.php | 12 ++++++------
 app/Http/Requests/EvaluationRequest.php            |  8 +++-----
 app/Models/DangerLevelEvaluation.php               |  1 +
 tests/Feature/EvaluationsControllerTest.php        | 14 +++++++++++---
 4 files changed, 21 insertions(+), 14 deletions(-)

diff --git a/app/Http/Controllers/Api/EvaluationsController.php b/app/Http/Controllers/Api/EvaluationsController.php
index 06fd38ed..bf359b0c 100644
--- a/app/Http/Controllers/Api/EvaluationsController.php
+++ b/app/Http/Controllers/Api/EvaluationsController.php
@@ -70,17 +70,16 @@ public function save(EvaluationRequest $request, $id = null)
     {
         $user = Auth::user();
         $data = $request->validated();
-        //dd($data);
 
         if ($user->role <= User::ROLE_MANAGER) {
+            if (($user->role === User::ROLE_MANAGER)&& ($data['organization_id'] !== $user->organization_id)){
+                abort(403);
+            }
             if(!isset($id)){
                 $evaluation = new Evaluation();
                 $evaluation->author =  $data['author'];
             } else {
                 $evaluation = Evaluation::find($id);
-                if (($user->role === User::ROLE_MANAGER)&& ($evaluation->organization_id !== $user->organization_id)){
-                    abort(403);
-                }
             }
 
             $evaluation->status = $data['status'];
@@ -125,10 +124,11 @@ public function save(EvaluationRequest $request, $id = null)
                 }
             }
 
-            return $evaluation->with('dangerLevels')
+            return Evaluation::where('id',$evaluation->id)
+                ->with('dangerLevels')
                 ->with('evaluationMeasures')
                 ->with('organization')
-                ->get();
+                ->first();
         }
 
         abort(403);
diff --git a/app/Http/Requests/EvaluationRequest.php b/app/Http/Requests/EvaluationRequest.php
index fde1342a..58bb1cff 100644
--- a/app/Http/Requests/EvaluationRequest.php
+++ b/app/Http/Requests/EvaluationRequest.php
@@ -28,11 +28,9 @@ public function rules()
             'current_step' => 'int|required',
             'current_step_status' => 'int|required',
             'organization_id' => 'int|required',
-            'danger_levels' => 'array|nullable',
-            'danger_levels.id' => 'int|nullable',
-            'danger_levels.id' => 'int|nullable',
-            'danger_levels.id' => 'int|nullable',
-
+            'danger_levels.*.id' => 'int|nullable',
+            'danger_levels.*.danger_level_id' => 'int|nullable',
+            'danger_levels.*.evaluation_id' => 'int|nullable',
             'evaluation_measures' => 'array|nullable',
             'updated_by' => 'string|max:255|required',
             'author' => 'string|nullable'
diff --git a/app/Models/DangerLevelEvaluation.php b/app/Models/DangerLevelEvaluation.php
index 584e418e..c1cd454b 100644
--- a/app/Models/DangerLevelEvaluation.php
+++ b/app/Models/DangerLevelEvaluation.php
@@ -7,5 +7,6 @@
 
 class DangerLevelEvaluation extends Model
 {
+    protected $table = 'danger_level_evaluation';
     use HasFactory;
 }
diff --git a/tests/Feature/EvaluationsControllerTest.php b/tests/Feature/EvaluationsControllerTest.php
index de8b61fa..2c6f6e83 100644
--- a/tests/Feature/EvaluationsControllerTest.php
+++ b/tests/Feature/EvaluationsControllerTest.php
@@ -2,6 +2,7 @@
 
 namespace Tests\Feature;
 
+use App\Models\DangerLevelEvaluation;
 use App\Models\Evaluation;
 use App\Models\Organization;
 use App\Models\User;
@@ -135,13 +136,20 @@ public function testPostEvaluationShouldCreateDraftEvaluation()
     {
         $user = User::where('role', User::ROLE_MANAGER)->first();
 
+        $dangersLevelsEval = new DangerLevelEvaluation();
+        $dangersLevelsEval->danger_level_id = 1;
+        $dangersLevelsEval->evaluation_id = 3;
+        $dangersLevelsEval->save();
+
         $eval = [
-            'organization_id' => $user->organisation_id,
+            'organization_id' => $user->organization_id,
             'current_step' => 1,
             'status' => 1,
             'current_step_status' => 1,
             'updated_by' => $user->firstname .' '. $user->lastname,
-            'author' => $user->firstname .' '. $user->lastname
+            'author' => $user->firstname .' '. $user->lastname,
+            'danger_levels' => [$dangersLevelsEval],
+
         ];
 
         $nextId = Evaluation::orderBy('id', 'desc')->first()->id + 1;
@@ -162,7 +170,7 @@ public function testPostEvaluationShouldCreateDraftEvaluation()
             'organization' => $user->organization->toArray(),
             'created_at' => Carbon::now()->format('Y-m-d H:i:s'),
             'updated_at' => Carbon::now()->format('Y-m-d H:i:s'),
-            'danger_levels' => [],
+            'danger_levels' => [$dangersLevelsEval],
             'evaluation_measures' => [],
         ], $data);
 
-- 
GitLab