- Модуль: imconnector
- Путь к файлу: ~/bitrix/modules/imconnector/lib/rest/helper.php
- Класс: BitrixImConnectorRestHelper
- Вызов: Helper::unRegisterApp
static function unRegisterApp(array $params): bool
{
$result = true;
if (empty($params['REST_APP_ID']) || empty($params['ID']))
{
return false;
}
$restAppId = $params['REST_APP_ID'];
$connectorId = mb_strtolower($params['ID']);
$connection = BitrixMainApplication::getInstance()->getConnection();
$connection->startTransaction();
try
{
$raw = StatusConnectorsTable::getList([
'select' => ['ID', 'LINE', 'CONNECTOR'],
'filter' => [
'=CONNECTOR' => $connectorId,
],
]);
while ($row = $raw->fetch())
{
$isStatusDeleted = BitrixImConnectorStatus::delete($row['CONNECTOR'], (int)$row['LINE']);
if (!$isStatusDeleted)
{
$result = false;
break;
}
}
if ($result)
{
$raw = CustomConnectorsTable::getList([
'select' => ['ID', 'REST_PLACEMENT_ID'],
'filter' => [
'=REST_APP_ID' => $restAppId,
'=ID_CONNECTOR' => $connectorId,
],
]);
while ($row = $raw->fetch())
{
$deleteConnectorResult = CustomConnectorsTable::delete($row['ID']);
$isPlacementUnRegistered = self::unRegisterPlacement((int)$row['REST_PLACEMENT_ID']);
if (!$isPlacementUnRegistered || !$deleteConnectorResult->isSuccess())
{
$result = false;
break;
}
}
}
if ($result)
{
$connection->commitTransaction();
}
else
{
$connection->rollbackTransaction();
}
}
catch (BitrixMainSystemException $e)
{
$connection->rollbackTransaction();
$result = false;
}
return $result;
}