- Модуль: imconnector
- Путь к файлу: ~/bitrix/modules/imconnector/lib/Controller/Openlines.php
- Класс: BitrixImConnectorControllerOpenlines
- Вызов: Openlines::getAction
public function getAction(string $connectorId, int $lineId, bool $withQr = false): ?array
{
$info = Connector::infoConnectorsLine($lineId);
if ($info)
{
$botName = $info[$connectorId][self::CONNECTORS[$connectorId]['titleField']];
$botUrl = Connector::getImMessengerUrl($lineId, $connectorId)['web'];
}
else
{
$connectorOutput = new Output($connectorId, $lineId);
$infoConnect = $connectorOutput->infoConnect();
if ($infoConnect->isSuccess())
{
$connectInfoData = $infoConnect->getData();
$botName = $connectInfoData[self::CONNECTORS[$connectorId]['titleField']];
$botUrl = $connectInfoData['url'];
}
else
{
$this->addError(new Error(
self::ERROR_CONNECTOR_NOT_FOUND['message'],
self::ERROR_CONNECTOR_NOT_FOUND['code']
));
return null;
}
if (empty($botUrl))
{
$messengerUrl = Connector::getImMessengerUrl($lineId, $connectorId);
if ($messengerUrl)
{
$botUrl = $messengerUrl['web'];
}
}
}
$line = (new Config())->get($lineId);
$result = [
'lineId' => $lineId,
'lineName' => $line['LINE_NAME'],
'userIds' => array_map('intval', $line['QUEUE'] ?? []),
'botName' => $botName,
'url' => $botUrl,
'canEditLine' => Config::canEditLine($lineId),
'canEditConnector' => Config::canEditConnector($lineId)
];
if (
Loader::includeModule('ui')
&& $withQr
&& isset($result['url'])
)
{
$urlQR = (new Barcode())
->option('w', self::QR_WIDTH)
->option('h', self::QR_HEIGHT)
->render($result['url']);
$result['qr'] = base64_encode($urlQR);
}
return $result;
}