GWM : sms integration
This commit is contained in:
parent
3c5bca76f1
commit
7bb6b38087
@ -99,5 +99,5 @@ class Autoload extends AutoloadConfig
|
||||
* @var 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);
|
||||
}
|
||||
|
||||
|
||||
|
||||
$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 = [];
|
||||
if (isset($empdata['pre']) && !empty($empdata['pre'])) {
|
||||
$employeeData = $empdata['pre'];
|
||||
$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));
|
||||
|
||||
if (isset($employeeData['employee_id']))
|
||||
{
|
||||
{
|
||||
$this->myLogger->logme("error", "REST-AUTH-CONTROLLER - verifyEmployeeWithMobileNumber: Employee verified with ID = " . $employeeData['employee_id']);
|
||||
log_message('error', ' ');
|
||||
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 {
|
||||
$this->myLogger->logme("error", "REST-AUTH-CONTROLLER - verifyEmployeeWithMobileNumber: Employee ID not found, calling third-party API to POST");
|
||||
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));
|
||||
|
||||
$employeeData = $this->employeeModel->select('
|
||||
employees.relationship,
|
||||
EP.employee_id,
|
||||
employees.client_id,
|
||||
employees.client_branch_id,
|
||||
employees.email_corporate
|
||||
// $employeeData = $this->employeeModel->select('
|
||||
// employees.relationship,
|
||||
// EP.employee_id,
|
||||
// employees.client_id,
|
||||
// employees.client_branch_id,
|
||||
// employees.email_corporate
|
||||
|
||||
')
|
||||
->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.email_corporate', $email)
|
||||
->where('EP.is_active', 1)
|
||||
->whereIn('EP.status', ['draft', 'enrolled', 'expired'])
|
||||
->first();
|
||||
// ')
|
||||
// ->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.email_corporate', $email)
|
||||
// ->where('EP.is_active', 1)
|
||||
// ->whereIn('EP.status', ['draft', 'enrolled', 'expired'])
|
||||
// ->first();
|
||||
|
||||
$employeeData = [];
|
||||
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