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

@@ -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;
};
}