From d76aa85ef61378ef617084d6eb8b5215dfa94f5a Mon Sep 17 00:00:00 2001 From: lthurler Date: Mon, 25 Nov 2024 15:28:29 -0300 Subject: [PATCH] =?UTF-8?q?Valida=C3=A7=C3=A3o=20dos=20inputs=20para=20os?= =?UTF-8?q?=20controllers:?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit CreateSquadController EditSquadController CreateProductController EditProductController CreateMemberController EditMemberController e alteração na rota do CreateMemberController --- .../Member/CreateMemberController.php | 17 ++++++++++++++++- .../Controllers/Member/EditMemberController.php | 14 ++++++++++++++ .../Product/CreateProductController.php | 13 +++++++++++++ .../Product/EditProductController.php | 13 +++++++++++++ .../Controllers/Squad/CreateSquadController.php | 13 +++++++++++++ .../Controllers/Squad/EditSquadController.php | 16 ++++++++++++++-- routes/api.php | 5 +++-- 7 files changed, 86 insertions(+), 5 deletions(-) diff --git a/app/Http/Controllers/Member/CreateMemberController.php b/app/Http/Controllers/Member/CreateMemberController.php index c9798c6..cb989ed 100644 --- a/app/Http/Controllers/Member/CreateMemberController.php +++ b/app/Http/Controllers/Member/CreateMemberController.php @@ -2,6 +2,7 @@ namespace App\Http\Controllers\Member; +use App\Models\Squad; use Ramsey\Uuid\Uuid; use App\Models\Member; use Illuminate\Http\Request; @@ -13,10 +14,24 @@ public function __invoke(Request $request, string $squadUuid) { $member = new Member(); + $request->validate([ + + 'name' => ['required', 'string', 'max:60'], + 'role' => ['required', 'string', 'max:30'] + + ], [ + 'name.required' => 'O campo nome é obrigatório.', + 'name.string' => 'O campo nome deve ser uma string.', + 'name.max' => 'O campo nome não pode ter mais de :max caracteres.', + 'role.required' => 'O campo cargo é obrigatório', + 'role.string' => 'O campo cargo deve ser uma string.', + 'role.max' => 'O campo cargo não pode ter mais de :max caracteres.' + ]); + $member->uuid = Uuid::uuid4()->toString(); $member->name = $request->input('name'); $member->role = $request->input('role'); - $member->squad_uuid = $request->input('squad_uuid'); + $member->squad_uuid = $squadUuid; $member->save(); return response()->json([ diff --git a/app/Http/Controllers/Member/EditMemberController.php b/app/Http/Controllers/Member/EditMemberController.php index 2ea1e13..3aee014 100644 --- a/app/Http/Controllers/Member/EditMemberController.php +++ b/app/Http/Controllers/Member/EditMemberController.php @@ -17,6 +17,20 @@ public function __invoke(request $request, string $uuid, string $memberUuid) return response()->json(['error' => 'Membro não encontrado'], 404); } + $request->validate([ + + 'name' => ['required', 'string', 'max:60'], + 'role' => ['required', 'string', 'max:30'] + + ], [ + 'name.required' => 'O campo nome é obrigatório.', + 'name.string' => 'O campo nome deve ser uma string.', + 'name.max' => 'O campo nome não pode ter mais de :max caracteres.', + 'role.required' => 'O campo cargo é obrigatório', + 'role.string' => 'O campo cargo deve ser uma string.', + 'role.max' => 'O campo cargo não pode ter mais de :max caracteres.' + ]); + $member->name = $request->input('name'); $member->role = $request->input('role'); $member->save(); diff --git a/app/Http/Controllers/Product/CreateProductController.php b/app/Http/Controllers/Product/CreateProductController.php index 2330cdd..363bfd0 100644 --- a/app/Http/Controllers/Product/CreateProductController.php +++ b/app/Http/Controllers/Product/CreateProductController.php @@ -15,6 +15,19 @@ public function __invoke(Request $request) $product = new Product(); + $request->validate([ + + 'name' => ['required', 'string', 'max:60'], + 'description' => ['required', 'string'] + + ], [ + 'name.required' => 'O campo nome é obrigatório.', + 'name.string' => 'O campo nome deve ser uma string.', + 'name.max' => 'O campo nome não pode ter mais de :max caracteres.', + 'description.required' => 'Ocampo descrição é obrigatório', + 'description.string' => 'O campo descrição deve ser uma string.' + ]); + $product->uuid = Uuid::uuid4()->toString(); $product->owner_uuid = $user->uuid; $product->name = $request->input('name'); diff --git a/app/Http/Controllers/Product/EditProductController.php b/app/Http/Controllers/Product/EditProductController.php index c182a94..3104703 100644 --- a/app/Http/Controllers/Product/EditProductController.php +++ b/app/Http/Controllers/Product/EditProductController.php @@ -28,6 +28,19 @@ public function __invoke(Request $request, string $uuid) ], 403); } + $request->validate([ + + 'name' => ['required', 'string', 'max:60'], + 'description' => ['required', 'string'] + + ], [ + 'name.required' => 'O campo nome é obrigatório.', + 'name.string' => 'O campo nome deve ser uma string.', + 'name.max' => 'O campo nome não pode ter mais de :max caracteres.', + 'description.required' => 'Ocampo descrição é obrigatório', + 'description.string' => 'O campo descrição deve ser uma string.' + ]); + $product->name = $request->input('name'); $product->description = $request->input('description'); $product->save(); diff --git a/app/Http/Controllers/Squad/CreateSquadController.php b/app/Http/Controllers/Squad/CreateSquadController.php index 61e0e3b..bf53ba9 100644 --- a/app/Http/Controllers/Squad/CreateSquadController.php +++ b/app/Http/Controllers/Squad/CreateSquadController.php @@ -16,6 +16,19 @@ public function __invoke(Request $request) $product = Product::query()->where('owner_uuid', $user->uuid)->first(); $squad = new Squad(); + $request->validate([ + + 'name' => ['required', 'string', 'max:60'], + 'description' => ['required', 'string'] + + ], [ + 'name.required' => 'O campo nome é obrigatório.', + 'name.string' => 'O campo nome deve ser uma string.', + 'name.max' => 'O campo nome não pode ter mais de :max caracteres.', + 'description.required' => 'Ocampo descrição é obrigatório', + 'description.string' => 'O campo descrição deve ser uma string.' + ]); + $squad->uuid = Uuid::uuid4()->toString(); $squad->product_uuid = $product->uuid; $squad->name = $request->input('name'); diff --git a/app/Http/Controllers/Squad/EditSquadController.php b/app/Http/Controllers/Squad/EditSquadController.php index 7b966f6..f9af62c 100644 --- a/app/Http/Controllers/Squad/EditSquadController.php +++ b/app/Http/Controllers/Squad/EditSquadController.php @@ -19,7 +19,6 @@ public function __invoke(Request $request, string $uuid) return response()->json(['error' => 'Squad não encontrada'], 404); } - $product = Product::query()->where('uuid', $squad->product_uuid)->first(); if (!$product) { @@ -27,13 +26,26 @@ public function __invoke(Request $request, string $uuid) return response()->json(['error' => 'Produto não encontrado'], 404); } - if ($user->uuid !== $product->owner_uuid) { return response()->json(['error' => 'Você não tem permissão para atualizar esse produto'], 403); } + $request->validate([ + + 'name' => ['required', 'string', 'max:60'], + 'role' => ['required', 'string', 'max:30'] + + ], [ + 'name.required' => 'O campo nome é obrigatório.', + 'name.string' => 'O campo nome deve ser uma string.', + 'name.max' => 'O campo nome não pode ter mais de :max caracteres.', + 'role.required' => 'O campo cargo é obrigatório', + 'role.string' => 'O campo cargo deve ser uma string.', + 'role.max' => 'O campo cargo não pode ter mais de :max caracteres.' + ]); + $squad->name = $request->input('name'); $squad->description = $request->input('description'); $squad->save(); diff --git a/routes/api.php b/routes/api.php index a5aa1b7..f65b82f 100644 --- a/routes/api.php +++ b/routes/api.php @@ -59,7 +59,7 @@ Route::put('/{uuid}', [EditUserController::class, '__invoke']) ->whereUuid('uuid') - ->name('apr.user.edit'); + ->name('api.user.edit'); Route::delete('/{uuid}', [DeleteUserController::class, '__invoke']) ->whereUuid('uuid') @@ -116,6 +116,7 @@ ->name('api.member.show'); Route::post('/', [CreateMemberController::class, '__invoke']) + ->whereUuid('uuid') ->name('api.member.create'); Route::put('/{memberUuid}', [EditMemberController::class, '__invoke']) @@ -138,4 +139,4 @@ Route::prefix('user')->group(function () { Route::post('/', [CreateUserController::class, '__invoke']) ->name('api.user.create'); -}); \ No newline at end of file +});