• Модуль: rest
  • Путь к файлу: ~/bitrix/modules/rest/classes/general/rest_provider.php
  • Класс: CRestProvider
  • Вызов: CRestProvider::methodsList
static function methodsList($arQuery, $n, CRestServer $server)
{
	$arMethods = $server->getServiceDescription();

	$arScope = array(CRestUtil::GLOBAL_SCOPE);
	$arResult = array();

	$arQuery = array_change_key_case($arQuery, CASE_UPPER);

	if(isset($arQuery['SCOPE']))
	{
		if($arQuery['SCOPE'] != '')
			$arScope = array($arQuery['SCOPE']);
	}
	elseif($arQuery['FULL'] == true)
	{
		$arScope = array_keys($arMethods);
	}
	else
	{
		$arScope = self::getScope($server);
		$arScope[] = CRestUtil::GLOBAL_SCOPE;
	}

	foreach ($arMethods as $scope => $arScopeMethods)
	{
		if(in_array($scope, $arScope))
		{
			unset($arScopeMethods[CRestUtil::METHOD_DOWNLOAD]);
			unset($arScopeMethods[CRestUtil::METHOD_UPLOAD]);
			unset($arScopeMethods[CRestUtil::EVENTS]);
			unset($arScopeMethods[CRestUtil::PLACEMENTS]);

			foreach($arScopeMethods as $method => $methodDesc)
			{
				if(isset($methodDesc["options"]) && $methodDesc["options"]["private"] === true)
				{
					unset($arScopeMethods[$method]);
				}
			}

			$arResult = array_merge($arResult, array_keys($arScopeMethods));
		}
	}

	return $arResult;
}