| Server IP : 95.46.96.79 / Your IP : 216.73.216.4 Web Server : Apache/2.4.41 (Ubuntu) System : Linux zaimer.uz 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64 User : akslabs_uz_usr ( 1001) PHP Version : 7.4.3-4ubuntu2.29 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /var/www/sugurtatrip__usr95/data/www/sugurtatrip.uz/apiv1/user/Services/ |
Upload File : |
<?php
// require_once __DIR__ . '/../Core/HttpClient.php';
require_once __DIR__ . '/../database/Database.php';
// require_once __DIR__ . '/../Core/Logger.php';
require_once __DIR__ . '/../Models/ErrorCodes.php';
require_once __DIR__ . '/../Models/ErrorMessages.php';
class PolicyService
{
private $allCountries;
public function __construct() {
$this->allCountries = json_decode(file_get_contents(__DIR__ . '/../Data/Countries.json'), true);
}
private function formatCountries($policy) {
$formattedCountries = [];
if ($policy['partner_id'] == 2) {
$formattedCountries = $this->mapKapitalCountries(json_decode($policy['countries']));
} else if ($policy['partner_id'] == 3) {
$formattedCountries = $this->mapApexCountries(json_decode($policy['countries']));
} else if ($policy['partner_id'] == 4) {
$formattedCountries = $this->mapGrossCountries(json_decode($policy['countries']));
}
return $formattedCountries;
}
private function mapKapitalCountries($countries) {
$kapitalCountries = json_decode(file_get_contents(__DIR__ . '/../Data/KapitalCountries.json'), true);
$formattedCountries = [];
foreach ($countries as $country) {
$kapitalCountry = array_filter($kapitalCountries, function($kapitalCountry) use ($country) {
return $kapitalCountry['id'] == $country;
});
$kapitalCountry = reset($kapitalCountry);
$formattedCountries[] = $kapitalCountry['kod'];
}
$formattedCountries = array_map(function($country) {
$foundedCountry = array_filter($this->allCountries, function($allCountry) use ($country) {
return $allCountry['alpha3'] == $country;
});
$foundedCountry = reset($foundedCountry );
return $foundedCountry['name'];
}, $formattedCountries);
return $formattedCountries;
}
private function mapApexCountries($countries) {
$formattedCountries = [];
foreach ($countries as $country) {
$foundedCountry = array_filter($this->allCountries, function($allCountry) use ($country) {
return $allCountry['alpha2'] == $country->iso;
});
$foundedCountry = $foundedCountry ? reset($foundedCountry) : null;
$formattedCountries[] = $foundedCountry ? $foundedCountry['name'] : $country->iso;
};
return $formattedCountries;
}
private function mapGrossCountries($countries) {
$formattedCountries = [];
foreach ($countries as $country) {
$foundedCountry = array_filter($this->allCountries, function($allCountry) use ($country) {
return $allCountry['alpha2'] == $country;
});
$foundedCountry = reset($foundedCountry);
$formattedCountries[] = $foundedCountry['name'];
}
return $formattedCountries;
}
public function getPolicies($user) {
try {
$db = new Database();
$query = "SELECT * FROM policies WHERE client_id = " . $user['userId'] . " ORDER BY id DESC";
$db_data = $db->query($query);
if ($db_data && $db_data->num_rows > 0) {
$policies = [];
while ($row = $db_data->fetch_assoc()) {
$row['countries'] = $this->formatCountries($row);
$policies[] = $row;
}
return [
'success' => true,
'data' => $policies
];
} else {
return [
'success' => true,
'data' => []
];
}
} catch (Exception $e) {
return [
'success' => false,
'error' => ErrorCodes::SERVER_ERROR,
'error_message' => ErrorMessages::SERVER_ERROR . $e->getMessage()
];
} finally {
if (isset($db)) {
$db->close();
}
}
}
public function getPolicy($data, $user) {
try {
$db = new Database();
//add please statement for client_id = $user
$query = "SELECT * FROM policies WHERE id = " . intval($data['id']) . " AND client_id = " . $user['userId'];
$db_data = $db->query($query);
if ($db_data && $db_data->num_rows > 0) {
$policy = $db_data->fetch_assoc();
return [
'success' => true,
'data' => $policy
];
} else {
return [
'success' => false,
'error' => ErrorCodes::POLICY_NOT_FOUND,
'error_message' => ErrorMessages::POLICY_NOT_FOUND
];
}
} catch (Exception $e) {
return [
'success' => false,
'error' => ErrorCodes::SERVER_ERROR,
'error_message' => ErrorMessages::SERVER_ERROR . $e->getMessage()
];
} finally {
if (isset($db)) {
$db->close();
}
}
}
}