• Модуль: rest
  • Путь к файлу: ~/bitrix/modules/rest/lib/configuration/controller.php
  • Класс: BitrixRestConfigurationController
  • Вызов: Controller::callEventImport
static function callEventImport($params)
{
	$result = [];
	$params['CONTEXT_USER'] = $params['CONTEXT_USER'] ?: false;
	$setting = new Setting($params['CONTEXT_USER']);

	$app = $setting->get(Setting::SETTING_APP_INFO);
	if ($app['ID'] > 0)
	{
		$owner = $app['ID'];
		$ownerType = OwnerEntityTable::ENTITY_TYPE_APPLICATION;
	}
	else
	{
		$owner = OwnerEntityTable::ENTITY_EMPTY;
		$ownerType = OwnerEntityTable::ENTITY_TYPE_EXTERNAL;
	}

	$event = new Event(
		'rest',
		static::ON_REST_APP_CONFIGURATION_IMPORT,
		[
			'CODE' => $params['CODE'],
			'CONTENT' => $params['CONTENT'],
			'RATIO' => $params['RATIO'],
			'CONTEXT' => $params['CONTEXT'],
			'CONTEXT_USER' => $params['CONTEXT_USER'],
			'SETTING' => $setting->get(Setting::SETTING_MANIFEST),
			'USER_ID' => $setting->get(Setting::SETTING_USER_ID) ?? 0,
			'MANIFEST_CODE' => $params['MANIFEST_CODE'],
			'IMPORT_MANIFEST' => $params['IMPORT_MANIFEST'],
			'ADDITIONAL_OPTION' => is_array($params['ADDITIONAL_OPTION']) ? $params['ADDITIONAL_OPTION'] : [],
			'APP_ID' => intVal($owner),
		]
	);

	EventManager::getInstance()->send($event);
	foreach ($event->getResults() as $eventResult)
	{
		$parameters = $eventResult->getParameters();
		$result[] = [
			'RATIO' => $parameters['RATIO'],
			'ERROR_MESSAGES' => $parameters['ERROR_MESSAGES'] ?? null,
			'ERROR_ACTION' => $parameters['ERROR_ACTION'] ?? null,
			'ERROR_EXCEPTION' => $parameters['ERROR_EXCEPTION']
		];

		if (isset($parameters['OWNER_DELETE']) && is_array($parameters['OWNER_DELETE']))
		{
			OwnerEntityTable::deleteMulti($parameters['OWNER_DELETE']);
		}

		if (!empty($parameters['OWNER']))
		{
			OwnerEntityTable::saveMulti($owner, $ownerType, $parameters['OWNER']);
		}
	}

	return $result;
}