403Webshell
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 :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/bitrix/ext_www/rospirotorg.ru/bitrix/modules/boxberry.delivery/lib/controllers/widget.php
<?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)
        ];
    }

}

Youez - 2016 - github.com/yon3zu
LinuXploit