From fa233c2bcb583e36b9340bc10c15f1a548ca9df3 Mon Sep 17 00:00:00 2001 From: Gowtham M Date: Thu, 9 Oct 2025 10:30:17 +0530 Subject: [PATCH] GWM : HR auth api --- .../RestAuthenticationController.php | 191 ++++++++---------- 1 file changed, 87 insertions(+), 104 deletions(-) diff --git a/app/Controllers/RestAuthenticationController.php b/app/Controllers/RestAuthenticationController.php index 6e3e3fb0..9c83bdfe 100755 --- a/app/Controllers/RestAuthenticationController.php +++ b/app/Controllers/RestAuthenticationController.php @@ -79,10 +79,6 @@ class RestAuthenticationController extends AdminController - - - - public function verifyEmployeeWithMobileNumber() { log_message('error', ' '); @@ -339,58 +335,7 @@ class RestAuthenticationController extends AdminController } - // public function updateEmpMPIN() - // { - // $requestData = $this->request->getJSON(); - // print_r($requestData); die; - // $mobile_number = $requestData->mobile_number ?? null; - // $email_id = $requestData->email_id ?? null; - // $new_mpin = $requestData->new_mpin ?? $requestData->mpin ?? null; - // $old_mpin = $requestData->old_mpin ?? null; - // $is_mpin_skipped = $requestData->is_mpin_skipped ?? null; - // $is_biometric_enabled = $requestData->is_biometric_enabled ?? null; - - // if (!$new_mpin) { - // return $this->response->setJSON(['status' => false, 'message' => 'MPIN is required.']); - // } - - // $query = $this->employeeModel->where('relationship', 'self'); - - // if ($mobile_number) { - // $query->where('mobile', $mobile_number); - // } elseif ($email_id) { - // $query->where('email_corporate', $email_id); - // } else { - // return $this->response->setJSON(['status' => false, 'message' => 'Mobile number or Email ID is required.']); - // } - - // if (!empty($old_mpin)) { - // $query->where('mpin', $old_mpin); - // } - - // // Fetch employee data - // $employeeData = $query->first(); - - // if (!$employeeData) { - // return $this->response->setJSON(['status' => false, 'message' => 'Employee not found or invalid MPIN.']); - // } - - // if(!empty($is_mpin_skipped) && !empty($is_biometric_enabled)){ - // $mpin_data_to_updata = [ - // 'mpin' => $new_mpin, - // 'is_mpin_skipped' => $is_mpin_skipped, - // 'is_biometric_enabled' => $is_biometric_enabled - // ]; - // }else{ - // $mpin_data_to_updata = ['mpin' => $new_mpin]; - // } - - // // Update MPIN - // $updated = $this->employeeModel->update($employeeData['id'], $mpin_data_to_updata); - - // return true; - // } - + public function updateEmpMPIN() { try { @@ -553,17 +498,43 @@ class RestAuthenticationController extends AdminController public function verifyHrWithMobileNumber() { try { - $mobile_number = $this->request->getJSON()->mobile_number; - + $data = $this->request->getJSON(); + + $mobile_number = $data->mobile_number; + $otp = $data->otp; + $HrData = $this->hrModel->where('mobile', $mobile_number) ->where('contact_type', 'client') ->where('is_active', 1) ->first(); - + + if ($HrData) { - $result = ['user_verification' => true ,'message' => "Verified Successfully"]; - return $this->respond(['status' => 'success','code' => 200,'data' => $result],200); + $sql = "UPDATE level_contacts SET otp = ? WHERE mobile = ? AND contact_type = 'client' AND is_active = 1"; + + $db = db_connect(); + $update = $db->query($sql, [$otp, $mobile_number]); + + 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 { + $result = ['user_verification' => false, 'message' => "SMS sending failed , try again"]; + return $this->respond(['status' => 'failed', 'code' => 404, 'data' => $result], 200); + } + } else { $result = ['user_verification' => false , 'message' => "User not found"]; return $this->respond(['status' => 'failed','code' => 404,'data' => $result],200); @@ -581,6 +552,7 @@ class RestAuthenticationController extends AdminController $data = $this->request->getJSON(); $email = $data->email; + $otp = $data->otp; $HrData = $this->hrModel->where('email', $email) ->where('contact_type', 'client') @@ -588,8 +560,6 @@ class RestAuthenticationController extends AdminController ->first(); if ($HrData) { - - $otp = random_int(100000, 999999); $sql = " UPDATE level_contacts @@ -604,7 +574,7 @@ class RestAuthenticationController extends AdminController if($update) { - $data->otp = $otp; + $common = [ 'login_type' => 'HR login', @@ -637,39 +607,53 @@ class RestAuthenticationController extends AdminController return $this->respond(['status' => 'failed','code' => 500,'data' => $th],500); } } - + public function updateHROTP() { - - $email = $this->request->getJSON()->email; - $otp = $this->request->getJSON()->otp; - - $this->hrModel->where('email', $email) ->where('contact_type', 'client') - ->where('is_active', 1)->set(array('otp' => $otp)) - ->update(); + + $email = $this->request->getJSON()->email ?? null; + $mobile_number = $this->request->getJSON()->mobile_number ?? null; + $otp = $this->request->getJSON()->otp ?? null; - return true; + + $builder = $this->hrModel + ->where('contact_type', 'client') + ->where('is_active', 1); + + if (!empty($email)) { + $builder->where('email', $email); + } elseif (!empty($mobile_number)) { + $builder->where('mobile', $mobile_number); + } + + $builder->set(['otp' => $otp])->update(); + + if ($this->hrModel->db->affectedRows() > 0) { + return true; + } + + } + + public function getVerifiedHrData() { - // try { - // mobile number - $otp_verification = isset($this->request->getJSON()->otp_verification) ? $this->request->getJSON()->otp_verification : null; - $mobile_number = isset($this->request->getJSON()->mobile_no) ? $this->request->getJSON()->mobile_no : null; - // email id + try { + $otp = isset($this->request->getJSON()->otp) ? $this->request->getJSON()->otp : null; $email = isset($this->request->getJSON()->email) ? $this->request->getJSON()->email : null; + $mobile_number = isset($this->request->getJSON()->mobile_no) ? $this->request->getJSON()->mobile_no : null; if (isset($mobile_number)) { - $hrData = $this->hrModel->where('mobile', $mobile_number)->where('contact_type', 'client')->first(); + $hrData = $this->hrModel->where('mobile', $mobile_number)->where('contact_type', 'client')->where('otp', $otp)->first(); }else{ $hrData = $this->hrModel->where('email', $email)->where('contact_type', 'client')->where('otp', $otp)->first(); } - if ($hrData && $otp_verification == true || $hrData && isset($this->request->getJSON()->otp) ) + if ($hrData) { $auth = HttpRequestHelper::getRequestInfo(); @@ -689,23 +673,25 @@ class RestAuthenticationController extends AdminController if(isset($this->request->getJSON()->mobile_no)){ - $getAllhrData = $this->hrModel->select('level_contacts.id ,level_contacts.mobile , level_contacts.email , clients.id as client_id, clients.client_name, clients.short_name , client_branch.id as client_branch_id,client_branch.branch_name, client_branch.pre_branch_id') + $getAllhrData = $this->hrModel->select('level_contacts.id ,level_contacts.mobile , level_contacts.email , clients.id as client_id, clients.client_name, clients.short_name , client_branch.id as client_branch_id,client_branch.branch_name , client_branch.post_branch_id') ->join('client_branch', 'level_contacts.ref_id = client_branch.id', 'left') ->join('clients', 'client_branch.client_id = clients.id', 'left') ->where('level_contacts.mobile', $mobile_number ) ->where('level_contacts.contact_type', 'client') ->findAll(); + //set otp value null + $this->hrModel->where('mobile', $mobile_number)->where('otp', $otp)->where('contact_type', 'client')->set(['otp'=>null])->update(); - }else if(isset($this->request->getJSON()->otp)){ + }else if(isset($this->request->getJSON()->email)){ + $getAllhrData = $this->hrModel->select('level_contacts.id ,level_contacts.mobile , level_contacts.email , clients.id as client_id, clients.client_name, clients.short_name , client_branch.id as client_branch_id,client_branch.branch_name , client_branch.post_branch_id') + ->join('client_branch', 'level_contacts.ref_id = client_branch.id', 'left') + ->join('clients', 'client_branch.client_id = clients.id', 'left') + ->where('level_contacts.email', $email ) + ->where('level_contacts.contact_type', 'client') + ->findAll(); + //set otp value null $this->hrModel->where('email', $email)->where('otp', $otp)->where('contact_type', 'client')->set(['otp'=>null])->update(); - - $getAllhrData = $this->hrModel->select('level_contacts.id ,level_contacts.mobile , level_contacts.email , clients.id as client_id, clients.client_name, clients.short_name , client_branch.id as client_branch_id,client_branch.branch_name, client_branch.pre_branch_id') - ->join('client_branch', 'level_contacts.ref_id = client_branch.id', 'left') - ->join('clients', 'client_branch.client_id = clients.id', 'left') - ->where('level_contacts.email', $email ) - ->where('level_contacts.contact_type', 'client') - ->findAll(); } if(count($getAllhrData)) @@ -734,29 +720,26 @@ class RestAuthenticationController extends AdminController } } + + return $this->respond(['status' => 'success','code' => 200,'data' => $getAllhrData ],200); + + }else { + + return $this->respond(['status' => 'failed','code' => 404,'data' => "" , 'message' => 'User not found' ],200); } - return $this->respond(['status' => 'success','code' => 200,'data' => $getAllhrData ],200); - - - // $HRAccessData = $this->getHRAccessData( $hrData['0']['id'] , 'post_enrollment'); - - // if(isset($HRAccessData['allowed_modules'])){ $hrData['0']['allowed_modules'] = json_decode($HRAccessData['allowed_modules'],true)['post']; }else{ $hrData['0']['allowed_modules'] = []; } - - // $hrData['0']['token_type'] = 'post'; - // $result = JWTToken::encode($hrData['0']); - - // return $this->respond(['status' => 'success','code' => 200,'data' => $result ],200); + + } else { - return $this->respond(['status' => 'failed','code' => 404,'data' => "" ],200); + return $this->respond(['status' => 'failed','code' => 404,'data' => "" , 'message' => 'User not found' ],200); } - // } catch (\Exception $e) { - // return $this->respond(['status' => 'failed','code' => 500,'data' => $e->getMessage()],500); - // } + } catch (\Exception $e) { + return $this->respond(['status' => 'failed','code' => 500,'data' => $e->getMessage()],500); + } }