From da97c45dd44fe5090fa20a3e74d4519b0535f225 Mon Sep 17 00:00:00 2001 From: Flycro Date: Thu, 19 Mar 2026 23:14:33 +0100 Subject: [PATCH] feat: add form request classes for all auth controllers --- .../Requests/Auth/CompleteProfileRequest.php | 38 +++++++++++++++++ .../Requests/Auth/ForgotPasswordRequest.php | 28 +++++++++++++ app/Http/Requests/Auth/LoginRequest.php | 29 +++++++++++++ app/Http/Requests/Auth/RegisterRequest.php | 41 +++++++++++++++++++ .../Requests/Auth/ResetPasswordRequest.php | 31 ++++++++++++++ 5 files changed, 167 insertions(+) create mode 100644 app/Http/Requests/Auth/CompleteProfileRequest.php create mode 100644 app/Http/Requests/Auth/ForgotPasswordRequest.php create mode 100644 app/Http/Requests/Auth/LoginRequest.php create mode 100644 app/Http/Requests/Auth/RegisterRequest.php create mode 100644 app/Http/Requests/Auth/ResetPasswordRequest.php diff --git a/app/Http/Requests/Auth/CompleteProfileRequest.php b/app/Http/Requests/Auth/CompleteProfileRequest.php new file mode 100644 index 0000000..a965852 --- /dev/null +++ b/app/Http/Requests/Auth/CompleteProfileRequest.php @@ -0,0 +1,38 @@ +has('socialite_user'); + } + + /** + * Get the validation rules that apply to the request. + * + * @return array> + */ + public function rules(): array + { + return [ + 'username' => [ + 'required', 'string', 'max:255', 'alpha_dash', + function ($attribute, $value, $fail): void { + if (User::whereRaw('LOWER(username) = ?', [strtolower($value)])->exists()) { + $fail('The username has already been taken.'); + } + }, + ], + 'first_name' => ['required', 'string', 'max:255'], + 'last_name' => ['required', 'string', 'max:255'], + ]; + } +} diff --git a/app/Http/Requests/Auth/ForgotPasswordRequest.php b/app/Http/Requests/Auth/ForgotPasswordRequest.php new file mode 100644 index 0000000..e299e9e --- /dev/null +++ b/app/Http/Requests/Auth/ForgotPasswordRequest.php @@ -0,0 +1,28 @@ +> + */ + public function rules(): array + { + return [ + 'email' => ['required', 'email'], + ]; + } +} diff --git a/app/Http/Requests/Auth/LoginRequest.php b/app/Http/Requests/Auth/LoginRequest.php new file mode 100644 index 0000000..7168154 --- /dev/null +++ b/app/Http/Requests/Auth/LoginRequest.php @@ -0,0 +1,29 @@ +> + */ + public function rules(): array + { + return [ + 'login' => ['required', 'string'], + 'password' => ['required', 'string'], + ]; + } +} diff --git a/app/Http/Requests/Auth/RegisterRequest.php b/app/Http/Requests/Auth/RegisterRequest.php new file mode 100644 index 0000000..a79aa91 --- /dev/null +++ b/app/Http/Requests/Auth/RegisterRequest.php @@ -0,0 +1,41 @@ +> + */ + public function rules(): array + { + return [ + 'username' => [ + 'required', 'string', 'max:255', 'alpha_dash', + function ($attribute, $value, $fail): void { + if (User::whereRaw('LOWER(username) = ?', [strtolower($value)])->exists()) { + $fail('The username has already been taken.'); + } + }, + ], + 'first_name' => ['required', 'string', 'max:255'], + 'last_name' => ['required', 'string', 'max:255'], + 'email' => ['required', 'string', 'lowercase', 'email', 'max:255', 'unique:'.User::class], + 'password' => ['required', 'confirmed', Rules\Password::defaults()], + ]; + } +} diff --git a/app/Http/Requests/Auth/ResetPasswordRequest.php b/app/Http/Requests/Auth/ResetPasswordRequest.php new file mode 100644 index 0000000..fc698e0 --- /dev/null +++ b/app/Http/Requests/Auth/ResetPasswordRequest.php @@ -0,0 +1,31 @@ +> + */ + public function rules(): array + { + return [ + 'token' => ['required'], + 'email' => ['required', 'email'], + 'password' => ['required', 'confirmed', Rules\Password::defaults()], + ]; + } +}