• Модуль: im
  • Путь к файлу: ~/bitrix/modules/im/lib/V2/Message/PushFormat.php
  • Класс: BitrixImV2MessagePushFormat
  • Вызов: PushFormat::formatPrivateMessage
public function formatPrivateMessage(Message $message, PrivateChat $chat): array
{
	$fromUserId = $message->getAuthorId();
	$toUserId = $chat->getCompanion()->getId();

	$users = CIMContactList::GetUserData([
		'ID' =>  [$toUserId, $fromUserId],
		'PHONES' => 'Y',
	]);

	return [
		'chatId' => $chat->getChatId(),
		'dialogId' => 0,
		'chat' => [],
		'lines' => null,
		'userInChat' => [],
		'userBlockChat' => [],
		'users' => !empty($users['users']) ? $users['users'] : null,
		'message' => [
			'id' => $message->getMessageId(),
			'templateId' => $message->getUuid(),
			'templateFileId' => $message->getFileUuid(),
			'prevId' => $chat->getPrevMessageId(),
			'chatId' => $chat->getChatId(),
			'senderId' => $fromUserId,
			'recipientId' => $toUserId,
			'system' => ($message->isSystem() ? 'Y' : 'N'),
			'date' => $message->getDateCreate() ?? DateTime::createFromTimestamp(time()),// DATE_CREATE
			'text' => Text::parse($message->getMessage()),
			'textLegacy' => Text::parseLegacyFormat($message->getMessage()),
			'params' => $message->getParams()->toPullFormat(),
			'counter' => 0,
			'isImportant' => $message->isImportant(),
			'importantFor' => $message->getImportantFor(),
		],
		'files' => $message->getFilesDiskData(),
		'notify' => true,
	];
}