Latest version number query task

This commit is contained in:
Nav
2021-10-18 01:04:40 +01:00
parent 4ad1ddda44
commit 5d3bddac01
3 changed files with 56 additions and 0 deletions

View File

@@ -26,6 +26,7 @@ find_package(Qt6Xml)
find_package(Qt6Svg)
find_package(Qt6UiTools)
find_package(Qt6SvgWidgets)
find_package(Qt6Network)
set(CMAKE_SKIP_BUILD_RPATH false)
set(CMAKE_BUILD_RPATH_USE_ORIGIN true)
@@ -137,6 +138,7 @@ add_executable(Bloom
src/Insight/InsightWorker/Tasks/RefreshTargetPinStates.cpp
src/Insight/InsightWorker/Tasks/SetTargetPinState.cpp
src/Insight/InsightWorker/Tasks/ReadTargetMemory.cpp
src/Insight/InsightWorker/Tasks/QueryLatestVersionNumber.cpp
# Error dialogue window
src/Insight/UserInterfaces/InsightWindow/Widgets/ErrorDialogue/ErrorDialogue.cpp
@@ -235,6 +237,7 @@ target_link_libraries(Bloom Qt6::Widgets)
target_link_libraries(Bloom Qt6::Xml)
target_link_libraries(Bloom Qt6::Svg)
target_link_libraries(Bloom Qt6::SvgWidgets)
target_link_libraries(Bloom Qt6::Network)
target_compile_options(
Bloom

View File

@@ -0,0 +1,29 @@
#include "QueryLatestVersionNumber.hpp"
#include <QtNetwork/QNetworkAccessManager>
#include <QtNetwork/QNetworkRequest>
#include <QtNetwork/QNetworkReply>
#include <QUrl>
#include <QUrlQuery>
#include <QJsonDocument>
using namespace Bloom;
void QueryLatestVersionNumber::run(TargetControllerConsole& targetControllerConsole) {
auto networkAccessManager = new QNetworkAccessManager(this);
auto queryVersionEndpointUrl = QUrl("http://bloom.local/latest-version");
queryVersionEndpointUrl.setQuery(QUrlQuery({
{"currentVersionNumber", this->currentVersionNumber}
}));
auto response = networkAccessManager->get(QNetworkRequest(queryVersionEndpointUrl));
this->connect(response, &QNetworkReply::finished, this, [this, response] {
const auto jsonResponseObject = QJsonDocument::fromJson(response->readAll()).object();
if (jsonResponseObject.contains("latestVersionNumber")) {
emit this->latestVersionNumberRetrieved(
jsonResponseObject.value("latestVersionNumber").toString()
);
}
});
}

View File

@@ -0,0 +1,24 @@
#pragma once
#include "InsightWorkerTask.hpp"
namespace Bloom
{
class QueryLatestVersionNumber: public InsightWorkerTask
{
Q_OBJECT
public:
QueryLatestVersionNumber(const QString& currentVersionNumber):
InsightWorkerTask(), currentVersionNumber(currentVersionNumber) {}
signals:
void latestVersionNumberRetrieved(const QString& latestVersionNumber);
protected:
void run(TargetControllerConsole& targetControllerConsole) override;
private:
QString currentVersionNumber;
};
}