Files
faveo/app/Http/Requests/helpdesk/CreateTicketRequest.php
2016-12-13 13:14:54 +00:00

123 lines
3.6 KiB
PHP

<?php
namespace App\Http\Requests\helpdesk;
use App\Http\Requests\Request;
use App\Model\helpdesk\Settings\CommonSettings;
/**
* CreateTicketRequest.
*
* @author Ladybird <info@ladybirdweb.com>
*/
class CreateTicketRequest extends Request
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
}
public function wantsJson()
{
if (in_array('api', $this->segments())) {
return true;
}
return false;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
$check = $this->check(new CommonSettings());
if ($check != 0) {
return $check;
}
return [
'email' => 'required|email|max:60',
'first_name' => 'required|min:3|max:40',
'helptopic' => 'required',
// 'dept' => 'required',
'sla' => 'required',
'subject' => 'required|min:5',
'body' => 'required|min:10',
'priority' => 'required',
];
}
/**
*@category Funcion to set rule if send opt is enabled
*
*@param object $settings (instance of Model common settings)
*
*@author manish.verma@ladybirdweb.com
*
*@return array|int
*/
public function check($settings)
{
$settings = $settings->select('status')->where('option_name', '=', 'send_otp')->first();
$email_mandatory = CommonSettings::select('status')->where('option_name', '=', 'email_mandatory')->first();
// dd($settings->status, $email_mandatory->status);
if (($settings->status == '1' || $settings->status == 1) && ($email_mandatory->status == '1' || $email_mandatory->status == 1)) {
return [
'email' => 'required|email|max:60',
'first_name' => 'required|min:3|max:40',
'helptopic' => 'required',
// 'dept' => 'required',
'sla' => 'required',
'subject' => 'required|min:5',
'body' => 'required|min:10',
'priority' => 'required',
'code' => 'required',
'mobile' => 'required',
];
} elseif (($settings->status == '0' || $settings->status == 0) && ($email_mandatory->status == '1' || $email_mandatory->status == 1)) {
return 0;
} elseif (($settings->status == '0' || $settings->status == 0) && ($email_mandatory->status == '0' || $email_mandatory->status == 0)) {
$rule = $this->onlyMobleRequired();
return $rule;
} elseif (($settings->status == '1' || $settings->status == 1) && ($email_mandatory->status == '0' || $email_mandatory->status == 0)) {
$rule = $this->onlyMobleRequired();
return $rule;
} else {
return 0;
}
}
/**
*@category function to make only moble required rule
*
*@param null
*
*@return array
*/
public function onlyMobleRequired()
{
return [
'email' => 'email|max:60',
'first_name' => 'required|min:3|max:40',
'helptopic' => 'required',
// 'dept' => 'required',
'sla' => 'required',
'subject' => 'required|min:5',
'body' => 'required|min:10',
'priority' => 'required',
'code' => 'required',
'mobile' => 'required',
];
}
}