FEAT_WELLNESS_HELPER&ICICI_TPA_API_CHANGE
This commit is contained in:
parent
f3b8f735fc
commit
3de88523a7
@ -3,6 +3,7 @@
|
|||||||
namespace App\Controllers;
|
namespace App\Controllers;
|
||||||
|
|
||||||
use App\Helpers\MailHelper;
|
use App\Helpers\MailHelper;
|
||||||
|
use App\Helpers\NhanceWelnessSsoHelper;
|
||||||
|
|
||||||
use CodeIgniter\HTTP\IncomingRequest;
|
use CodeIgniter\HTTP\IncomingRequest;
|
||||||
use CodeIgniter\HTTP\RequestInterface;
|
use CodeIgniter\HTTP\RequestInterface;
|
||||||
@ -3809,6 +3810,8 @@ class EmployeeRestController extends AdminController
|
|||||||
|
|
||||||
public function getWellnessUrl()
|
public function getWellnessUrl()
|
||||||
{
|
{
|
||||||
|
// $url = NhanceWelnessSsoHelper::generateSSOUrl();
|
||||||
|
// echo $url;die();
|
||||||
// $url = "https://aam.mohfw.gov.in/home/login";
|
// $url = "https://aam.mohfw.gov.in/home/login";
|
||||||
$url = "";
|
$url = "";
|
||||||
|
|
||||||
|
|||||||
@ -68,13 +68,15 @@ class ICICILombardController extends AdminController
|
|||||||
#"CorrelationId" => "86383c78-4c67-4e4d-9aa0-8f926fb0d55f",
|
#"CorrelationId" => "86383c78-4c67-4e4d-9aa0-8f926fb0d55f",
|
||||||
#old policy inf end
|
#old policy inf end
|
||||||
|
|
||||||
|
#"EmployeeMemberId" => "EMPID3625556",
|
||||||
|
|
||||||
$body = [
|
$body = [
|
||||||
"PolicyNumber" => "4016/A/O/53077718/00/000",
|
"PolicyNumber" => "4016/A/O/53077718/00/000",
|
||||||
"CDBGAccountNumber" => "CD-MUM-0026",
|
"CDBGAccountNumber" => "CD-MUM-0026",
|
||||||
"CorrelationId" => "86383c78-4c67-4e4d-9aa0-8f926fb0d55f",
|
"CorrelationId" => "86383c78-4c67-4e4d-9aa0-8f926fb0d55f",
|
||||||
"MemberDetails" => [
|
"MemberDetails" => [
|
||||||
[
|
[
|
||||||
"EmployeeMemberId" => "EMPID3625556",
|
"MemberEmpId" => "EMPID3625556",
|
||||||
"DOJ" => "21-MAR-2019",
|
"DOJ" => "21-MAR-2019",
|
||||||
"InsuredName" => "ABC28144",
|
"InsuredName" => "ABC28144",
|
||||||
"DOB" => "7-JUL-1983",
|
"DOB" => "7-JUL-1983",
|
||||||
@ -86,7 +88,7 @@ class ICICILombardController extends AdminController
|
|||||||
"FlagStatus" => "A"
|
"FlagStatus" => "A"
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"EmployeeMemberId" => "EMPID3625556",
|
"MemberEmpId" => "EMPID3625556",
|
||||||
"DOJ" => "21-MAR-2019",
|
"DOJ" => "21-MAR-2019",
|
||||||
"InsuredName" => "ABC28146",
|
"InsuredName" => "ABC28146",
|
||||||
"DOB" => "8-AUG-1970",
|
"DOB" => "8-AUG-1970",
|
||||||
@ -98,7 +100,7 @@ class ICICILombardController extends AdminController
|
|||||||
"FlagStatus" => "A"
|
"FlagStatus" => "A"
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"EmployeeMemberId" => "EMPID0502220011",
|
"MemberEmpId" => "EMPID0502220011",
|
||||||
"UHID" => "IL00688842553",
|
"UHID" => "IL00688842553",
|
||||||
"InsuredName" => "ABC28142",
|
"InsuredName" => "ABC28142",
|
||||||
"DOB" => "8-SEP-1970",
|
"DOB" => "8-SEP-1970",
|
||||||
@ -107,11 +109,11 @@ class ICICILombardController extends AdminController
|
|||||||
"EmailId" => "ABC@GMAIL.COM",
|
"EmailId" => "ABC@GMAIL.COM",
|
||||||
"FlagStatus" => "M"
|
"FlagStatus" => "M"
|
||||||
],
|
],
|
||||||
[
|
// [
|
||||||
"UHID" => "IL00688842552",
|
// "UHID" => "IL00688842552",
|
||||||
"DOL" => "08-JUL-2025",
|
// "DOL" => "08-JUL-2025",
|
||||||
"FlagStatus" => "D"
|
// "FlagStatus" => "D"
|
||||||
]
|
// ]
|
||||||
]
|
]
|
||||||
];
|
];
|
||||||
// Kint::dump($body);
|
// Kint::dump($body);
|
||||||
@ -144,13 +146,21 @@ class ICICILombardController extends AdminController
|
|||||||
'Content-Type: application/json'
|
'Content-Type: application/json'
|
||||||
];
|
];
|
||||||
|
|
||||||
|
// $body = [
|
||||||
|
// "PolicyNumber" => "4016/A/51974976/00/000",
|
||||||
|
// "BatchId" => "2345617878",
|
||||||
|
// "CorrelationId" => "86383c78-4c67-4e4d-9aa0-8f926fb0d55f"
|
||||||
|
// ];
|
||||||
|
|
||||||
$body = [
|
$body = [
|
||||||
"PolicyNumber" => "4016/A/51974976/00/000",
|
"PolicyNumber" => "4016/A/O/53077718/00/000",
|
||||||
"BatchId" => "2345617878",
|
// "BatchId" => "3642146",
|
||||||
|
"BatchId" => "3642149",
|
||||||
"CorrelationId" => "86383c78-4c67-4e4d-9aa0-8f926fb0d55f"
|
"CorrelationId" => "86383c78-4c67-4e4d-9aa0-8f926fb0d55f"
|
||||||
];
|
];
|
||||||
|
|
||||||
$response = call_third_party_api($url, 'POST', $headers, json_encode($body), true);
|
// $response = call_third_party_api($url, 'POST', $headers, json_encode($body), true);
|
||||||
|
$response = call_third_party_api($url, 'POST', $headers, ($body), true);
|
||||||
|
|
||||||
return $this->response->setJSON($response);
|
return $this->response->setJSON($response);
|
||||||
}
|
}
|
||||||
|
|||||||
380
app/Helpers/NhanceWelnessSsoHelper.php
Normal file
380
app/Helpers/NhanceWelnessSsoHelper.php
Normal file
@ -0,0 +1,380 @@
|
|||||||
|
<?php
|
||||||
|
namespace App\Helpers;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Nhance SSO Helper for CodeIgniter 4
|
||||||
|
*
|
||||||
|
* Usage:
|
||||||
|
* - Place this file in app/Helpers/nhance_sso_helper.php
|
||||||
|
* - Load helper: helper('nhance_sso');
|
||||||
|
*
|
||||||
|
* Functions:
|
||||||
|
* - generate_nhance_sso_url($userParams = null)
|
||||||
|
* - decrypt_nhance_sso_params($encryptedParams = null)
|
||||||
|
* - test_nhance_sso_encryption()
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (!function_exists('generate_nhance_sso_url')) {
|
||||||
|
/**
|
||||||
|
* Generate Nhance SSO URL with encrypted parameters
|
||||||
|
*
|
||||||
|
* @param array|null $userParams User parameters array, uses sample data if null
|
||||||
|
* @return string Generated SSO URL
|
||||||
|
*/
|
||||||
|
function generate_nhance_sso_url($userParams = null) {
|
||||||
|
$helper = new NhanceSsoHelper();
|
||||||
|
return $helper->generateSSOUrl($userParams);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!function_exists('decrypt_nhance_sso_params')) {
|
||||||
|
/**
|
||||||
|
* Decrypt Nhance SSO parameters for testing
|
||||||
|
*
|
||||||
|
* @param string|null $encryptedParams Encrypted parameters, uses sample if null
|
||||||
|
* @return array Decrypted user parameters
|
||||||
|
*/
|
||||||
|
function decrypt_nhance_sso_params($encryptedParams = null) {
|
||||||
|
$helper = new NhanceSsoHelper();
|
||||||
|
return $helper->decryptUserParams($encryptedParams);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!function_exists('test_nhance_sso_encryption')) {
|
||||||
|
/**
|
||||||
|
* Test Nhance SSO encryption/decryption functionality
|
||||||
|
*
|
||||||
|
* @return array Test results
|
||||||
|
*/
|
||||||
|
function test_nhance_sso_encryption() {
|
||||||
|
$helper = new NhanceSsoHelper();
|
||||||
|
return $helper->runTests();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Nhance SSO Helper Class
|
||||||
|
*/
|
||||||
|
class NhanceWelnessSsoHelper {
|
||||||
|
|
||||||
|
private static $baseUrl = 'https://web.samuraijack.xyz/sso';
|
||||||
|
private static $clientId = 'nhance-gt-2tx7';
|
||||||
|
private static $encryptionKey = '32D1D5535157AF3D4667ADAB0CC795D77D022BB281AD3272EB134C72BD0B185E';
|
||||||
|
private static $algorithm = 'aes-256-cbc';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get sample user parameters
|
||||||
|
*/
|
||||||
|
private static function getSampleUserParams() {
|
||||||
|
return [
|
||||||
|
'name' => 'John Doe 3',
|
||||||
|
'email' => 'john.doe3@email.com',
|
||||||
|
'memberId' => 'TEST-REL-01',
|
||||||
|
'gender' => 'Male',
|
||||||
|
'dob' => '1997-01-01',
|
||||||
|
'policyName' => 'Nhance DEMO',
|
||||||
|
'phone' => '6676126763',
|
||||||
|
'employeeId' => 'EMP-NHANCE-TEST-03',
|
||||||
|
'policyNumber' => "EMP-NHANCE-TEST-03",
|
||||||
|
'policyStartDate' => '2025-09-08',
|
||||||
|
'policyEndDate' => '2026-09-08',
|
||||||
|
'moduleName' => 'home',
|
||||||
|
'relation' => 'self',
|
||||||
|
'planId' => 'NHANCE-PLAN-1',
|
||||||
|
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get sample encrypted parameters for testing
|
||||||
|
*/
|
||||||
|
private static function getSampleEncryptedParams() {
|
||||||
|
// Generate sample encrypted params using sample data
|
||||||
|
$sampleParams = (SELF::getSampleUserParams());
|
||||||
|
return SELF::encryptUserParams($sampleParams);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Encrypt user parameters using AES-256-CBC
|
||||||
|
*/
|
||||||
|
private static function encryptUserParams($userParams) {
|
||||||
|
try {
|
||||||
|
$jsonData = json_encode($userParams);
|
||||||
|
|
||||||
|
// Generate a random IV
|
||||||
|
$iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length(SELF::$algorithm));
|
||||||
|
// $iv = 'getvisitappdotcom';
|
||||||
|
|
||||||
|
// Convert hex key to binary
|
||||||
|
$key = hex2bin(SELF::$encryptionKey);
|
||||||
|
// $key = (SELF::$encryptionKey);
|
||||||
|
|
||||||
|
// Encrypt the data
|
||||||
|
$encrypted = openssl_encrypt($jsonData, SELF::$algorithm, $key, 0, $iv);
|
||||||
|
|
||||||
|
if ($encrypted === false) {
|
||||||
|
throw new Exception("Encryption failed");
|
||||||
|
}
|
||||||
|
|
||||||
|
// Combine IV and encrypted data, then encode
|
||||||
|
$encryptedData = base64_encode($iv . base64_decode($encrypted));
|
||||||
|
|
||||||
|
// Make URL safe
|
||||||
|
return str_replace(['+', '/', '='], ['-', '_', ''], $encryptedData);
|
||||||
|
|
||||||
|
} catch (Exception $e) {
|
||||||
|
log_message('error', 'Nhance SSO Encryption Error: ' . $e->getMessage());
|
||||||
|
throw new Exception("Encryption failed: " . $e->getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Decrypt user parameters for testing purposes
|
||||||
|
*/
|
||||||
|
public static function decryptUserParams($encryptedParams = null) {
|
||||||
|
try {
|
||||||
|
// Use sample encrypted params if none provided
|
||||||
|
if ($encryptedParams === null) {
|
||||||
|
$encryptedParams = SELF::getSampleEncryptedParams();
|
||||||
|
log_message('info', 'Using sample encrypted parameters for decryption test');
|
||||||
|
}
|
||||||
|
|
||||||
|
// Handle URL format if full URL is passed
|
||||||
|
if (strpos($encryptedParams, 'userParams=') !== false) {
|
||||||
|
$encryptedParams = SELF::extractParamsFromUrl($encryptedParams);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Make URL-safe characters back to base64
|
||||||
|
$encryptedParams = str_replace(['-', '_'], ['+', '/'], $encryptedParams);
|
||||||
|
|
||||||
|
// Add padding if needed
|
||||||
|
$encryptedParams = $encryptedParams . str_repeat('=', (4 - strlen($encryptedParams) % 4) % 4);
|
||||||
|
|
||||||
|
// Decode base64
|
||||||
|
$data = base64_decode($encryptedParams);
|
||||||
|
|
||||||
|
if ($data === false) {
|
||||||
|
throw new Exception("Failed to decode base64 data");
|
||||||
|
}
|
||||||
|
|
||||||
|
// Extract IV and encrypted data
|
||||||
|
$ivLength = openssl_cipher_iv_length(SELF::$algorithm);
|
||||||
|
$iv = substr($data, 0, $ivLength);
|
||||||
|
$encrypted = base64_encode(substr($data, $ivLength));
|
||||||
|
|
||||||
|
// Convert hex key to binary
|
||||||
|
$key = hex2bin(SELF::$encryptionKey);
|
||||||
|
|
||||||
|
// Decrypt the data
|
||||||
|
$decrypted = openssl_decrypt($encrypted, SELF::$algorithm, $key, 0, $iv);
|
||||||
|
|
||||||
|
if ($decrypted === false) {
|
||||||
|
throw new Exception("Decryption failed");
|
||||||
|
}
|
||||||
|
|
||||||
|
// Decode JSON
|
||||||
|
$userParams = json_decode($decrypted, true);
|
||||||
|
|
||||||
|
if ($userParams === null) {
|
||||||
|
throw new Exception("Failed to decode JSON data");
|
||||||
|
}
|
||||||
|
|
||||||
|
return $userParams;
|
||||||
|
|
||||||
|
} catch (Exception $e) {
|
||||||
|
log_message('error', 'Nhance SSO Decryption Error: ' . $e->getMessage());
|
||||||
|
throw new Exception("Decryption error: " . $e->getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Generate SSO URL with encrypted parameters
|
||||||
|
*/
|
||||||
|
public static function generateSSOUrl($userParams = null) {
|
||||||
|
try {
|
||||||
|
// Use sample parameters if none provided
|
||||||
|
if ($userParams === null) {
|
||||||
|
$userParams = SELF::getSampleUserParams();
|
||||||
|
log_message('info', 'Using sample user parameters for SSO URL generation');
|
||||||
|
}
|
||||||
|
|
||||||
|
// Validate required parameters
|
||||||
|
SELF::validateUserParams($userParams);
|
||||||
|
|
||||||
|
// Encrypt user parameters
|
||||||
|
$encryptedParams = SELF::encryptUserParams($userParams);
|
||||||
|
|
||||||
|
// Build the SSO URL
|
||||||
|
$ssoUrl = SELF::$baseUrl . '?userParams=' . $encryptedParams . '&clientId=' . SELF::$clientId;
|
||||||
|
|
||||||
|
log_message('info', 'Nhance SSO URL generated successfully for user: ' . $userParams['email']);
|
||||||
|
|
||||||
|
return $ssoUrl;
|
||||||
|
|
||||||
|
} catch (Exception $e) {
|
||||||
|
log_message('error', 'Nhance SSO URL Generation Error: ' . $e->getMessage());
|
||||||
|
throw new Exception("Failed to generate SSO URL: " . $e->getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Validate user parameters
|
||||||
|
*/
|
||||||
|
private static function validateUserParams($userParams) {
|
||||||
|
$requiredFields = [
|
||||||
|
'name', 'email', 'phone', 'memberId', 'gender', 'dob',
|
||||||
|
'policyName', 'policyNumber', 'employeeId', 'moduleName',
|
||||||
|
'relation', 'planId', 'policyStartDate', 'policyEndDate'
|
||||||
|
];
|
||||||
|
|
||||||
|
foreach ($requiredFields as $field) {
|
||||||
|
if (!isset($userParams[$field]) || empty($userParams[$field])) {
|
||||||
|
throw new Exception("Required field '$field' is missing or empty");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Validate date formats
|
||||||
|
if (!SELF::validateDate($userParams['dob']) ||
|
||||||
|
!SELF::validateDate($userParams['policyStartDate']) ||
|
||||||
|
!SELF::validateDate($userParams['policyEndDate'])) {
|
||||||
|
throw new Exception("Invalid date format. Use YYYY-MM-DD format");
|
||||||
|
}
|
||||||
|
|
||||||
|
// Validate gender
|
||||||
|
if (!in_array($userParams['gender'], ['Male', 'Female'])) {
|
||||||
|
throw new Exception("Gender must be 'Male' or 'Female'");
|
||||||
|
}
|
||||||
|
|
||||||
|
// Validate email
|
||||||
|
if (!filter_var($userParams['email'], FILTER_VALIDATE_EMAIL)) {
|
||||||
|
throw new Exception("Invalid email format");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Validate date format (YYYY-MM-DD)
|
||||||
|
*/
|
||||||
|
private static function validateDate($date) {
|
||||||
|
$d = \DateTime::createFromFormat('Y-m-d', $date);
|
||||||
|
return $d && $d->format('Y-m-d') === $date;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Extract encrypted parameters from SSO URL
|
||||||
|
*/
|
||||||
|
private static function extractParamsFromUrl($ssoUrl) {
|
||||||
|
$parsedUrl = parse_url($ssoUrl);
|
||||||
|
if (!isset($parsedUrl['query'])) {
|
||||||
|
throw new Exception("No query parameters found in URL");
|
||||||
|
}
|
||||||
|
|
||||||
|
parse_str($parsedUrl['query'], $queryParams);
|
||||||
|
|
||||||
|
if (!isset($queryParams['userParams'])) {
|
||||||
|
throw new Exception("userParams not found in URL");
|
||||||
|
}
|
||||||
|
|
||||||
|
return $queryParams['userParams'];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Run comprehensive tests
|
||||||
|
*/
|
||||||
|
public static function runTests() {
|
||||||
|
$results = [
|
||||||
|
'tests_passed' => 0,
|
||||||
|
'tests_failed' => 0,
|
||||||
|
'test_details' => []
|
||||||
|
];
|
||||||
|
|
||||||
|
try {
|
||||||
|
// Test 1: Sample data encryption/decryption
|
||||||
|
log_message('info', 'Running Nhance SSO Test 1: Sample data round-trip');
|
||||||
|
$sampleParams = SELF::getSampleUserParams();
|
||||||
|
$ssoUrl = SELF::generateSSOUrl($sampleParams);
|
||||||
|
$encryptedParams = SELF::extractParamsFromUrl($ssoUrl);
|
||||||
|
$decryptedParams = SELF::decryptUserParams($encryptedParams);
|
||||||
|
|
||||||
|
$test1Pass = json_encode($sampleParams) === json_encode($decryptedParams);
|
||||||
|
$results['test_details']['sample_round_trip'] = [
|
||||||
|
'status' => $test1Pass ? 'PASSED' : 'FAILED',
|
||||||
|
'original_params' => $sampleParams,
|
||||||
|
'decrypted_params' => $decryptedParams,
|
||||||
|
'sso_url' => $ssoUrl
|
||||||
|
];
|
||||||
|
|
||||||
|
if ($test1Pass) {
|
||||||
|
$results['tests_passed']++;
|
||||||
|
} else {
|
||||||
|
$results['tests_failed']++;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Test 2: Custom parameters
|
||||||
|
log_message('info', 'Running Nhance SSO Test 2: Custom parameters');
|
||||||
|
$customParams = [
|
||||||
|
'name' => 'Jane Smith Test',
|
||||||
|
'email' => 'jane.test@example.com',
|
||||||
|
'phone' => '1122334455',
|
||||||
|
'memberId' => 'TEST-CUSTOM-001',
|
||||||
|
'gender' => 'Female',
|
||||||
|
'dob' => '1985-03-20',
|
||||||
|
'policyName' => 'Custom Test Policy',
|
||||||
|
'policyNumber' => 'CUSTOM-POL-001',
|
||||||
|
'employeeId' => 'EMP-CUSTOM-001',
|
||||||
|
'moduleName' => 'home',
|
||||||
|
'relation' => 'self',
|
||||||
|
'planId' => 'NHANCE-PLAN-1',
|
||||||
|
'policyStartDate' => date('Y-m-d'),
|
||||||
|
'policyEndDate' => date('Y-m-d', strtotime('+2 years'))
|
||||||
|
];
|
||||||
|
|
||||||
|
$customSsoUrl = SELF::generateSSOUrl($customParams);
|
||||||
|
$customEncryptedParams = SELF::extractParamsFromUrl($customSsoUrl);
|
||||||
|
$customDecryptedParams = SELF::decryptUserParams($customEncryptedParams);
|
||||||
|
|
||||||
|
$test2Pass = json_encode($customParams) === json_encode($customDecryptedParams);
|
||||||
|
$results['test_details']['custom_round_trip'] = [
|
||||||
|
'status' => $test2Pass ? 'PASSED' : 'FAILED',
|
||||||
|
'original_params' => $customParams,
|
||||||
|
'decrypted_params' => $customDecryptedParams,
|
||||||
|
'sso_url' => $customSsoUrl
|
||||||
|
];
|
||||||
|
|
||||||
|
if ($test2Pass) {
|
||||||
|
$results['tests_passed']++;
|
||||||
|
} else {
|
||||||
|
$results['tests_failed']++;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Test 3: Null parameter handling
|
||||||
|
log_message('info', 'Running Nhance SSO Test 3: Null parameter handling');
|
||||||
|
$nullTestUrl = SELF::generateSSOUrl(null);
|
||||||
|
$nullDecrypted = SELF::decryptUserParams(null);
|
||||||
|
|
||||||
|
$test3Pass = !empty($nullTestUrl) && !empty($nullDecrypted);
|
||||||
|
$results['test_details']['null_parameter_handling'] = [
|
||||||
|
'status' => $test3Pass ? 'PASSED' : 'FAILED',
|
||||||
|
'generated_url' => $nullTestUrl,
|
||||||
|
'decrypted_sample' => $nullDecrypted
|
||||||
|
];
|
||||||
|
|
||||||
|
if ($test3Pass) {
|
||||||
|
$results['tests_passed']++;
|
||||||
|
} else {
|
||||||
|
$results['tests_failed']++;
|
||||||
|
}
|
||||||
|
|
||||||
|
} catch (Exception $e) {
|
||||||
|
$results['tests_failed']++;
|
||||||
|
$results['test_details']['error'] = $e->getMessage();
|
||||||
|
log_message('error', 'Nhance SSO Test Error: ' . $e->getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
$results['overall_status'] = $results['tests_failed'] === 0 ? 'ALL_PASSED' : 'SOME_FAILED';
|
||||||
|
log_message('info', 'Nhance SSO Tests completed. Passed: ' . $results['tests_passed'] . ', Failed: ' . $results['tests_failed']);
|
||||||
|
|
||||||
|
return $results;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
||||||
Loading…
Reference in New Issue
Block a user