• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/delivery/rest/baseservice.php
  • Класс: BitrixSaleDeliveryRestBaseService
  • Вызов: BaseService::onRestAppDelete
static function onRestAppDelete(array $fields): void
{
	if (!MainLoader::includeModule('rest'))
	{
		return;
	}

	if (empty($fields['APP_ID']) || empty($fields['CLEAN']) || $fields['CLEAN'] !== true)
	{
		return;
	}

	$app = RestAppTable::getByClientId($fields['APP_ID']);
	if (!$app)
	{
		return;
	}

	$restHandlerResult = InternalsDeliveryRestHandlerTable::getList([
		'select' => ['ID', 'CODE'],
		'filter' => [
			'=APP_ID' => $app['CLIENT_ID'],
		],
	]);
	while ($restHandler = $restHandlerResult->fetch())
	{
		$deliveryResult = SaleDeliveryServicesManager::getList([
			'select' => ['ID', 'CONFIG'],
			'filter' => [
				'@CLASS_NAME' => self::ALLOW_HANDLERS,
			],
		]);
		while ($delivery = $deliveryResult->fetch())
		{
			$handlerCode = self::getRestCodeFromConfig($delivery['CONFIG']);
			if ($handlerCode === $restHandler['CODE'])
			{
				SaleDeliveryServicesManager::delete($delivery['ID'], false);
			}
		}

		SaleDeliveryRestInternalsDeliveryRestHandlerTable::delete($restHandler['ID']);
	}
}