Server IP : 80.87.202.40 / Your IP : 216.73.216.169 Web Server : Apache System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64 User : bitrix ( 600) PHP Version : 8.2.27 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /home/bitrix/ext_www/rospirotorg.ru/bitrix/modules/wbs24.ozonapinew/lib/Api/ |
Upload File : |
<?php namespace Wbs24\Ozonapinew\Api; use Bitrix\Main\SystemException; use Wbs24\Ozonapinew\Api\Fbs; use Wbs24\Ozonapinew\{ Exception, Accounts }; class Controller { use Exception; // trait use Accounts; // trait public function action($data) { try { $action = $data['action'] ?? false; $object = false; $result = 'error'; $accountIndex = $data['account_index'] ?? 1; $dependencies = $this->getDependencies($accountIndex); $returnResponseFromApiUnchanged = false; switch ($action) { // orders case 'collect_order': //$object = new Fbs\Ship($dependencies); $object = new V4\Posting\Fbs\Ship($dependencies); break; case 'package_label': $object = new Fbs\PackageLabel($dependencies); break; case 'create_act': $object = new Fbs\CreateAct($dependencies); break; case 'check_act_status': $dependencies['GetAct'] = new Fbs\GetAct($dependencies); $dependencies['DigitalStatusAct'] = new Fbs\Digital\StatusAct($dependencies); $dependencies['DigitalGetAct'] = new Fbs\Digital\GetAct($dependencies); $object = new Fbs\StatusAct($dependencies); break; case 'cancel': $object = new Fbs\Cancel($dependencies); break; // delivery services case 'get_delivery_services': $dependencies['WarehouseList'] = new Warehouses\WarehouseList($dependencies); $object = new Warehouses\DeliveryMethodList($dependencies); break; // track number case 'set_track_number': $object = new Fbs\TrackNumber($dependencies); break; // change status delivering case 'status_delivering': $object = new Rfbs\Statuses\Delivering($dependencies); break; // change status delivered case 'status_delivered': $object = new Rfbs\Statuses\Delivered($dependencies); break; // change status last-mile case 'status_last-mile': $object = new Rfbs\Statuses\LastMile($dependencies); break; // get warehouses case 'get_warehouses_list': $object = new Warehouses\WarehouseList($dependencies); break; // products prices // get prices info case 'get_prices': //$object = new V4\Product\Info\Prices($dependencies); $object = new V5\Product\Info\Prices($dependencies); $returnResponseFromApiUnchanged = true; break; // update prices info case 'update_prices': $object = new V1\Product\Import\Prices($dependencies); $returnResponseFromApiUnchanged = true; break; // products stocks // get stocks case 'get_products': //$object = new V2\Product\ProductsList($dependencies); $object = new V3\Product\ProductsList($dependencies); $returnResponseFromApiUnchanged = true; break; // get products info case 'get_more_products_info': //$object = new V2\Product\Info\ProductsList($dependencies); $object = new V3\Product\Info\ProductsList($dependencies); $returnResponseFromApiUnchanged = true; break; case 'get_fbo_stocks': //$object = new V3\Product\Info\Stocks($dependencies); $object = new V4\Product\Info\Stocks($dependencies); $returnResponseFromApiUnchanged = true; break; case 'get_stocks': $dependencies['WarehouseList'] = new Warehouses\WarehouseList($dependencies); $object = new V1\Product\Info\StocksByWarehouse\Fbs($dependencies); $returnResponseFromApiUnchanged = true; break; case 'set_stocks': $object = new V2\Products\Stocks($dependencies); $returnResponseFromApiUnchanged = true; break; } if ($object) { $result = $object->apiLaunch($data); } // Возвращать исходный ответ от API (без преобразований) if ($returnResponseFromApiUnchanged) { return $result; } return $this->processAction($object, [ 'result' => $result, 'external_id' => $data['posting_number'] ?? '', 'disabled' => $data['disabled'] ?: '', 'action' => $action, 'act_create_id' => $data['act_create_id'] ?? '', 'attemptsGetPackageLabel' => $data['attemptsGetPackageLabel'] ?? 0, ]); } catch (SystemException $exception) { $this->exceptionHandler($exception); } } protected function processAction($object, $data) { $result = [ 'result' => 'error', ]; if ($object) { $result = $object->processAction($data); } return json_encode($result); } }