- Модуль: im
- Путь к файлу: ~/bitrix/modules/im/lib/V2/Chat.php
- Класс: BitrixImV2Chat
- Вызов: Chat::sendPushUsersAdd
protected function sendPushUsersAdd(array $usersToAdd, RelationCollection $oldRelations): array
{
if (!BitrixMainLoader::includeModule('pull'))
{
return [];
}
$pushMessage = [
'module_id' => 'im',
'command' => 'chatUserAdd',
'params' => [
'chatId' => $this->getChatId(),
'dialogId' => 'chat' . $this->getChatId(),
'chatTitle' => BitrixImText::decodeEmoji($this->getTitle() ?? ''),
'chatOwner' => $this->getAuthorId(),
'chatExtranet' => $this->getExtranet() ?? false,
'users' => (new ImV2EntityUserUserCollection($usersToAdd))->toRestFormat(),
'newUsers' => array_values($usersToAdd),
'userCount' => $this->getUserCount()
],
'extra' => BitrixImCommon::getPullExtra()
];
$allUsersIds = $oldRelations->getUserIds();
if ($this->getEntityType() === self::ENTITY_TYPE_LINE) //todo: refactor this
{
foreach ($oldRelations as $relation)
{
if ($relation->getUser()->getExternalAuthId() === 'imconnector')
{
unset($allUsersIds[$relation->getUserId()]);
}
}
}
BitrixPullEvent::add(array_values($allUsersIds), $pushMessage);
return $pushMessage;
}