|
@@ -10,11 +10,25 @@ class UserRequest extends FormRequest
|
|
|
{
|
|
{
|
|
|
public function rules(): array
|
|
public function rules(): array
|
|
|
{
|
|
{
|
|
|
- return [
|
|
|
|
|
|
|
+ $rules = [
|
|
|
'name' => 'required|string',
|
|
'name' => 'required|string',
|
|
|
- 'email' => 'required|unique:users,email|email',
|
|
|
|
|
- 'password' => 'sometimes|required|string',
|
|
|
|
|
|
|
+ 'password' => 'sometimes|string|nullable',
|
|
|
'type' => ['sometimes', Rule::enum(UserTypeSource::class)],
|
|
'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;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|