diff --git a/src/plugins/axivion/CMakeLists.txt b/src/plugins/axivion/CMakeLists.txt index 8e409b97119..cb34067169d 100644 --- a/src/plugins/axivion/CMakeLists.txt +++ b/src/plugins/axivion/CMakeLists.txt @@ -7,7 +7,6 @@ add_qtc_plugin(Axivion axivionoutputpane.cpp axivionoutputpane.h axivionplugin.cpp axivionplugin.h axivionprojectsettings.h axivionprojectsettings.cpp - axivionquery.h axivionquery.cpp axivionresultparser.h axivionresultparser.cpp axivionsettings.cpp axivionsettings.h axiviontr.h diff --git a/src/plugins/axivion/axivion.qbs b/src/plugins/axivion/axivion.qbs index 3f82c944ce7..a6005edbc35 100644 --- a/src/plugins/axivion/axivion.qbs +++ b/src/plugins/axivion/axivion.qbs @@ -19,8 +19,6 @@ QtcPlugin { "axivionplugin.h", "axivionprojectsettings.h", "axivionprojectsettings.cpp", - "axivionquery.h", - "axivionquery.cpp", "axivionresultparser.h", "axivionresultparser.cpp", "axivionsettings.cpp", diff --git a/src/plugins/axivion/axivionquery.cpp b/src/plugins/axivion/axivionquery.cpp deleted file mode 100644 index 07bf01684ff..00000000000 --- a/src/plugins/axivion/axivionquery.cpp +++ /dev/null @@ -1,96 +0,0 @@ -// Copyright (C) 2022 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 - -#include "axivionquery.h" - -#include "axivionplugin.h" -#include "axivionsettings.h" - -#include -#include - -#include - -using namespace Utils; - -namespace Axivion::Internal { - -AxivionQuery::AxivionQuery(QueryType type, const QStringList ¶meters) - : m_type(type) - , m_parameters(parameters) -{ -} - -QString AxivionQuery::toString() const -{ - QString query = "/api"; // common for all except RuleInfo - switch (m_type) { - case NoQuery: - return {}; - case DashboardInfo: - return query; - case ProjectInfo: - QTC_ASSERT(m_parameters.size() == 1, return {}); - query += "/projects/" + QUrl::toPercentEncoding(m_parameters.first()); - return query; - case IssuesForFileList: - QTC_ASSERT(m_parameters.size() == 3, return {}); - // FIXME shall we validate the kind? (some kinds do not support path filter) - query += "/projects/" + QUrl::toPercentEncoding(m_parameters.first()) - + "/issues?kind=" + m_parameters.at(1) + "&filter_path=" - + QUrl::toPercentEncoding(m_parameters.at(2)) + "&format=csv"; - return query; - case RuleInfo: - QTC_ASSERT(m_parameters.size() == 2, return {}); - query = "/projects/" + QUrl::toPercentEncoding(m_parameters.first()) - + "/issues/" + m_parameters.at(1) + "/rule"; - return query; - } - - return {}; -} - -AxivionQueryRunner::AxivionQueryRunner(const AxivionQuery &query, QObject *parent) - : QObject(parent) -{ - const AxivionServer server = settings().server; - - QStringList args = server.curlArguments(); - args << "-i"; - args << "--header" << "Authorization: AxToken " + server.token; - - QString url = server.dashboard; - while (url.endsWith('/')) url.chop(1); - url += query.toString(); - args << url; - - m_process.setCommand({settings().curl(), args}); - connect(&m_process, &Process::done, this, [this]{ - if (m_process.result() != ProcessResult::FinishedWithSuccess) { - const int exitCode = m_process.exitCode(); - if (m_process.exitStatus() == QProcess::NormalExit - && (exitCode == 35 || exitCode == 60) - && handleCertificateIssue()) { - // prepend -k for re-requesting same query - CommandLine cmdline = m_process.commandLine(); - cmdline.prependArgs({"-k"}); - m_process.close(); - m_process.setCommand(cmdline); - start(); - return; - } - emit resultRetrieved(m_process.rawStdErr()); - } else { - emit resultRetrieved(m_process.rawStdOut()); - } - emit finished(); - }); -} - -void AxivionQueryRunner::start() -{ - QTC_ASSERT(!m_process.isRunning(), return); - m_process.start(); -} - -} // Axivion::Internal diff --git a/src/plugins/axivion/axivionquery.h b/src/plugins/axivion/axivionquery.h deleted file mode 100644 index 11af5bbd87b..00000000000 --- a/src/plugins/axivion/axivionquery.h +++ /dev/null @@ -1,40 +0,0 @@ -// Copyright (C) 2022 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 - -#pragma once - -#include - -#include - -namespace Axivion::Internal { - -class AxivionQuery -{ -public: - enum QueryType {NoQuery, DashboardInfo, ProjectInfo, IssuesForFileList, RuleInfo}; - explicit AxivionQuery(QueryType type, const QStringList ¶meters = {}); - - QString toString() const; - -private: - QueryType m_type = NoQuery; - QStringList m_parameters; -}; - -class AxivionQueryRunner : public QObject -{ - Q_OBJECT -public: - explicit AxivionQueryRunner(const AxivionQuery &query, QObject *parent = nullptr); - void start(); - -signals: - void finished(); - void resultRetrieved(const QByteArray &json); - -private: - Utils::Process m_process; -}; - -} // Axivion::Internal