• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/lib/integration/im/notification/provider.php
  • Класс: BitrixTasksIntegrationIMNotificationProvider
  • Вызов: Provider::pushNotification
private function pushNotification(?Notification $notification): void
{
	if ($notification === null)
	{
		return;
	}

	$tag = $this->getNotificationTag($notification);

	$params = [
		'FROM_USER_ID' => $notification->getSender()->getId(),
		'TO_USER_ID' => $notification->getRecepient()->getId(),
		'NOTIFY_TYPE' => IM_NOTIFY_FROM,
		'NOTIFY_MODULE' => 'tasks',
		'NOTIFY_EVENT' => 'manage', // possibly different values
		'NOTIFY_TAG' => $tag->getName(),
		'NOTIFY_SUB_TAG' => $tag->getSubName(),
		'NOTIFY_MESSAGE' => (new NotificationTaskInstantNotification($notification))->getMessage(),
		'NOTIFY_MESSAGE_OUT' => (new NotificationTaskEmailNotification($notification))->getMessage(),
		'PUSH_MESSAGE' => (new NotificationTaskPushNotification($notification))->getMessage(),
		'PUSH_PARAMS' => (new NotificationTaskPushNotification($notification))->getParams($tag),
	];

	$params = array_merge($params, $notification->getParams());

	BitrixTasksIntegrationIM::notifyAdd($params);
}