diff --git a/app/Config/Autoload.php b/app/Config/Autoload.php index c80f6c1..ab4f04e 100755 --- a/app/Config/Autoload.php +++ b/app/Config/Autoload.php @@ -99,5 +99,5 @@ class Autoload extends AutoloadConfig * @var string[] * @phpstan-var list */ - 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']; } diff --git a/app/Controllers/RestAuthenticationController.php b/app/Controllers/RestAuthenticationController.php index 7f7aba7..6d1bd92 100755 --- a/app/Controllers/RestAuthenticationController.php +++ b/app/Controllers/RestAuthenticationController.php @@ -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'])) { diff --git a/app/Helpers/sms_helper.php b/app/Helpers/sms_helper.php new file mode 100644 index 0000000..c4fa87a --- /dev/null +++ b/app/Helpers/sms_helper.php @@ -0,0 +1,40 @@ + $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]; + } +}