• Модуль: imopenlines
  • Путь к файлу: ~/bitrix/modules/imopenlines/lib/connector.php
  • Класс: BitrixImOpenLinesConnector
  • Вызов: Connector::OnReceivedStatusBlock
static function OnReceivedStatusBlock(Event $event): bool
{
	$params = $event->getParameters();

	if (empty($params))
	{
		return false;
	}

	$fields = [
		'CONNECTOR_ID' => $params['connector'],
		'CONFIG_ID' => $params['line'],
		'EXTERNAL_CHAT_ID' => $params['chat']['id'],
		'CONNECTOR_USER_ID' => $params['user'],
	];

	$sessionParams['USER_CODE'] = SessionCommon::combineUserCode($fields);

	$session = new Session();
	$resultLoadSession = $session->getLast($sessionParams);

	if ($resultLoadSession->isSuccess())
	{
		$sessionId = $session->getData('ID');
		$chat = $session->getChat();

		$limit = [
			'BLOCK_DATE' => new DateTime(),
			'BLOCK_REASON' => Library::BLOCK_REASON_USER
		];

		if ($params['message']['type'] === 'message_deny')
		{
			ReplyBlock::add($sessionId, $chat, $limit);
		}
		elseif ($params['message']['type'] === 'message_allow')
		{
			ReplyBlock::delete($sessionId, $chat);
		}

		return true;
	}

	return false;
}