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/im/lib/V2/Controller/ |
Upload File : |
<?php declare(strict_types=1); namespace Bitrix\Im\V2\Controller; use Bitrix\Im\V2; use Bitrix\Im\V2\Promotion\Internals\DeviceType; use Bitrix\Main\DI\ServiceLocator; use Bitrix\Main\Engine\AutoWire\Parameter; use Bitrix\Main\Engine\Controller; use Bitrix\Im\V2\Promotion\Entity; use Bitrix\Main\Validation\Engine\AutoWire\ValidationParameter; class Promotion extends Controller { private V2\Promotion\Promotion $promoService; public function getAutoWiredParameters(): array { return [ new ValidationParameter( Entity\Promotion::class, function (): Entity\Promotion { $request = $this->getRequest(); $requestData = $request->getPostList()->toArray(); return new Entity\Promotion( $requestData['id'] ?? '', $requestData['params'] ?? [], ); } ), new Parameter( DeviceType::class, function (): ?DeviceType { $request = $this->getRequest(); $requestData = $request->getPostList()->toArray(); $type = $requestData['type'] ?? DeviceType::ALL->value; return DeviceType::tryFrom($type); } ), ]; } /** * @restMethod im.v2.Promotion.read */ public function readAction(Entity\Promotion $promo): array { return [ 'result' => $this->promoService->markAsViewed($promo)->isSuccess(), ]; } /** * @restMethod im.v2.Promotion.listActive */ public function listActiveAction(?DeviceType $type): array { if (null === $type) { return []; } return $this->promoService->getActive($type)->toRestFormat(); } protected function init(): void { parent::init(); $this->promoService = ServiceLocator::getInstance()->get('Im.Services.Promotion'); } }