- Модуль: imconnector
- Путь к файлу: ~/bitrix/modules/imconnector/lib/interactivemessage/input.php
- Класс: BitrixImConnectorInteractiveMessageInput
- Вызов: Input::sessionClose
protected function sessionClose($chatId, $userId, string $message = ''): Result
{
$result = new Result();
if (Loader::includeModule('imopenlines'))
{
if (!empty($message))
{
/** @var BitrixImOpenLinesServicesMessage $messenger */
$messenger = ServiceLocator::getInstance()->get('ImOpenLines.Services.Message');
$messenger->addMessage([
'TO_CHAT_ID' => $chatId,
'MESSAGE' => $message,
'SYSTEM' => 'Y',
'IMPORTANT_CONNECTOR' => 'Y',
'NO_SESSION_OL' => 'Y',
'PARAMS' => [
'CLASS' => 'bx-messenger-content-item-ol-output',
'IMOL_FORM' => 'offline',
'TYPE' => 'lines',
'COMPONENT_ID' => 'bx-imopenlines-message',
],
]);
}
/** @var BitrixImOpenLinesServicesChatDispatcher $chatDispatcher */
$chatDispatcher = ServiceLocator::getInstance()->get('ImOpenLines.Services.ChatDispatcher');
$chat = $chatDispatcher->getChat((int)$chatId);
$resultFinishChat = $chat->finish($userId, true, true, true);
if ($resultFinishChat->isSuccess())
{
$result->setResult(true);
}
else
{
$result->addErrors($resultFinishChat->getErrors());
}
}
else
{
$result->addError(new Error('Failed to load the open lines module', 'IMCONNECTOR_INTERACTIVE_MESSAGE_ERROR_NOT_LOAD_MODULES_IMOPENLINES', __METHOD__));
}
return $result;
}