- Модуль: rest
- Путь к файлу: ~/bitrix/modules/rest/lib/marketplace/application.php
- Класс: BitrixRestMarketplaceApplication
- Вызов: Application::uninstall
static function uninstall($code, bool $clean = false, $from = null) : array
{
if (CRestUtil::isAdmin(self::$contextUserId))
{
$res = AppTable::getList(
[
'filter' => [
'=CODE' => $code,
'!=STATUS' => AppTable::STATUS_LOCAL,
],
]
);
$appInfo = $res->fetch();
if ($appInfo)
{
$checkResult = AppTable::checkUninstallAvailability($appInfo['ID'], $clean);
if (
$checkResult->isEmpty()
&& AppTable::canUninstallByType($appInfo['CODE'], $appInfo['VERSION'])
)
{
AppTable::uninstall($appInfo['ID'], $clean);
$appFields = [
'ACTIVE' => 'N',
'INSTALLED' => 'N',
];
AppTable::update($appInfo['ID'], $appFields);
AppLogTable::log($appInfo['ID'], AppLogTable::ACTION_TYPE_UNINSTALL);
Analytic::logToFile(
'finishUninstall',
$appInfo['CODE'],
$from ?? 'index'
);
$result = ['success' => 1];
}
else
{
$errorMessage = '';
foreach ($checkResult as $error)
{
$errorMessage .= $error->getMessage() . "n";
}
$result = ['error' => $errorMessage];
if (
$checkResult->isEmpty()
&& AppTable::getAppType($appInfo['CODE']) == AppTable::TYPE_CONFIGURATION
)
{
$result = [
'sliderUrl' => BitrixRestMarketplaceUrl::getConfigurationImportRollbackUrl(
$appInfo['CODE']
),
];
}
}
}
else
{
$result = ['error' => Loc::getMessage('RMP_NOT_FOUND')];
}
}
else
{
$result = ['error' => Loc::getMessage('RMP_ACCESS_DENIED')];
}
return $result;
}