• Модуль: imconnector
  • Путь к файлу: ~/bitrix/modules/imconnector/lib/input/router.php
  • Класс: BitrixImConnectorInputRouter
  • Вызов: Router::receiving
static function receiving($command, $connector, $line = null, $data = array()): Result
{
	$result = new Result();

	if(empty($command))
	{
		$result->addError(new Error(Loc::getMessage('IMCONNECTOR_NOT_SPECIFIED_CORRECT_COMMAND'), Library::ERROR_IMCONNECTOR_NOT_SPECIFIED_CORRECT_COMMAND, __METHOD__, array('$command' => $command, '$connector' => $connector, '$line' => $line, '$data' => $data)));
	}

	if(empty($connector) && Connector::isConnector($connector, true))
	{
		$result->addError(new Error(Loc::getMessage('IMCONNECTOR_NOT_SPECIFIED_CORRECT_CONNECTOR'), Library::ERROR_IMCONNECTOR_NOT_SPECIFIED_CORRECT_CONNECTOR, __METHOD__, array('$command' => $command, '$connector' => $connector, '$line' => $line, '$data' => $data)));
	}

	if($result->isSuccess())
	{
		if(!is_array($data))
		{
			$data = [$data];
		}

		switch ($command)
		{
			case 'testConnect'://Test connection
				$result->setResult('OK');
				break;
			case 'receivingMessage'://To receive the message
				$lineStatus = Status::getInstance($connector, $line);
				if ($lineStatus->isStatus())
				{
					$receivingHandlers = new ReceivingMessage($connector, $line, $data);
					$receivingHandlers->receiving();
				}
				else
				{
					$result->addError(new Error(Loc::getMessage('IMCONNECTOR_NOT_ACTIVE_LINE'), Library::ERROR_IMCONNECTOR_NOT_ACTIVE_LINE, __METHOD__, array('$command' => $command, '$connector' => $connector, '$line' => $line, '$data' => $data)));
				}
				break;
			case 'receivingStatusDelivery'://To receive a delivery status
				$receivingHandlers = new ReceivingStatusDelivery($connector, $line, $data);
				$receivingHandlers->receiving();
				break;
			case 'receivingStatusReading'://To receive the status of reading
				$receivingHandlers = new ReceivingStatusReading($connector, $line, $data);
				$receivingHandlers->receiving();
				break;
			case 'receivingError':
				$receivingHandlers = new ReceivingError($connector, $line, $data);
				$receivingHandlers->receiving();
				break;
			case 'receivingStatusBlock':
				$receivingHandlers = new ReceivingStatusBlock($connector, $line, $data);
				$receivingHandlers->receiving();
				break;
			case 'deactivateConnector'://The disconnection of the connector due to the connection with the specified data on a different portal or lines
				$receivingHandlers = new DeactivateConnector($connector, $line, $data);
				$receivingHandlers->receiving();
				break;
			default:
				$result->addError(new Error(Loc::getMessage('IMCONNECTOR_NOT_SPECIFIED_CORRECT_COMMAND'), Library::ERROR_IMCONNECTOR_NOT_SPECIFIED_CORRECT_COMMAND, __METHOD__, array('$command' => $command, '$connector' => $connector, '$line' => $line, '$data' => $data)));
		}
	}

	return $result;
}