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/boxberry.delivery/lib/controllers/ |
Upload File : |
<?php namespace Boxberry\Delivery\Controllers; use Bitrix\Main\Engine\Controller; use Bitrix\Main\Engine\ActionFilter; use Bitrix\Main\Engine\Response\AjaxJson; use Bitrix\Main\Error; use Bitrix\Main\ErrorCollection; use Bitrix\Main\Localization\Loc; use Bitrix\Main\Result; use Boxberry\Api\Client; use Boxberry\Bitrix\Helpers\Widget as WidgetHelper; Loc::loadMessages(__FILE__); class Widget extends Controller { public function getAction(): AjaxJson { $widget = new WidgetHelper(); $params = $widget->getWidgetParams(); $widget->setCheckSelectPvz($widget->isPvzIdSet()); return new AjaxJson($params->getData(), $params->isSuccess() ? AjaxJson::STATUS_SUCCESS : AjaxJson::STATUS_ERROR, $params->getErrorCollection()); } public function setPickupPointAction($id, $address): AjaxJson { $result = new Result(); $params = new WidgetHelper(); $client = new Client(substr($params->getWidgetKey(), 2)); $data = []; try { $pointsDescription = $client->pointsDescription($id); if ($pointsDescription->getCityCode() !== $params->getCityCode()) { $result->addError(new Error(Loc::getMessage('FOR_ORDER_PVZ_CITY_CODE_IS_NOT_MATCH'), 0, ['checkLocation' => false])); return AjaxJson::createError(new ErrorCollection($result->getErrors())); } $params->setCityName($pointsDescription->getCityName()); $params->setStreet($pointsDescription->getStreet()); $params->setHouse($pointsDescription->getHouse()); $params->setFlat($pointsDescription->getApartment()); $data = array_merge($data, [ 'city' => $pointsDescription->getCityName(), 'street' => $pointsDescription->getStreet(), 'house' => $pointsDescription->getHouse(), 'flat' => $pointsDescription->getApartment() ]); $params->setPvzId($id); $params->setPvzAddress($address); $params->setCheckSelectPvz($params->isPvzIdSet()); $data = array_merge($data, [ 'message' => Loc::getMessage('FOR_ORDER_PVZ_CODE_IS_SET') . $id . Loc::getMessage('ADDRESS') . $address, 'checkLocation' => true, ]); } catch (\Exception $e) { $result->addError(new Error($e->getMessage())); } if ($result->isSuccess()) { return AjaxJson::createSuccess($data); } else { return AjaxJson::createError(new ErrorCollection($result->getErrors())); } } protected function getDefaultPreFilters(): array { return [ new ActionFilter\HttpMethod( [ ActionFilter\HttpMethod::METHOD_GET, ActionFilter\HttpMethod::METHOD_POST ] ), new ActionFilter\Csrf(), new ActionFilter\Cors(), new ActionFilter\Scope(ActionFilter\Scope::AJAX) ]; } }