<?php
namespace QxCMS\Modules\Likod\Requests\Clients;
use Illuminate\Foundation\Http\FormRequest;
class ClientRequest extends FormRequest
{
/**
* 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()
{
if($this->getId()) {
return [
'client_name' => 'required|min:6',
'client_address' => 'required|min:6',
'telephone_no' => 'required|min:6',
'email' => 'required|email',
//'database_name' => 'required|min:5',
'database_host' => 'required',
'database_username' => 'required',
'status' => 'required|in:0,1',
'number_of_users' => 'required|numeric',
'disk_size' => 'required|numeric',
'date_picker_format' => 'required|numeric|in:1,2,3',
'monthly_mail_quota' => 'required|numeric',
'mail_driver' => 'required|in:smtp,mail',
'mail_sender_address' => 'required|email',
'mail_sender_name' => 'required|min:6',
'mail_host' => 'required',
'mail_username' => 'required',
'mail_password' => 'required',
'mail_port' => 'required|numeric',
'storage_type' => 'required|in:public,s3',
's3_key' => 'required_if:storage_type,s3',
's3_secret' => 'required_if:storage_type,s3',
's3_region' => 'required_if:storage_type,s3',
's3_bucket_name' => 'required_if:storage_type,s3',
'cpanel_host' => 'required_with:create_email',
'cpanel_ip' => 'required_with:create_email',
'cpanel_port' => 'required_with:create_email',
'cpanel_account' => 'required_with:create_email',
'cpanel_password' => 'required_with:create_email',
'cpanel_domain' => 'required_with:create_email',
'cpanel_user_default_password' => 'required_with:create_email',
];
}
return [
'name' => 'required|min:6',
'email' => 'required|email',
'password' => 'required|min:6|confirmed',
'client_name' => 'required|min:6',
'client_address' => 'required|min:6',
'telephone_no' => 'required|min:6',
'email' => 'required|email',
'database_name' => 'required|min:5',
'database_host' => 'required',
'database_username' => 'required',
'status' => 'required|in:0,1',
'number_of_users' => 'required|numeric',
'disk_size' => 'required|numeric',
'date_picker_format' => 'required|numeric|in:1,2,3',
'monthly_mail_quota' => 'required|numeric',
'mail_driver' => 'required|in:smtp,mail',
'mail_sender_address' => 'required|email',
'mail_sender_name' => 'required|min:6',
'mail_host' => 'required',
'mail_username' => 'required',
'mail_password' => 'required',
'mail_port' => 'required|numeric',
'storage_type' => 'required|in:public,s3',
's3_key' => 'required_if:storage_type,s3',
's3_secret' => 'required_if:storage_type,s3',
's3_region' => 'required_if:storage_type,s3',
's3_bucket_name' => 'required_if:storage_type,s3',
'cpanel_host' => 'required_with:create_email',
'cpanel_ip' => 'required_with:create_email',
'cpanel_port' => 'required_with:create_email',
'cpanel_account' => 'required_with:create_email',
'cpanel_password' => 'required_with:create_email',
'cpanel_domain' => 'required_with:create_email',
'cpanel_user_default_password' => 'required_with:create_email',
];
}
public function messages()
{
if($this->getId()) {
return [
'password.confirmed' => 'Re-type password does not match.',
'status.required' => 'The account status is a required field.',
'status.in' => 'The selected account status is invalid.',
's3_key.required_if' => 'The :attribute field is required if storage type is Amazon S3.',
's3_secret.required_if' => 'The :attribute field is required if storage type is Amazon S3.',
's3_region.required_if' => 'The :attribute field is required if storage type is Amazon S3.',
's3_bucket_name.required_if' => 'The :attribute field is required if storage type is Amazon S3.',
'cpanel_host.required_with' => 'The :attribute field is required when create email is checked.',
'cpanel_ip.required_with' => 'The :attribute field is required when create email is checked.',
'cpanel_port.required_with' => 'The :attribute field is required when create email is checked.',
'cpanel_account.required_with' => 'The :attribute field is required when create email is checked.',
'cpanel_password.required_with' => 'The :attribute field is required when create email is checked.',
'cpanel_domain.required_with' => 'The :attribute field is required when create email is checked.',
'cpanel_user_default_password.required_with' => 'The :attribute field is required when create email is checked.',
];
}
return [
'name.required' => 'The name of user is a required field.',
'name.min' => 'The name of user must be at least :min characters.',
'password.confirmed' => 'Re-type password does not match.',
'status.required' => 'The account status is a required field.',
'status.in' => 'The selected account status is invalid.',
's3_key.required_if' => 'The :attribute field is required if storage type is Amazon S3.',
's3_secret.required_if' => 'The :attribute field is required if storage type is Amazon S3.',
's3_region.required_if' => 'The :attribute field is required if storage type is Amazon S3.',
's3_bucket_name.required_if' => 'The :attribute field is required if storage type is Amazon S3.',
'cpanel_host.required_with' => 'The :attribute field is required when create email is checked.',
'cpanel_ip.required_with' => 'The :attribute field is required when create email is checked.',
'cpanel_port.required_with' => 'The :attribute field is required when create email is checked.',
'cpanel_account.required_with' => 'The :attribute field is required when create email is checked.',
'cpanel_password.required_with' => 'The :attribute field is required when create email is checked.',
'cpanel_domain.required_with' => 'The :attribute field is required when create email is checked.',
'cpanel_user_default_password.required_with' => 'The :attribute field is required when create email is checked.',
];
}
public function getId()
{
return decode($this->client);
}
}