FEAT_REST_AUTH_HELPER_AND_MPIN_CHANGES : RV
This commit is contained in:
parent
1be1f421ab
commit
8784c20bf6
@ -1075,6 +1075,7 @@ class EmployeeRestController extends AdminController
|
||||
return $this->respond(['status' => 'failed', 'code' => 404, 'message' => "Client id and Client Policy id is Not Match!" ], 404);
|
||||
}
|
||||
} catch (\Exception $e) {
|
||||
$this->myLogger->logme("error", ($e->getMessage().' --- '.$e->getLine()));
|
||||
return $this->respond(['status' => 'failed','code' => 500,'data' => $e->getMessage()], 500);
|
||||
}
|
||||
|
||||
|
||||
@ -9,6 +9,7 @@ use App\Controllers\LoginController;
|
||||
use App\Helpers\DepositHelper;
|
||||
use App\Helpers\JWTToken;
|
||||
use App\Helpers\HttpRequestHelper;
|
||||
use App\Helpers\RestAuthHelper;
|
||||
|
||||
use CodeIgniter\HTTP\IncomingRequest;
|
||||
use CodeIgniter\HTTP\RequestInterface;
|
||||
@ -96,6 +97,12 @@ class RestAuthenticationController extends AdminController
|
||||
try {
|
||||
$mobile_number = $this->request->getJSON()->mobile_number;
|
||||
|
||||
$empdata = RestAuthHelper::getPreAndPostDataByEmailOrMobile(['mobile_number' => $mobile_number]);
|
||||
|
||||
if(empty($empdata)){
|
||||
$result = ['user_verification' => false , 'message' => "User not found"];
|
||||
return $this->respond(['status' => 'failed','code' => 404,'data' => $result],200);
|
||||
}
|
||||
|
||||
$employeeData = $this->employeeModel->select('employees.relationship,EP.employee_id')
|
||||
->join('employee_polices EP', 'EP.employee_id = employees.id', 'inner')
|
||||
@ -106,8 +113,14 @@ class RestAuthenticationController extends AdminController
|
||||
->where('EP.is_active', 1)
|
||||
->whereIn('EP.status', ['draft', 'enrolled', 'expired'])
|
||||
->first();
|
||||
|
||||
|
||||
|
||||
$employeeData = [];
|
||||
if (isset($empdata['pre']) && !empty($empdata['pre'])) {
|
||||
$employeeData = $empdata['pre'];
|
||||
} elseif (isset($empdata['post']) && !empty($empdata['post'])) {
|
||||
$employeeData = $empdata['post'];
|
||||
}
|
||||
|
||||
|
||||
if (isset($employeeData['employee_id']))
|
||||
{
|
||||
@ -116,7 +129,6 @@ class RestAuthenticationController extends AdminController
|
||||
} else {
|
||||
// Call the third-party API function
|
||||
return $this->callThirdPartyAPI($this->request->getJSON(),'verifyEmployeeNumber');
|
||||
|
||||
}
|
||||
} catch (\Throwable $th) {
|
||||
return $this->respond(['status' => 'failed','code' => 500,'data' => $th],500);
|
||||
@ -128,9 +140,16 @@ class RestAuthenticationController extends AdminController
|
||||
try {
|
||||
|
||||
$data = $this->request->getJSON();
|
||||
|
||||
$email = $data->email;
|
||||
|
||||
$empdata = RestAuthHelper::getPreAndPostDataByEmailOrMobile(['email_id' => $email]);
|
||||
// print_r($empdata); die;
|
||||
|
||||
if(empty($empdata)){
|
||||
$result = ['user_verification' => false , 'message' => "User not found"];
|
||||
return $this->respond(['status' => 'failed','code' => 404,'data' => $result],200);
|
||||
}
|
||||
|
||||
$employeeData = $this->employeeModel->select('
|
||||
employees.relationship,
|
||||
EP.employee_id,
|
||||
@ -146,7 +165,13 @@ class RestAuthenticationController extends AdminController
|
||||
->where('employees.email_corporate', $email)
|
||||
->where('EP.is_active', 1)
|
||||
->whereIn('EP.status', ['draft', 'enrolled', 'expired'])
|
||||
->first();
|
||||
->first();
|
||||
|
||||
$employeeData = [];
|
||||
if (isset($empdata['pre']) && !empty($empdata['pre'])) {
|
||||
$employeeData = $empdata['pre'];
|
||||
}
|
||||
|
||||
|
||||
if (isset($employeeData['employee_id'])) {
|
||||
|
||||
@ -160,7 +185,7 @@ class RestAuthenticationController extends AdminController
|
||||
UPDATE employees
|
||||
INNER JOIN employee_polices ON employee_polices.employee_id = employees.id
|
||||
SET employees.otp = ?
|
||||
WHERE employees.email_corporate = ?
|
||||
WHERE employees.id = ?
|
||||
AND employees.relationship = 'self'
|
||||
AND employees.is_active = 1
|
||||
AND employee_polices.is_active = 1
|
||||
@ -168,12 +193,17 @@ class RestAuthenticationController extends AdminController
|
||||
";
|
||||
|
||||
$db = db_connect();
|
||||
$update = $db->query($sql, [$otp, $email]);
|
||||
// $update = $db->query($sql, [$otp, $email]);
|
||||
$update = $db->query($sql, [$otp, $employeeData['employee_id']]);
|
||||
|
||||
|
||||
if($update)
|
||||
{
|
||||
$data->otp = $otp;
|
||||
if (isset($empdata['post']['client_id']) && !empty($empdata['post']['client_id'])) {
|
||||
$data->client_id = $empdata['post']['client_id'];
|
||||
$data->employee_id = $empdata['post']['employee_id'];
|
||||
}
|
||||
$this->callThirdPartyAPI($data, 'updateEmpOTP');
|
||||
|
||||
|
||||
@ -203,10 +233,17 @@ class RestAuthenticationController extends AdminController
|
||||
return $this->respond(['status' => 'failed', 'code' => 404, 'data' => $result], 200);
|
||||
}
|
||||
} else {
|
||||
|
||||
$apiParams = $this->request->getJSON();
|
||||
if (!empty($empdata['post']['client_id'])) {
|
||||
$apiParams->client_id = $empdata['post']['client_id'];
|
||||
}
|
||||
// print_r($apiParams); die;
|
||||
// Call the third-party API function
|
||||
return $this->callThirdPartyAPI($this->request->getJSON(), 'verifyEmployeeEmailId');
|
||||
return $this->callThirdPartyAPI($apiParams, 'verifyEmployeeEmailId');
|
||||
}
|
||||
} catch (\Throwable $th) {
|
||||
$this->myLogger->logme("error", ($th->getMessage().' --- '.$th->getLine()));
|
||||
return $this->respond(['status' => 'failed', 'code' => 500, 'data' => $th], 500);
|
||||
}
|
||||
}
|
||||
@ -225,6 +262,14 @@ class RestAuthenticationController extends AdminController
|
||||
{
|
||||
$employeeData = $this->employeeModel->where('id', $this->request->getJSON()->employee_id)->where('relationship', 'self')->where('emp_status !=', 'truncated')->where('is_active', 1)->first();
|
||||
}else{
|
||||
|
||||
$empdata = RestAuthHelper::getPreAndPostDataByEmailOrMobile(['email_id' => $email_id, 'otp' => $otp ]);
|
||||
// print_r($empdata); die;
|
||||
|
||||
if(empty($empdata)){
|
||||
return $this->respond(['status' => 'failed','code' => 404,'data' => "Invalid OTP"],200);
|
||||
}
|
||||
|
||||
if (isset($mobile_number))
|
||||
{
|
||||
// $employeeData = $this->employeeModel->where('mobile', $mobile_number)->where('relationship', 'self')->where('emp_status !=', 'truncated')->where('is_active', 1)->first();
|
||||
@ -254,9 +299,22 @@ class RestAuthenticationController extends AdminController
|
||||
->orderBy('id', 'desc')
|
||||
->first();
|
||||
}
|
||||
|
||||
$employeeData = [];
|
||||
if (isset($empdata['pre']) && !empty($empdata['pre'])) {
|
||||
$employeeData = $empdata['pre'];
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
$requestData = $this->request->getJSON();
|
||||
if (isset($empdata['post']['client_id']) && !empty($empdata['post']['client_id'])) {
|
||||
$requestData->client_id = $empdata['post']['client_id'];
|
||||
$requestData->employee_id = $empdata['post']['employee_id'];
|
||||
}
|
||||
|
||||
// print_r($requestData); die;
|
||||
|
||||
if ($employeeData && $otp_verification == true || $employeeData && isset($this->request->getJSON()->login_by_hr) || $employeeData && isset($this->request->getJSON()->otp) )
|
||||
{
|
||||
$auth = HttpRequestHelper::getRequestInfo();
|
||||
@ -271,7 +329,8 @@ class RestAuthenticationController extends AdminController
|
||||
$this->authHistoryModel->insert($data);
|
||||
}
|
||||
|
||||
|
||||
// print_r($employeeData); die;
|
||||
unset($employeeData['employee_id']);
|
||||
$result = JWTToken::encode($employeeData);
|
||||
|
||||
if(isset($this->request->getJSON()->otp)){
|
||||
@ -279,17 +338,18 @@ class RestAuthenticationController extends AdminController
|
||||
}
|
||||
|
||||
// Call the third-party API function
|
||||
$apiResponse = $this->callThirdPartyAPI($this->request->getJSON(),'getVerifiedUserData');
|
||||
$apiResponse = $this->callThirdPartyAPI($requestData,'getVerifiedUserData');
|
||||
return $this->respond(['status' => 'success','code' => 200,'data' => $result , 'post_enrollment'=> json_decode($apiResponse, true)],200);
|
||||
|
||||
} else {
|
||||
|
||||
// Call the third-party API function
|
||||
$apiResponse = $this->callThirdPartyAPI($this->request->getJSON(),'getVerifiedUserData');
|
||||
$apiResponse = $this->callThirdPartyAPI($requestData,'getVerifiedUserData');
|
||||
return $this->respond(['status' => 'failed','code' => 404,'data' => "Invalid OTP" , 'post_enrollment'=> json_decode($apiResponse, true)],200);
|
||||
|
||||
}
|
||||
} catch (\Exception $e) {
|
||||
$this->myLogger->logme("error", ($e->getMessage().' --- '.$e->getLine()));
|
||||
return $this->respond(['status' => 'failed','code' => 500,'data' => $e->getMessage()],500);
|
||||
}
|
||||
}
|
||||
@ -497,6 +557,14 @@ class RestAuthenticationController extends AdminController
|
||||
$mobile_number = isset($this->request->getJSON()->mobile_number) ? $this->request->getJSON()->mobile_number : null;
|
||||
$email_id = isset($this->request->getJSON()->email_id) ? $this->request->getJSON()->email_id : null;
|
||||
|
||||
$empdata = RestAuthHelper::getPreAndPostDataByEmailOrMobile(['email_id' => $email_id, 'mobile_number' => $mobile_number ]);
|
||||
// print_r($empdata); die;
|
||||
|
||||
if(empty($empdata)){
|
||||
$result = ['user_verification' => false , 'message' => "User not found"];
|
||||
return $this->respond(['status' => 'failed','code' => 404,'data' => $result],200);
|
||||
}
|
||||
|
||||
if (isset($mobile_number)) {
|
||||
// $employeeData = $this->employeeModel->where('mobile', $mobile_number)->where('relationship', 'self')->first();
|
||||
$employeeData = $this->employeeModel
|
||||
@ -525,6 +593,11 @@ class RestAuthenticationController extends AdminController
|
||||
->first();
|
||||
}
|
||||
|
||||
$employeeData = [];
|
||||
if (isset($empdata['pre']) && !empty($empdata['pre'])) {
|
||||
$employeeData = $empdata['pre'];
|
||||
}
|
||||
|
||||
$mpin = $this->request->getJSON()->mpin;
|
||||
$is_mpin_skipped = $this->request->getJSON()->is_mpin_skipped;
|
||||
$is_biometric_enabled = $this->request->getJSON()->is_biometric_enabled;
|
||||
@ -534,12 +607,18 @@ class RestAuthenticationController extends AdminController
|
||||
'is_mpin_skipped' => $is_mpin_skipped,
|
||||
'is_biometric_enabled' => $is_biometric_enabled
|
||||
];
|
||||
|
||||
$requestData = $this->request->getJSON();
|
||||
if (isset($empdata['post']['client_id']) && !empty($empdata['post']['client_id'])) {
|
||||
$requestData->client_id = $empdata['post']['client_id'];
|
||||
$requestData->employee_id = $empdata['post']['employee_id'];
|
||||
}
|
||||
|
||||
if ($employeeData) {
|
||||
$id= $employeeData["id"];
|
||||
$updateMpin = $this->employeeModel->where('id', $id)->set($mpin_data_to_updata)->update();
|
||||
if($updateMpin){
|
||||
$this->callThirdPartyAPI($this->request->getJSON(), 'saveMpin');
|
||||
$this->callThirdPartyAPI($requestData, 'saveMpin');
|
||||
$result = ['user_verification' => true , 'message' => "Mpin Updated"];
|
||||
return $this->respond(['status' => 'success','code' => 200,'data' => $result],200);
|
||||
}else{
|
||||
@ -550,10 +629,11 @@ class RestAuthenticationController extends AdminController
|
||||
|
||||
} else {
|
||||
|
||||
return $this->callThirdPartyAPI($this->request->getJSON(), 'saveMpin');
|
||||
return $this->callThirdPartyAPI($requestData, 'saveMpin');
|
||||
}
|
||||
|
||||
} catch (\Throwable $th) {
|
||||
$this->myLogger->logme("error", ($th->getMessage().' --- '.$th->getLine()));
|
||||
return $this->respond(['status' => 'failed','code' => 500,'data' => $th],500);
|
||||
}
|
||||
}
|
||||
@ -567,6 +647,14 @@ class RestAuthenticationController extends AdminController
|
||||
$old_mpin = $this->request->getJSON()->old_mpin;
|
||||
$mpin = $this->request->getJSON()->new_mpin;
|
||||
|
||||
$empdata = RestAuthHelper::getPreAndPostDataByEmailOrMobile(['email_id' => $email_id, 'mobile_number' => $mobile_number, 'old_mpin' => $old_mpin ]);
|
||||
// print_r($empdata); die;
|
||||
|
||||
if(empty($empdata)){
|
||||
$result = ['user_verification' => false , 'message' => "User not found"];
|
||||
return $this->respond(['status' => 'failed','code' => 404,'data' => $result],200);
|
||||
}
|
||||
|
||||
if (isset($mobile_number)) {
|
||||
// $employeeData = $this->employeeModel->where('mobile', $mobile_number)->where('mpin', $old_mpin)->where('relationship', 'self')->first();
|
||||
$employeeData = $this->employeeModel
|
||||
@ -597,13 +685,22 @@ class RestAuthenticationController extends AdminController
|
||||
->first();
|
||||
}
|
||||
|
||||
|
||||
$employeeData = [];
|
||||
if (isset($empdata['pre']) && !empty($empdata['pre'])) {
|
||||
$employeeData = $empdata['pre'];
|
||||
}
|
||||
|
||||
$requestData = $this->request->getJSON();
|
||||
if (isset($empdata['post']['client_id']) && !empty($empdata['post']['client_id'])) {
|
||||
$requestData->client_id = $empdata['post']['client_id'];
|
||||
}
|
||||
|
||||
|
||||
if ($employeeData) {
|
||||
$id= $employeeData["id"];
|
||||
$updateMpin = $this->employeeModel->where('id', $id)->set('mpin', $mpin)->update();
|
||||
if($updateMpin){
|
||||
$this->callThirdPartyAPI($this->request->getJSON(), 'updateMpin');
|
||||
$this->callThirdPartyAPI($requestData, 'updateMpin');
|
||||
$result = ['mpin_verification' => true , 'message' => "Mpin Updated"];
|
||||
return $this->respond(['status' => 'success','code' => 200,'data' => $result],200);
|
||||
}else{
|
||||
@ -613,10 +710,11 @@ class RestAuthenticationController extends AdminController
|
||||
|
||||
|
||||
} else {
|
||||
return $this->callThirdPartyAPI($this->request->getJSON(), 'updateMpin');
|
||||
return $this->callThirdPartyAPI($requestData, 'updateMpin');
|
||||
|
||||
}
|
||||
} catch (\Throwable $th) {
|
||||
$this->myLogger->logme("error", ($th->getMessage().' --- '.$th->getLine()));
|
||||
return $this->respond(['status' => 'failed','code' => 500,'data' => $th],500);
|
||||
}
|
||||
}
|
||||
@ -629,6 +727,13 @@ class RestAuthenticationController extends AdminController
|
||||
$email_id = isset($this->request->getJSON()->email_id) ? $this->request->getJSON()->email_id : null;
|
||||
$mpin = $this->request->getJSON()->mpin;
|
||||
|
||||
$empdata = RestAuthHelper::getPreAndPostDataByEmailOrMobile(['email_id' => $email_id, 'mobile_number' => $mobile_number]);
|
||||
// print_r($empdata); die;
|
||||
|
||||
if(empty($empdata)){
|
||||
return $this->respond(['status' => 'failed', 'code' => 404, 'data' => 'Invalid MPIN'], 200);
|
||||
}
|
||||
|
||||
if (isset($mobile_number)) {
|
||||
// $employeeData = $this->employeeModel->where('mobile', $mobile_number)->where('relationship', 'self')->first();
|
||||
$employeeData = $this->employeeModel
|
||||
@ -657,6 +762,17 @@ class RestAuthenticationController extends AdminController
|
||||
->first();
|
||||
}
|
||||
|
||||
$employeeData = [];
|
||||
if (isset($empdata['pre']) && !empty($empdata['pre'])) {
|
||||
$employeeData = $empdata['pre'];
|
||||
}
|
||||
|
||||
$requestData = $this->request->getJSON();
|
||||
if (isset($empdata['post']['client_id']) && !empty($empdata['post']['client_id'])) {
|
||||
$requestData->client_id = $empdata['post']['client_id'];
|
||||
}
|
||||
|
||||
|
||||
if ($employeeData && $mpin == $employeeData["mpin"]) {
|
||||
$auth = HttpRequestHelper::getRequestInfo();
|
||||
if ($auth) {
|
||||
@ -671,22 +787,25 @@ class RestAuthenticationController extends AdminController
|
||||
$authdata = $this->authHistoryModel->insert($data);
|
||||
}
|
||||
|
||||
unset($employeeData['employee_id']);
|
||||
$result = JWTToken::encode($employeeData);
|
||||
// Call the third-party API function
|
||||
$apiResponse = $this->callThirdPartyAPI($this->request->getJSON(), 'verifyMpin');
|
||||
$apiResponse = $this->callThirdPartyAPI($requestData, 'verifyMpin');
|
||||
return $this->respond(['status' => 'success', 'code' => 200, 'data' => $result, 'post_enrollment' => json_decode($apiResponse, true)], 200);
|
||||
} else {
|
||||
|
||||
// Call the third-party API function
|
||||
|
||||
$apiResponse = $this->callThirdPartyAPI($this->request->getJSON(), 'verifyMpin');
|
||||
$apiResponse = $this->callThirdPartyAPI($requestData, 'verifyMpin');
|
||||
return $this->respond(['status' => 'failed', 'code' => 404, 'data' => "Invalid OTP", 'post_enrollment' => json_decode($apiResponse, true)], 200);
|
||||
|
||||
//$apiResponse = $this->callThirdPartyAPI($this->request->getJSON(),'/getVerifiedUserData');
|
||||
// return $this->respond(['status' => 'failed','code' => 404,'data' => "Invalid OTP", 'post_enrollment'=> json_decode($apiResponse, true)],200);
|
||||
|
||||
}
|
||||
|
||||
} catch (\Exception $e) {
|
||||
$this->myLogger->logme("error", ($e->getMessage().' --- '.$e->getLine()));
|
||||
return $this->respond(['status' => 'failed', 'code' => 500, 'data' => $e->getMessage()], 500);
|
||||
return $this->respond(['status' => 'failed', 'code' => 200, 'post_enrollment' => json_decode($apiResponse, true)], 200);
|
||||
}
|
||||
@ -698,6 +817,14 @@ class RestAuthenticationController extends AdminController
|
||||
$mobile_number = isset($this->request->getJSON()->mobile_number) ? $this->request->getJSON()->mobile_number : null;
|
||||
$email_id = isset($this->request->getJSON()->email_id) ? $this->request->getJSON()->email_id : null;
|
||||
|
||||
$empdata = RestAuthHelper::getPreAndPostDataByEmailOrMobile(['email_id' => $email_id, 'mobile_number' => $mobile_number]);
|
||||
// print_r($empdata); die;
|
||||
|
||||
if(empty($empdata)){
|
||||
return $this->respond(['status' => 'failed','code' => 404,'data' => "Mpin - not found", 'Mpin' =>null],200);
|
||||
}
|
||||
|
||||
|
||||
if (isset($mobile_number))
|
||||
{
|
||||
// $employeeData = $this->employeeModel->where('mobile', $mobile_number)->where('relationship', 'self')->first();
|
||||
@ -726,16 +853,29 @@ class RestAuthenticationController extends AdminController
|
||||
->orderBy('id', 'desc')
|
||||
->first();
|
||||
}
|
||||
|
||||
|
||||
$employeeData = [];
|
||||
if (isset($empdata['pre']) && !empty($empdata['pre'])) {
|
||||
$employeeData = $empdata['pre'];
|
||||
}
|
||||
|
||||
$requestData = $this->request->getJSON();
|
||||
if (isset($empdata['post']['client_id']) && !empty($empdata['post']['client_id'])) {
|
||||
$requestData->client_id = $empdata['post']['client_id'];
|
||||
}
|
||||
|
||||
|
||||
if ($employeeData && $employeeData["mpin"] != null) {
|
||||
|
||||
return $this->respond(['status' => 'success','code' => 200,'data' => "Mpin - exist" , 'Mpin' =>$employeeData["mpin"], 'is_mpin_skipped' => $employeeData['is_mpin_skipped'], 'is_biometric_enabled' => $employeeData['is_biometric_enabled']],200);
|
||||
} else {
|
||||
// return $this->respond(['status' => 'failed','code' => 404,'data' => "Mpin - not found", 'Mpin' =>null],200);
|
||||
return $this->callThirdPartyAPI($this->request->getJSON(), 'checkMpin');
|
||||
return $this->callThirdPartyAPI($requestData, 'checkMpin');
|
||||
|
||||
}
|
||||
} catch (\Exception $e) {
|
||||
$this->myLogger->logme("error", ($e->getMessage().' --- '.$e->getLine()));
|
||||
return $this->respond(['status' => 'failed','code' => 500,'data' => $e->getMessage()],500);
|
||||
}
|
||||
}
|
||||
@ -761,6 +901,13 @@ class RestAuthenticationController extends AdminController
|
||||
], 400);
|
||||
}
|
||||
|
||||
$empdata = RestAuthHelper::getPreAndPostDataByEmailOrMobile(['email_id' => $email_id, 'mobile_number' => $mobile_number]);
|
||||
// print_r($empdata); die;
|
||||
|
||||
if(empty($empdata)){
|
||||
return $this->respond(['status' => 'failed','code' => 404,'data' => "Mpin - not found", 'Mpin' =>null],200);
|
||||
}
|
||||
|
||||
// Step 2: Fetch employee data
|
||||
if ($mobile_number) {
|
||||
log_message('info', 'Looking up employee by mobile number: ' . $mobile_number);
|
||||
@ -790,6 +937,15 @@ class RestAuthenticationController extends AdminController
|
||||
->first();
|
||||
}
|
||||
|
||||
$employeeData = [];
|
||||
if (isset($empdata['pre']) && !empty($empdata['pre'])) {
|
||||
$employeeData = $empdata['pre'];
|
||||
}
|
||||
|
||||
if (isset($empdata['post']['client_id']) && !empty($empdata['post']['client_id'])) {
|
||||
$json->client_id = $empdata['post']['client_id'];
|
||||
}
|
||||
|
||||
// Step 3: Found employee
|
||||
if (!empty($employeeData)) {
|
||||
log_message('info', 'Employee found: ID = ' . $employeeData['id']);
|
||||
@ -829,7 +985,7 @@ class RestAuthenticationController extends AdminController
|
||||
return $this->callThirdPartyAPI($json, 'forgotMPIN');
|
||||
}
|
||||
} catch (\Throwable $e) {
|
||||
log_message('error', 'Exception in forgotMPIN(): ' . $e->getMessage());
|
||||
$this->myLogger->logme("error", ($e->getMessage().' --- '.$e->getLine()));
|
||||
return $this->respond([
|
||||
'status' => 'failed',
|
||||
'code' => 500,
|
||||
|
||||
171
app/Helpers/RestAuthHelper.php
Normal file
171
app/Helpers/RestAuthHelper.php
Normal file
@ -0,0 +1,171 @@
|
||||
<?php
|
||||
|
||||
namespace App\Helpers;
|
||||
|
||||
use App\Models\ClientModel;
|
||||
use App\Models\ClientPolicyModel;
|
||||
use App\Models\EmployeeModel;
|
||||
use App\Models\EmployeePolicyModel;
|
||||
|
||||
|
||||
class RestAuthHelper
|
||||
{
|
||||
public static function getPreAndPostDataByEmailOrMobile($params)
|
||||
{
|
||||
// print_r($params); die;
|
||||
$mobile_number = $params['mobile_number'] ?? null;
|
||||
$email_id = $params['email_id'] ?? null;
|
||||
$otp = $params['otp'] ?? null;
|
||||
$old_mpin = $params['$old_mpin'] ?? null;
|
||||
|
||||
// Return null if both inputs are empty
|
||||
if (empty($mobile_number) && empty($email_id)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
$params = [
|
||||
'mobile_number' => $mobile_number,
|
||||
'email_id' => $email_id,
|
||||
'otp' => $otp,
|
||||
'$old_mpin' => $old_mpin,
|
||||
];
|
||||
|
||||
$pre_data = self::getPreEmployeeData($params);
|
||||
$post_data = self::getPostEmployeeData($params);
|
||||
|
||||
// Return empty array if both are missing
|
||||
if (empty($pre_data) && empty($post_data)) {
|
||||
return [];
|
||||
}
|
||||
|
||||
// Determine the latest record
|
||||
$latest_key = null;
|
||||
if (!empty($pre_data) && !empty($post_data)) {
|
||||
$latest_key = strtotime($pre_data['created_at']) > strtotime($post_data['created_at']) ? 'pre' : 'post';
|
||||
} elseif (!empty($pre_data)) {
|
||||
$latest_key = 'pre';
|
||||
} elseif (!empty($post_data)) {
|
||||
$latest_key = 'post';
|
||||
}
|
||||
|
||||
// Compare client_short_name only if both records exist
|
||||
if (!empty($pre_data) && !empty($post_data)) {
|
||||
$latest_data = $latest_key === 'pre' ? $pre_data : $post_data;
|
||||
$other_data = $latest_key === 'pre' ? $post_data : $pre_data;
|
||||
|
||||
if ($latest_data['client_short_name'] === $other_data['client_short_name']) {
|
||||
return [
|
||||
'pre' => $pre_data,
|
||||
'post' => $post_data,
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
// If one of the data is missing or client names mismatch
|
||||
return [
|
||||
'pre' => $latest_key === 'pre' ? $pre_data : [],
|
||||
'post' => $latest_key === 'post' ? $post_data : [],
|
||||
];
|
||||
}
|
||||
|
||||
public static function getPreEmployeeData(array $params)
|
||||
{
|
||||
$employeeModel = new EmployeeModel();
|
||||
|
||||
$mobile_number = $params['mobile_number'] ?? null;
|
||||
$email_id = $params['email_id'] ?? null;
|
||||
$otp = $params['otp'] ?? null;
|
||||
$old_mpin = $params['old_mpin'] ?? null;
|
||||
|
||||
if (!empty($mobile_number)) {
|
||||
$builder = $employeeModel
|
||||
->select('employees.id as employee_id, employees.*')
|
||||
->join('employee_polices EP', 'EP.employee_id = employees.id', 'inner')
|
||||
->where('employees.is_active', 1)
|
||||
->where("TRIM(employees.relationship) = 'self'", null, false)
|
||||
->whereIn('employees.emp_status', ['draft', 'enrolled'])
|
||||
->where('employees.mobile', $mobile_number)
|
||||
->where('EP.is_active', 1)
|
||||
->whereIn('EP.status', ['draft', 'enrolled']);
|
||||
|
||||
if (!empty($old_mpin)) {
|
||||
$builder->where('employees.mpin', $old_mpin);
|
||||
}
|
||||
|
||||
$employeeData = $builder->orderBy('employees.id', 'desc')->first();
|
||||
|
||||
} elseif (!empty($email_id)) {
|
||||
$builder = $employeeModel
|
||||
->select('employees.id as employee_id, employees.*')
|
||||
->join('employee_polices EP', 'EP.employee_id = employees.id', 'inner')
|
||||
->where('employees.is_active', 1)
|
||||
->where("TRIM(employees.relationship) = 'self'", null, false)
|
||||
->whereIn('employees.emp_status', ['draft', 'enrolled'])
|
||||
->where('employees.email_corporate', $email_id)
|
||||
->where('EP.is_active', 1)
|
||||
->whereIn('EP.status', ['draft', 'enrolled']);
|
||||
|
||||
if (!empty($otp)) {
|
||||
$builder->where('employees.otp', $otp);
|
||||
}
|
||||
|
||||
if (!empty($old_mpin)) {
|
||||
$builder->where('employees.mpin', $old_mpin);
|
||||
}
|
||||
|
||||
$employeeData = $builder->orderBy('employees.id', 'desc')->first();
|
||||
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
|
||||
if($employeeData){
|
||||
$clientModel = new ClientModel;
|
||||
$client_data = $clientModel->where('is_active', 1)->where('id', $employeeData['client_id'])->first();
|
||||
$employeeData['client_short_name'] = $client_data['short_name'];
|
||||
}
|
||||
|
||||
return $employeeData;
|
||||
}
|
||||
|
||||
public static function getPostEmployeeData(array $params)
|
||||
{
|
||||
// print_r($params); die;
|
||||
$mobile_number = $params['mobile_number'] ?? null;
|
||||
$email_id = $params['email_id'] ?? null;
|
||||
$otp = $params['otp'] ?? null;
|
||||
$old_mpin = $params['old_mpin'] ?? null;
|
||||
|
||||
|
||||
if (!empty($mobile_number) || !empty($email_id)) {
|
||||
|
||||
$client = \Config\Services::curlrequest();
|
||||
$endPoint = 'getPostEmployeeDataForAuth';
|
||||
$url = env('POST_ENROLLMENT_BASEURL') . $endPoint;
|
||||
|
||||
$postData = [];
|
||||
|
||||
if (!empty($mobile_number)) {
|
||||
$postData['mobile_number'] = $mobile_number;
|
||||
}
|
||||
|
||||
if (!empty($email_id)) {
|
||||
$postData['email_id'] = $email_id;
|
||||
}
|
||||
|
||||
if (!empty($otp)) {
|
||||
$postData['otp'] = $otp;
|
||||
}
|
||||
|
||||
if (!empty($old_mpin)) {
|
||||
$postData['old_mpin'] = $old_mpin;
|
||||
}
|
||||
|
||||
$response = $client->post( $url, ['json' => $postData, 'http_errors' => false]);
|
||||
$post_json = $response->getBody();
|
||||
$post_data = json_decode($post_json, true);
|
||||
|
||||
return $post_data['data'];
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user