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