Your IP : 18.118.151.93


Current Path : /var/www/www-root/data/www/info.monolith-realty.ru/bitrix/modules/rest/lib/
Upload File :
Current File : /var/www/www-root/data/www/info.monolith-realty.ru/bitrix/modules/rest/lib/PullTransport.php

<?php

namespace Bitrix\Rest;

use Bitrix\Bitrix24\CurrentUser;
use Bitrix\Main\Loader;
use Bitrix\Main\LoaderException;
use Bitrix\Pull\Event;

class PullTransport implements MessageTransportInterface
{
	/**
	 * Users who receive messages
	 * @var array user id
	 */
	private array $recipients;
	private string $moduleId;
	private int $expiry;

	/**
	 * @throws LoaderException
	 * @throws \Exception
	 */
	public function __construct(array $userIds = null, int $expiry = 0)
	{
		if (!Loader::includeModule('pull'))
		{
			throw new \Exception('Module "pull" not installed');
		}

		if (is_null($userIds))
		{
			$this->recipients = [CurrentUser::get()->getId()];
		}
		else
		{
			$this->recipients = $userIds;
		}
		$this->moduleId = 'rest';
		$this->expiry = $expiry;
	}

	public function send(string $method, array $parameters): bool
	{
		return Event::add($this->recipients, [
				'module_id' => $this->moduleId,
				'command' => $method,
				'params' => $parameters,
				'expiry' => $this->expiry,
			]
		);
	}
}