
Shift automatically applies the Laravel coding style - which uses the PSR-12 coding style as a base with some minor additions. You may customize the code style applied by configuring [Pint](https://laravel.com/docs/pint), [PHP CS Fixer](https://github.com/FriendsOfPHP/PHP-CS-Fixer), or [PHP CodeSniffer](https://github.com/squizlabs/PHP_CodeSniffer) for your project root. For more information on customizing the code style applied by Shift, [watch this short video](https://laravelshift.com/videos/shift-code-style).
80 lines
1.9 KiB
PHP
80 lines
1.9 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Requests\helpdesk\Mail;
|
|
|
|
use App\Http\Requests\Request;
|
|
|
|
class MailRequest extends Request
|
|
{
|
|
/**
|
|
* Determine if the user is authorized to make this request.
|
|
*
|
|
* @return bool
|
|
*/
|
|
public function authorize()
|
|
{
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* Get the validation rules that apply to the request.
|
|
*
|
|
* @return array
|
|
*/
|
|
public function rules()
|
|
{
|
|
$id = $this->segment(2);
|
|
$email_address_rule = 'required|email|unique:emails';
|
|
if ($id) {
|
|
$email_address_rule = 'required|email|unique:emails,id,'.$id;
|
|
}
|
|
|
|
$rules = [
|
|
'email_address' => $email_address_rule,
|
|
'email_name' => 'required',
|
|
'password' => 'required',
|
|
'sending_protocol' => 'required_if:sending_status,on',
|
|
];
|
|
$driver = $this->input('sending_protocol');
|
|
$driver_rules = $this->getDriver($driver);
|
|
$rules = array_merge($rules, $driver_rules);
|
|
|
|
return $rules;
|
|
}
|
|
|
|
public function getDriver($serviceid)
|
|
{
|
|
$rules = [];
|
|
$mail_services = new \App\Model\MailJob\MailService();
|
|
$mail_service = $mail_services->find($serviceid);
|
|
if ($mail_service) {
|
|
$short = $mail_service->short_name;
|
|
$rules = $this->getRules($short);
|
|
}
|
|
|
|
return $rules;
|
|
}
|
|
|
|
public function getRules($short)
|
|
{
|
|
$rules = [];
|
|
switch ($short) {
|
|
case 'mailgun':
|
|
$rules = [
|
|
'domain' => 'required',
|
|
'secret' => 'required',
|
|
];
|
|
|
|
return $rules;
|
|
case 'mandrill':
|
|
$rules = [
|
|
'secret' => 'required',
|
|
];
|
|
|
|
return $rules;
|
|
default:
|
|
return $rules;
|
|
}
|
|
}
|
|
}
|