CHANGE_ ticket related changes in chat bot : GWM

This commit is contained in:
bitbucket 2024-07-03 15:23:17 +05:30
parent 3c155e6bd0
commit 127d8876db

View File

@ -73,11 +73,10 @@ class ChatBotController extends AdminController
public function getChatResponse() public function getChatResponse()
{ {
try { // try {
$request_for = $this->request->getGet('request_for'); $request_for = $this->request->getGet('request_for');
$option = $this->request->getGet('option'); $option = $this->request->getGet('option');
$is_option = $this->request->getGet('is_option'); $is_option = $this->request->getGet('is_option');
$custom_options = $this->request->getGet('custom_options');
$responseData = $this->ChatBotModel->where('request', $request_for) $responseData = $this->ChatBotModel->where('request', $request_for)
->where('is_active', 1 ) ->where('is_active', 1 )
@ -90,17 +89,37 @@ class ChatBotController extends AdminController
$decodedData = json_decode($responseData['options'],true); $decodedData = json_decode($responseData['options'],true);
$requestFor = $decodedData[$option];
$responseData = $this->ChatBotModel->where('request', $requestFor) if (isset($decodedData[$option]) && $decodedData[$option] !== null) {
$requestFor = $decodedData[$option];
$responseData = $this->ChatBotModel->where('request', $requestFor)
->where('is_active', 1 ) ->where('is_active', 1 )
->first(); ->first();
}else{
if( $request_for == 'Create claim'){
$result = [
'request_for' => $request_for,
'options' => json_decode($responseData['options'], true),
'text' => "Enter Message",
'is_option' => "0",
'policy_id' => $option,
'mobile_no' => $this->request->getGet('mobile_no')
];
return $this->respond(['status' => 'success','code' => 200,'data' => $result ],200);
}else{
$result = $this->sendDefaultMessage();
return $this->respond(['status' => 'success','code' => 200,'data' => $result ],200);
}
}
} }
if(isset($custom_options))
{
}
if(isset($is_option) && $is_option == 0){ if(isset($is_option) && $is_option == 0){
@ -120,8 +139,38 @@ class ChatBotController extends AdminController
}else{ }else{
if( $request_for == 'Create claim' && $text == 'Enter Message'){
$ticket = $this->claimTicket();
$ticket = json_decode($ticket,true);
if (isset($ticket['success']) && $ticket['success'] == 1) {
$result = [
'request_for' => $request_for,
'options' => null,
'text' => $ticket['message'].', Your Ticket id is '.$ticket['ticket_id'],
'is_option' => "0"
];
}else{
$result = [
'request_for' => $request_for,
'options' => null,
'text' => $ticket['message'],
'is_option' => "0"
];
}
return $this->respond(['status' => 'success','code' => 200,'data' => $result ],200);
}else{
$result = $this->sendDefaultMessage(); $result = $this->sendDefaultMessage();
return $this->respond(['status' => 'success','code' => 200,'data' => $result ],200); return $this->respond(['status' => 'success','code' => 200,'data' => $result ],200);
}
} }
@ -145,9 +194,9 @@ class ChatBotController extends AdminController
return $this->respond(['status' => 'failed','code' => 404,'data' => 'No Data'],404); return $this->respond(['status' => 'failed','code' => 404,'data' => 'No Data'],404);
} }
} catch (\Throwable $th) { // } catch (\Throwable $th) {
return $this->respond(['status' => 'failed','code' => 500,'data' => $th],500); // return $this->respond(['status' => 'failed','code' => 500,'data' => $th],500);
} // }
} }
@ -220,14 +269,15 @@ public function getAllPolicyByMobileNumber($mobileNo,$action)
'options' => $options[count($options) - 1], 'options' => $options[count($options) - 1],
'text' => null, 'text' => null,
'is_option' => "1", 'is_option' => "1",
'custom_options'=>'create_ticket' 'mobile_no' => $mobileNo,
]; ];
}else{ }else{
return [ return [
'request_for' => $this->request->getGet('request_for'), 'request_for' => $this->request->getGet('request_for'),
'options' => null, 'options' => null,
'text' => $text, 'text' => $text,
'is_option' => "0" 'is_option' => "0",
'mobile_no' => $mobileNo,
]; ];
} }
@ -258,6 +308,64 @@ public function getAllPolicyByMobileNumber($mobileNo,$action)
} }
public function claimTicket()
{
$employee = $this->employeeModel->where('mobile', $this->request->getGet('mobile_no'))->where('is_active', 1 )->first();
if($employee){
$url = 'https://venbait.in/nhance/helpdesk/dev/api/tickets/create';
$token = 'uncp8FvG310bEyYdV9MmStlo7KDRZ65fLWTeXCI2JzwPrNHjBqQhUiAgxsaO';
$headers = [
'Token: ' . $token,
];
// Form data
$data = [
'opener' => 'user',
'department_id' => 2,
'subject' => 'Claim Raised by Chat Bot',
'body' => $this->request->getGet('value'),
'policy_id' => $this->request->getGet('policy_id'),
'emp_code' => $employee['emp_code'],
'mobile_number' => $this->request->getGet('mobile_no'),
'email' => 'adhavanvalli@gmail.com',
'fullname' => $employee['name'],
];
// Initialize cURL session
$ch = curl_init();
// Set cURL options
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
return $response;
// Check for errors
// if (curl_errno($ch)) {
// $error = curl_error($ch);
// curl_close($ch);
// return ['status' => 'failed', 'response' => $error];
// } else {
// // Close cURL session
// curl_close($ch);
// return ['status' => 'success', 'response' => $response];
// }
}else{
return ['status' => 'failed', 'response' => 'Employee Not Found'];
}
}
} }