| 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/api/src/Api/ |
Upload File : |
<?php
namespace Api;
use Core\PriceLoader;
use Core\HttpClient;
use Core\ApiActions;
use Kapital\KapitalPriceModel;
use Kapital\KapitalPolicyModel;
class KapitalController extends PriceLoader {
public function handle_request($request) {
switch ($request['action']) {
case ApiActions::REQUEST_OFFERS:
$kapitalModel = $this->createKapitalPriceModel($request);
$data = $request['data'];
if(isset($data['countries_iso']) && !empty($data['countries_iso'])) {
return $kapitalModel->totalWithCountry();
}
if(isset($data['dateBirths']) && !empty($data['dateBirths'])) {
return $kapitalModel->total();
}
return $kapitalModel->initialRequest();
case ApiActions::KAPITAL_CREATE_POLICY:
$kapitalModel = $this->createKapitalPolicyModel($request);
return $kapitalModel->createPolicy($request);
default:
return [
'message' => 'Action doesn\'t exist for this partner'
];
}
}
public function getPrice($request) {
return "KapitalPriceLoader";
}
public function prepareData($price ) {
// Example data preparation
return [
'partner' => 'Kapital',
'result' => $price,
];
}
private function createKapitalPriceModel($data) {
$request_data = $data['data'];
$startDate = $request_data['start_date'] ?? (new \DateTime())->format('d.m.Y');
$endDate = $request_data['end_date'] ?? (new \DateTime('tomorrow'))->format('d.m.Y');
$day = $request_data['day'] ?? 1;
$programId = $request_data['program_id'] ?? 1;
$activityId = $request_data['activity_id'] ?? 0;
$groupId = $request_data['group_id'] ?? 1;
$typeId = $request_data['type_id'] ?? 0;
$multiId = $request_data['multi_id'] ?? 1;
$dateReg = $request_data['date_reg'] ?? (new \DateTime())->format('d.m.Y');
$dateBirths = $request_data['date_births'] ?? [];
$countries = $this->mapCountriesToIds($request_data['countries_iso']) ?? [];
return $kapitalModel = new KapitalPriceModel(
$startDate,
$endDate,
$day,
$programId,
$activityId,
$groupId,
$typeId,
$multiId,
$dateReg,
$dateBirths,
$countries
);
}
private function createKapitalPolicyModel($data) {
$request_data = $data['data'];
$applicant = $request_data['applicant'] ?? null;
$insured = $request_data['insured'] ?? null;
$countries = $request_data['countries'] ?? null;
$startDate = $request_data['start_date'] ?? (new \DateTime())->format('d.m.Y');
$endDate = $request_data['end_date'] ?? (new \DateTime('tomorrow'))->format('d.m.Y');
$day = $request_data['day'] ?? 1;
$programId = $request_data['program_id'] ?? 1;
$activityId = $request_data['activity_id'] ?? 0;
$groupId = $request_data['group_id'] ?? 1;
$typeId = $request_data['type_id'] ?? 0;
$multiId = $request_data['multi_id'] ?? 1;
$dateReg = $request_data['date_reg'] ?? (new \DateTime())->format('d.m.Y');
$dateBirths = $request_data['date_births'] ?? [];
$countries = $this->mapCountriesToIds($request_data['countries_iso']) ?? [];
return $kapitalModel = new KapitalPolicyModel(
$applicant,
$insured,
$startDate,
$endDate,
$day,
$programId,
$activityId,
$groupId,
$typeId,
$multiId,
$dateReg,
$dateBirths,
$countries,
);
}
private function mapCountriesToIds($countries) {
$countryIds = [];
$countriesListJSON = file_get_contents(__DIR__ . '/../Data/KapitalCountries.json');
$countriesList = json_decode($countriesListJSON, true);
$countryMap = [];
foreach ($countriesList as $country) {
$countryMap[$country['kod']] = $country['id'];
}
foreach ($countries as $countryCode) {
if (isset($countryMap[$countryCode])) {
$countryIds[] = $countryMap[$countryCode];
}
}
return $countryIds;
}
}