first commit

This commit is contained in:
2025-09-13 15:34:27 +02:00
commit d423636b03
18 changed files with 475 additions and 0 deletions

71
client.cpp Normal file
View File

@@ -0,0 +1,71 @@
#include "client.h"
#include <QNetworkAccessManager>
#include <QNetworkReply>
#include <QNetworkRequest>
#include <QUrl>
#include <QJsonDocument>
Client::Client(QString url, QString username, QString password) {
this->url = url;
this->username = username;
this->password = password;
}
void Client::version(std::function<void (Information)> callback, std::function<void (QString)> errorCallback)
{
QNetworkAccessManager manager;
QUrl url(this->url);
url = url.resolved(QUrl("/api/v1/version/"));
QNetworkRequest request(url);
QNetworkReply *reply = manager.get(request);
QObject::connect(reply, &QNetworkReply::finished, [&]() {
if (reply->error() == QNetworkReply::NoError) {
QByteArray response = reply->readAll();
QJsonDocument doc = QJsonDocument::fromJson(response);
Information info(doc.object());
callback(info);
} else {
errorCallback(reply->errorString());
}
reply->deleteLater();
});
}
void Client::hash(QString gameID, std::function<void(QString)> callback, std::function<void(QString)> errorCallback)
{
QNetworkAccessManager manager;
QUrl url(this->url);
url = url.resolved("/api/v1/games/"+gameID+"/metadata");
QNetworkRequest request(url);
QNetworkReply *reply = manager.get(request);
QObject::connect(reply, &QNetworkReply::finished, [&]() {
if (reply->error() == QNetworkReply::NoError) {
QByteArray response = reply->readAll();
QJsonDocument doc = QJsonDocument::fromJson(response);
callback(doc.object()["md5"].toString());
} else {
errorCallback(reply->errorString());
}
reply->deleteLater();
});
}
void Client::metadata(QString gameID, std::function<void(Metadata)> callback, std::function<void(QString)> errorCallback)
{
QNetworkAccessManager manager;
QUrl url(this->url);
url = url.resolved("/api/v1/games/"+gameID+"/metadata");
QNetworkRequest request(url);
QNetworkReply *reply = manager.get(request);
QObject::connect(reply, &QNetworkReply::finished, [&]() {
if (reply->error() == QNetworkReply::NoError) {
QByteArray response = reply->readAll();
QJsonDocument doc = QJsonDocument::fromJson(response);
Metadata m(doc.object());
callback(m);
} else {
errorCallback(reply->errorString());
}
reply->deleteLater();
});
}