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