From 7fa7bdd96f70f69cf2d2cb212fea90d99d842199 Mon Sep 17 00:00:00 2001 From: Luigi Eliabe Date: Mon, 27 Oct 2025 00:40:25 -0300 Subject: [PATCH 1/3] Add Resquest to Store and Update Professor class --- .../Http/Controllers/ProfessorController.php | 4 +-- .../Http/Requests/StoreProfessorRequest.php | 31 ++++++++++++++++++ .../Http/Requests/UpdateProfessorRequest.php | 32 +++++++++++++++++++ 3 files changed, 65 insertions(+), 2 deletions(-) create mode 100755 back/src/app/Http/Requests/StoreProfessorRequest.php create mode 100755 back/src/app/Http/Requests/UpdateProfessorRequest.php diff --git a/back/src/app/Http/Controllers/ProfessorController.php b/back/src/app/Http/Controllers/ProfessorController.php index c355ac1..565db60 100755 --- a/back/src/app/Http/Controllers/ProfessorController.php +++ b/back/src/app/Http/Controllers/ProfessorController.php @@ -23,7 +23,7 @@ public function index() } - public function store(Request $request) + public function store(StoreProfessorRequest $request) { try { DB::beginTransaction(); @@ -51,7 +51,7 @@ public function store(Request $request) } - public function update(Request $request, $id) + public function update(UpdateProfessorRequest $request, $id) { $professor = Professor::findOrFail($id); $user = User::findOrFail($professor->id); diff --git a/back/src/app/Http/Requests/StoreProfessorRequest.php b/back/src/app/Http/Requests/StoreProfessorRequest.php new file mode 100755 index 0000000..d647f9e --- /dev/null +++ b/back/src/app/Http/Requests/StoreProfessorRequest.php @@ -0,0 +1,31 @@ +|string> + */ + public function rules(): array + { + return [ + 'name' => [ 'required', 'string', 'max:255', ], + 'email' => [ 'required', 'string','email', 'max:255', Rule::unique('users', 'email'), ], + 'password' => [ 'required', 'string', ], + 'area_atuacao' => [ 'required', 'string', 'max:255', ], + ]; + } +} diff --git a/back/src/app/Http/Requests/UpdateProfessorRequest.php b/back/src/app/Http/Requests/UpdateProfessorRequest.php new file mode 100755 index 0000000..619b20c --- /dev/null +++ b/back/src/app/Http/Requests/UpdateProfessorRequest.php @@ -0,0 +1,32 @@ +|string> + */ + public function rules(): array + { + $professorId = $this->route('professor'); + + return [ + 'name' => [ 'sometimes', 'string', 'max:255', ], + 'email' => [ 'sometimes', 'string','email', 'max:255', Rule::unique('users', 'email')->ignore($professorId), ], + 'area_atuacao' => [ 'sometimes', 'string', 'max:255', ], + ]; + } +} From 15d43ae16ecadbfed04edd85e058936d57b60cda Mon Sep 17 00:00:00 2001 From: Luigi Eliabe Date: Mon, 27 Oct 2025 01:23:43 -0300 Subject: [PATCH 2/3] Add DB transation on ProfessorController --- .../app/Http/Controllers/ProfessorController.php | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/back/src/app/Http/Controllers/ProfessorController.php b/back/src/app/Http/Controllers/ProfessorController.php index 565db60..eb34cd5 100755 --- a/back/src/app/Http/Controllers/ProfessorController.php +++ b/back/src/app/Http/Controllers/ProfessorController.php @@ -89,9 +89,19 @@ public function destroy($id) $professor = Professor::findOrFail($id); $user = User::findOrFail($id); - $professor->delete(); - $user->delete(); + try { + DB::beginTransaction(); + + $professor->delete(); + $user->delete(); + + DB::commit(); - return response()->json(null, 204); + return response()->json(null, 204); + } catch (\Throwable $e) { + DB::rollBack(); + + return response()->json(['error' => 'Erro ao deletar professor', 'details' => $e->getMessage()], 500); + } } } From ec42509072d488d5127790d2e3696bdeecaf07f4 Mon Sep 17 00:00:00 2001 From: Luigi Eliabe Date: Mon, 27 Oct 2025 13:57:12 -0300 Subject: [PATCH 3/3] Fix missing imports --- back/src/app/Http/Requests/StoreProfessorRequest.php | 1 + back/src/app/Http/Requests/UpdateProfessorRequest.php | 1 + 2 files changed, 2 insertions(+) diff --git a/back/src/app/Http/Requests/StoreProfessorRequest.php b/back/src/app/Http/Requests/StoreProfessorRequest.php index d647f9e..af6d168 100755 --- a/back/src/app/Http/Requests/StoreProfessorRequest.php +++ b/back/src/app/Http/Requests/StoreProfessorRequest.php @@ -3,6 +3,7 @@ namespace App\Http\Requests; use Illuminate\Foundation\Http\FormRequest; +use Illuminate\Validation\Rule; class StoreProfessorRequest extends FormRequest { diff --git a/back/src/app/Http/Requests/UpdateProfessorRequest.php b/back/src/app/Http/Requests/UpdateProfessorRequest.php index 619b20c..bda5431 100755 --- a/back/src/app/Http/Requests/UpdateProfessorRequest.php +++ b/back/src/app/Http/Requests/UpdateProfessorRequest.php @@ -3,6 +3,7 @@ namespace App\Http\Requests; use Illuminate\Foundation\Http\FormRequest; +use Illuminate\Validation\Rule; class UpdateProfessorRequest extends FormRequest {