• Модуль: pull
  • Путь к файлу: ~/bitrix/modules/pull/classes/general/pull_push.php
  • Класс: CPushManager
  • Вызов: CPushManager::prepareSend
static function prepareSend($userId, $fields, $type = self::SEND_IMMEDIATELY)
{
	$result = [
		'USER_ID' => $userId,
	];

	if ($type != self::SEND_DEFERRED)
	{
		if (is_array($fields['PARAMS']))
		{
			if (isset($fields['PARAMS']['CATEGORY']))
			{
				$result['CATEGORY'] = $fields['PARAMS']['CATEGORY'];
				unset($fields['PARAMS']['CATEGORY']);
			}
			$result['PARAMS'] = BitrixMainWebJson::encode($fields['PARAMS']);
		}
		elseif ($fields['PARAMS'] <> '')
		{
			$result['PARAMS'] = $fields['PARAMS'];
		}

		if ($fields['MESSAGE'] <> '')
		{
			$result['MESSAGE'] = $fields['MESSAGE'];
		}

		if ($fields['SOUND'] <> '')
		{
			$result['SOUND'] = $fields['SOUND'];
		}
		else if ($type == self::SEND_IMMEDIATELY_SILENT)
		{
			$result['SOUND'] = 'silence.aif';
		}

		if (count($fields['ADVANCED_PARAMS']) > 0)
		{
			$result['ADVANCED_PARAMS'] = $fields['ADVANCED_PARAMS'];
		}
	}

	if ($type == self::SEND_SKIP)
	{
		unset($result['MESSAGE']);
		unset($result['ADVANCED_PARAMS']['senderName']);
	}

	if ($fields['EXPIRY'] <> '')
	{
		$result['EXPIRY'] = $fields['EXPIRY'];
	}

	if (intval($fields['BADGE']) >= 0)
	{
		$result['BADGE'] = $fields['BADGE'];
	}
	else
	{
		$result['BADGE'] = BitrixPullMobileCounter::get($result['USER_ID']);
	}

	$result['APP_ID'] = $fields['APP_ID'];

	return $result;
}