瀏覽代碼

fix: :bug: validação por tipo de request userRequest

Denis 1 年之前
父節點
當前提交
1200f1d6d6
共有 2 個文件被更改,包括 18 次插入4 次删除
  1. 1 1
      app/DataTransferObjects/UserDto.php
  2. 17 3
      app/Http/Requests/UserRequest.php

+ 1 - 1
app/DataTransferObjects/UserDto.php

@@ -9,7 +9,7 @@
     public function __construct(
         public string $name,
         public string $email,
-        public string $password,
+        public ?string $password,
         public ?string $type,
     ) {
     }

+ 17 - 3
app/Http/Requests/UserRequest.php

@@ -10,11 +10,25 @@ class UserRequest extends FormRequest
 {
     public function rules(): array
     {
-        return [
+        $rules = [
             'name' => 'required|string',
-            'email' => 'required|unique:users,email|email',
-            'password' => 'sometimes|required|string',
+            'password' => 'sometimes|string|nullable',
             'type' => ['sometimes', Rule::enum(UserTypeSource::class)],
         ];
+
+        // Determine if the request is for creating or updating
+        if ($this->isMethod('post')) {
+            // Rules for creating a new user
+            $rules['email'] = 'required|unique:users,email|email';
+        } elseif ($this->isMethod('put') || $this->isMethod('patch')) {
+            // Rules for updating an existing user
+            $rules['email'] = [
+                'required',
+                'email',
+                Rule::unique('users', 'email')->ignore($this->route('id')),
+            ];
+        }
+
+        return $rules;
     }
 }