GWM : sms integration
This commit is contained in:
parent
3c5bca76f1
commit
7bb6b38087
@ -99,5 +99,5 @@ class Autoload extends AutoloadConfig
|
|||||||
* @var string[]
|
* @var string[]
|
||||||
* @phpstan-var list<string>
|
* @phpstan-var list<string>
|
||||||
*/
|
*/
|
||||||
public $helpers = ['uuid','session','utility', 'form', 'url', 'oauth', 'fileupload', 'excel_import_export', 'file', 'drive','ExcelSanitizeHelper'];
|
public $helpers = ['uuid','session','utility', 'form', 'url', 'oauth', 'fileupload', 'excel_import_export', 'file', 'drive','ExcelSanitizeHelper','sms_helper'];
|
||||||
}
|
}
|
||||||
|
|||||||
@ -137,36 +137,59 @@ class RestAuthenticationController extends AdminController
|
|||||||
return $this->respond(['status' => 'failed','code' => 404,'data' => $result],200);
|
return $this->respond(['status' => 'failed','code' => 404,'data' => $result],200);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
$this->myLogger->logme("error", "REST-AUTH-CONTROLLER - verifyEmployeeWithMobileNumber: employee data both PRE & POST = " . json_encode($empdata));
|
$this->myLogger->logme("error", "REST-AUTH-CONTROLLER - verifyEmployeeWithMobileNumber: employee data both PRE & POST = " . json_encode($empdata));
|
||||||
|
|
||||||
$employeeData = $this->employeeModel->select('employees.relationship,EP.employee_id')
|
|
||||||
->join('employee_polices EP', 'EP.employee_id = employees.id', 'inner')
|
|
||||||
->where('employees.is_active', 1)
|
|
||||||
->where('employees.relationship', 'self')
|
|
||||||
->where('employees.emp_status !=', 'truncated')
|
|
||||||
->where('employees.mobile', $mobile_number)
|
|
||||||
->where('EP.is_active', 1)
|
|
||||||
->whereIn('EP.status', ['draft', 'enrolled', 'expired'])
|
|
||||||
->first();
|
|
||||||
|
|
||||||
$employeeData = [];
|
$employeeData = [];
|
||||||
if (isset($empdata['pre']) && !empty($empdata['pre'])) {
|
if (isset($empdata['pre']) && !empty($empdata['pre'])) {
|
||||||
$employeeData = $empdata['pre'];
|
$employeeData = $empdata['pre'];
|
||||||
$this->myLogger->logme("error", "REST-AUTH-CONTROLLER - verifyEmployeeWithMobileNumber: Using PRE data");
|
$this->myLogger->logme("error", "REST-AUTH-CONTROLLER - verifyEmployeeWithMobileNumber: Using PRE data");
|
||||||
} elseif (isset($empdata['post']) && !empty($empdata['post'])) {
|
|
||||||
$employeeData = $empdata['post'];
|
|
||||||
$this->myLogger->logme("error", "REST-AUTH-CONTROLLER - verifyEmployeeWithMobileNumber: Using POST data");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->myLogger->logme("error", "REST-AUTH-CONTROLLER - verifyEmployeeWithMobileNumber: Final employee data to verify = " . json_encode($employeeData));
|
$this->myLogger->logme("error", "REST-AUTH-CONTROLLER - verifyEmployeeWithMobileNumber: Final employee data to verify = " . json_encode($employeeData));
|
||||||
|
|
||||||
if (isset($employeeData['employee_id']))
|
if (isset($employeeData['employee_id']))
|
||||||
{
|
{
|
||||||
$this->myLogger->logme("error", "REST-AUTH-CONTROLLER - verifyEmployeeWithMobileNumber: Employee verified with ID = " . $employeeData['employee_id']);
|
$this->myLogger->logme("error", "REST-AUTH-CONTROLLER - verifyEmployeeWithMobileNumber: Employee verified with ID = " . $employeeData['employee_id']);
|
||||||
log_message('error', ' ');
|
log_message('error', ' ');
|
||||||
log_message('error', '************************ PRE END ********************************');
|
log_message('error', '************************ PRE END ********************************');
|
||||||
$result = ['user_verification' => true ,'message' => "Verified Successfully" ];
|
|
||||||
return $this->respond(['status' => 'success','code' => 200,'data' => $result],200);
|
$otp = random_int(100000, 999999);
|
||||||
|
$sql = "
|
||||||
|
UPDATE employees
|
||||||
|
INNER JOIN employee_polices ON employee_polices.employee_id = employees.id
|
||||||
|
SET employees.otp = ?
|
||||||
|
WHERE employees.id = ?
|
||||||
|
AND employees.relationship = 'self'
|
||||||
|
AND employees.is_active = 1
|
||||||
|
AND employee_polices.is_active = 1
|
||||||
|
AND employee_polices.status IN ('draft', 'enrolled')
|
||||||
|
";
|
||||||
|
|
||||||
|
$db = db_connect();
|
||||||
|
$update = $db->query($sql, [$otp, $employeeData['employee_id']]);
|
||||||
|
|
||||||
|
$this->myLogger->logme("error", "REST-AUTH-CONTROLLER - verifyEmployeeWithMobileNumber: OTP update query executed. SQL = " . $db->getLastQuery());
|
||||||
|
|
||||||
|
if($update)
|
||||||
|
{
|
||||||
|
//send sms
|
||||||
|
$SMSResult = sendOtpSms($mobile_number, $otp);
|
||||||
|
if ($SMSResult['status'] == 'success')
|
||||||
|
{
|
||||||
|
$result = ['user_verification' => true ,'message' => "Verified Successfully" ];
|
||||||
|
return $this->respond(['status' => 'success','code' => 200,'data' => $result],200);
|
||||||
|
}else{
|
||||||
|
$result = ['user_verification' => false, 'message' => "SMS sending failed , try again"];
|
||||||
|
return $this->respond(['status' => 'failed', 'code' => 404, 'data' => $result], 200);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
$this->myLogger->logme("error", "REST-AUTH-CONTROLLER - verifyEmployeeWithMobileNumber: Employee ID not found, calling third-party API to POST");
|
$this->myLogger->logme("error", "REST-AUTH-CONTROLLER - verifyEmployeeWithMobileNumber: Employee ID not found, calling third-party API to POST");
|
||||||
log_message('error', ' ');
|
log_message('error', ' ');
|
||||||
@ -208,22 +231,22 @@ class RestAuthenticationController extends AdminController
|
|||||||
|
|
||||||
$this->myLogger->logme("error", "REST-AUTH-CONTROLLER - verifyEmployeeWithEmailId: employee data both PRE & POST = " . json_encode($empdata));
|
$this->myLogger->logme("error", "REST-AUTH-CONTROLLER - verifyEmployeeWithEmailId: employee data both PRE & POST = " . json_encode($empdata));
|
||||||
|
|
||||||
$employeeData = $this->employeeModel->select('
|
// $employeeData = $this->employeeModel->select('
|
||||||
employees.relationship,
|
// employees.relationship,
|
||||||
EP.employee_id,
|
// EP.employee_id,
|
||||||
employees.client_id,
|
// employees.client_id,
|
||||||
employees.client_branch_id,
|
// employees.client_branch_id,
|
||||||
employees.email_corporate
|
// employees.email_corporate
|
||||||
|
|
||||||
')
|
// ')
|
||||||
->join('employee_polices EP', 'EP.employee_id = employees.id', 'inner')
|
// ->join('employee_polices EP', 'EP.employee_id = employees.id', 'inner')
|
||||||
->where('employees.is_active', 1)
|
// ->where('employees.is_active', 1)
|
||||||
->where('employees.relationship', 'Self')
|
// ->where('employees.relationship', 'Self')
|
||||||
->where('employees.emp_status !=', 'truncated')
|
// ->where('employees.emp_status !=', 'truncated')
|
||||||
->where('employees.email_corporate', $email)
|
// ->where('employees.email_corporate', $email)
|
||||||
->where('EP.is_active', 1)
|
// ->where('EP.is_active', 1)
|
||||||
->whereIn('EP.status', ['draft', 'enrolled', 'expired'])
|
// ->whereIn('EP.status', ['draft', 'enrolled', 'expired'])
|
||||||
->first();
|
// ->first();
|
||||||
|
|
||||||
$employeeData = [];
|
$employeeData = [];
|
||||||
if (isset($empdata['pre']) && !empty($empdata['pre'])) {
|
if (isset($empdata['pre']) && !empty($empdata['pre'])) {
|
||||||
|
|||||||
40
app/Helpers/sms_helper.php
Normal file
40
app/Helpers/sms_helper.php
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use CodeIgniter\Database\BaseConnection;
|
||||||
|
|
||||||
|
if (!function_exists('sendOtpSms')) {
|
||||||
|
|
||||||
|
|
||||||
|
function sendOtpSms(string $mobile, string $otp)
|
||||||
|
{
|
||||||
|
$apiKey = env('SMS_API_KEY');
|
||||||
|
$senderId = env('SMS_SENDER_ID');
|
||||||
|
$templateId = env('SMS_TEMPLATE_ID');
|
||||||
|
$serviceName = env('SMS_SERVICE_NAME');
|
||||||
|
$appName = env('SMS_APP_NAME');
|
||||||
|
|
||||||
|
// Replace variables {#var#}
|
||||||
|
$message = "Hi, Your One Time Code for logging into Nhance {$appName} App is {$otp}. Valid for 3 minutes. Please do not share this with anyone. -NHANCE";
|
||||||
|
|
||||||
|
// Build the API URL
|
||||||
|
$url = "https://smsapi.24x7sms.com/api_2.0/SendSMS.aspx?" . http_build_query([
|
||||||
|
'APIKEY' => $apiKey,
|
||||||
|
'MobileNo' => $mobile,
|
||||||
|
'SenderID' => $senderId,
|
||||||
|
'Message' => $message,
|
||||||
|
'ServiceName' => $serviceName,
|
||||||
|
'DLTTemplateID' => $templateId,
|
||||||
|
]);
|
||||||
|
|
||||||
|
// Send request
|
||||||
|
$response = @file_get_contents($url);
|
||||||
|
|
||||||
|
// If response failed
|
||||||
|
if ($response === FALSE) {
|
||||||
|
return ['status' => 'failed', 'message' => 'Failed to send SMS.'];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
return ['status' => 'success', 'message' => 'OTP sent successfully', 'api_response' => $response];
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue
Block a user