- Модуль: 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;
}