- Модуль: im
- Путь к файлу: ~/bitrix/modules/im/lib/V2/Message/Reaction/PushService.php
- Класс: BitrixImV2MessageReactionPushService
- Вызов: PushService::send
private function send(string $eventName, ReactionItem $reaction): void
{
$converter = new Converter(Converter::KEYS | Converter::VALUES | Converter::TO_LOWER | Converter::LC_FIRST);
$messageId = $reaction->getMessageId();
$reactionMessage = (new ReactionMessages([$messageId], false))->getReactionMessage($messageId);
$params = [
'userId' => $reaction->getUserId(),
'reaction' => $converter->process($reaction->getReaction()),
'actualReactions' => (new RestAdapter($reactionMessage))->toRestFormat(),
'dialogId' => Chat::getInstance($reaction->getChatId())->getDialogId(),
];
$chat = Chat::getInstance($reaction->getChatId());
if ($chat instanceof ChatPrivateChat)
{
$this->sendToPrivateChat($params, $eventName, $reaction);
return;
}
BitrixPullEvent::add($this->getRecipient($reaction), [
'module_id' => 'im',
'command' => $eventName,
'params' => $params,
'extra' => BitrixImCommon::getPullExtra()
]);
if ($chat->getType() === Chat::IM_TYPE_OPEN || $chat->getType() === Chat::IM_TYPE_OPEN_LINE)
{
CPullWatch::AddToStack('IM_PUBLIC_'.$chat->getChatId(), Array(
'module_id' => 'im',
'command' => $eventName,
'params' => $params,
'extra' => BitrixImCommon::getPullExtra()
));
}
}