first commit
This commit is contained in:
71
client.cpp
Normal file
71
client.cpp
Normal 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();
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user