Refactor install wizard and mail configuration

This commit is contained in:
Darko Gjorgjijoski
2026-04-09 10:06:27 +02:00
parent 1d2cca5837
commit 9174254165
55 changed files with 3102 additions and 1162 deletions

View File

@@ -2,6 +2,7 @@
namespace App\Http\Requests;
use App\Services\MailConfigurationService;
use Illuminate\Foundation\Http\FormRequest;
class MailEnvironmentRequest extends FormRequest
@@ -19,158 +20,8 @@ class MailEnvironmentRequest extends FormRequest
*/
public function rules(): array
{
switch ($this->get('mail_driver')) {
case 'smtp':
return [
'mail_driver' => [
'required',
'string',
],
'mail_host' => [
'required',
'string',
],
'mail_port' => [
'required',
],
'mail_username' => [
'nullable',
'string',
],
'mail_password' => [
'nullable',
'string',
],
'mail_encryption' => [
'nullable',
'string',
],
'mail_scheme' => [
'nullable',
'string',
],
'mail_url' => [
'nullable',
'string',
],
'mail_timeout' => [
'nullable',
'integer',
],
'mail_local_domain' => [
'nullable',
'string',
],
'from_name' => [
'required',
'string',
],
'from_mail' => [
'required',
'string',
'email',
],
];
case 'mailgun':
return [
'mail_driver' => [
'required',
'string',
],
'mail_mailgun_domain' => [
'required',
'string',
],
'mail_mailgun_secret' => [
'required',
'string',
],
'mail_mailgun_endpoint' => [
'nullable',
'string',
],
'mail_mailgun_scheme' => [
'nullable',
'string',
],
'from_name' => [
'required',
'string',
],
'from_mail' => [
'required',
'string',
'email',
],
];
case 'ses':
return [
'mail_driver' => [
'required',
'string',
],
'mail_ses_key' => [
'required',
'string',
],
'mail_ses_secret' => [
'required',
'string',
],
'mail_ses_region' => [
'nullable',
'string',
],
'from_name' => [
'required',
'string',
],
'from_mail' => [
'required',
'string',
'email',
],
];
case 'sendmail':
return [
'mail_driver' => [
'required',
'string',
],
'mail_sendmail_path' => [
'nullable',
'string',
],
'from_name' => [
'required',
'string',
],
'from_mail' => [
'required',
'string',
'email',
],
];
default:
return [
'mail_driver' => [
'required',
'string',
],
'from_name' => [
'required',
'string',
],
'from_mail' => [
'required',
'string',
'email',
],
];
}
return app(MailConfigurationService::class)->validationRules(
$this->string('mail_driver')->toString()
);
}
}