- Модуль: 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;
}