diff --git a/app/Http/Controllers/Api/EvaluationsController.php b/app/Http/Controllers/Api/EvaluationsController.php index 06fd38ed8577038fa57217b29ebd3a84e6ca8b79..bf359b0cc6c3acfd9265f1c53e62e59f747344b5 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 fde1342af2f6347c431f18b93ea8eb44f7a92abf..58bb1cfffbba1b9c8872967c128e4b4a72fcdcc8 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 584e418e027242a6322d1c584183ca94ffa859dd..c1cd454bf37730a4e93fb906f8bfb692e06722d4 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 de8b61fa85240817fb86c209a0ca799f04ea0020..2c6f6e83f3147ca1e1f1327b92e3675a9a59ee76 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);