• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/classes/general/restservice.php
  • Класс: CTaskRestService
  • Вызов: CTaskRestService::_init
static function _init()
{
	self::$arAllowedMethods = array();

	foreach (self::$arAllowedClasses as $className)
	{
		$arManifest = $className::getManifest();
		self::$arAllowedMethods[$className] = array_map(
			'strtolower',
			array_keys($arManifest['REST: available methods'])
		);
		self::$arMethodsMetaInfo[$className] = $arManifest['REST: available methods'];

		if (isset($arManifest['REST: shortname alias to class']))
		{
			$aliasClassName = $arManifest['REST: shortname alias to class'];
			self::$arClassAliases[$className] = $aliasClassName;
		}

		self::$arManifests[$className] = $arManifest;

		// refactor this translation later when add userfields to other entites
		$classNameCut = $namespace = $className;
		if($className == 'ctaskitem')
		{
			$classNameCut = 'item';
			$namespace = 'task';
		}

		$specialClasses = array(
			'\Bitrix\Tasks\Integration\Rest\'.ucfirst($namespace).'\UserField', // user field support
		);

		foreach($specialClasses as $sClassName)
		{
			if(class_exists($sClassName))
			{
				self::$allowedSpecialClasses[$sClassName] = array(

					'publicClassName' => $sClassName::getClassName(), // i.e. userfield (also might be smth compound, like "subentity.submethod")
					'publicParentClassName' => $classNameCut // i.e. item
				);

				foreach($sClassName::getAvailableMethods() as $method)
				{
					self::$arMethodsMetaInfo[$sClassName][$method] = array();
				}
			}
		}
	}

	self::$inited = true;
}