- Модуль: imconnector
- Путь к файлу: ~/bitrix/modules/imconnector/lib/connector.php
- Класс: BitrixImConnectorConnector
- Вызов: Connector::delete
static function delete($line, $connector)
{
$result = new Result();
if (
empty($line)
|| empty($connector)
)
{
$result->addError(new Error(
Loc::getMessage('IMCONNECTOR_EMPTY_PARAMETRS'),
Library::ERROR_IMCONNECTOR_EMPTY_PARAMETRS,
__METHOD__,
array('line' => $line, 'connector' => $connector)
));
}
elseif (!self::isConnector($connector))
{
$result->addError(new Error(
Loc::getMessage('IMCONNECTOR_NOT_AVAILABLE_CONNECTOR'),
Library::ERROR_NOT_AVAILABLE_CONNECTOR,
__METHOD__,
$connector
));
}
else
{
$status = Status::getInstance($connector, (int)$line);
$cacheId = self::getCacheIdConnector($line, $connector);
if (!$status->getActive())
{
$result->addError(new Error(
Loc::getMessage('IMCONNECTOR_DELETE_NOT_EXISTING_CONNECTOR'),
Library::ERROR_DELETE_NOT_EXISTING_CONNECTOR,
__METHOD__,
$connector
));
}
if ($result->isSuccess())
{
switch ($connector)
{
case 'livechat':
if (Loader::includeModule(Library::MODULE_ID_OPEN_LINES))
{
$liveChatManager = new LiveChatManager($line);
if (!$liveChatManager->delete())
{
$result->addError(new Error(
Loc::getMessage('IMCONNECTOR_FAILED_TO_DELETE_CONNECTOR'),
Library::ERROR_FAILED_TO_DELETE_CONNECTOR,
__METHOD__,
$connector
));
}
}
else
{
$result->addError(new Error(
Loc::getMessage('IMCONNECTOR_FAILED_TO_LOAD_MODULE_OPEN_LINES'),
Library::ERROR_FAILED_TO_LOAD_MODULE_OPEN_LINES,
__METHOD__,
$connector
));
}
break;
case 'network':
if (Loader::includeModule(Library::MODULE_ID_OPEN_LINES))
{
$output = new Output($connector, $line);
$resultDelete = $output->delete();
if (!$resultDelete->isSuccess())
{
$result->addError(new Error(
Loc::getMessage('IMCONNECTOR_FAILED_TO_DELETE_CONNECTOR'),
Library::ERROR_FAILED_TO_DELETE_CONNECTOR,
__METHOD__,
$connector
));
$result->addErrors($resultDelete->getErrors());
}
}
else
{
$result->addError(new Error(
Loc::getMessage('IMCONNECTOR_FAILED_TO_LOAD_MODULE_OPEN_LINES'),
Library::ERROR_FAILED_TO_LOAD_MODULE_OPEN_LINES,
__METHOD__,
$connector
));
}
break;
case 'facebook':
case Library::ID_FBINSTAGRAMDIRECT_CONNECTOR:
case 'vkgroup':
case 'ok':
case 'telegrambot':
case 'botframework':
case 'facebookcomments':
case Library::ID_FBINSTAGRAM_CONNECTOR:
case 'avito':
case 'wechat':
case 'imessage':
$output = new Output($connector, $line);
$rawDelete = $output->deleteConnector();
if(!$rawDelete->isSuccess())
{
$result->addError(new Error(
Loc::getMessage('IMCONNECTOR_FAILED_TO_DELETE_CONNECTOR'),
Library::ERROR_FAILED_TO_DELETE_CONNECTOR,
__METHOD__,
$connector
));
$result->addErrors($rawDelete->getErrors());
}
break;
default:
$result->addError(new Error(
Loc::getMessage('IMCONNECTOR_FEATURE_IS_NOT_SUPPORTED'),
Library::ERROR_FEATURE_IS_NOT_SUPPORTED,
__METHOD__,
$connector
));
break;
}
}
if ($result->isSuccess())
{
Status::delete($connector, (int)$line);
}
self::cleanCacheConnector($line, $cacheId);
}
return $result;
}