#include "client.h" #include #include #include #include #include Client::Client(QString url, QString username, QString password) { this->url = url; this->username = username; this->password = password; } void Client::version(std::function callback, std::function 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 callback, std::function 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 callback, std::function 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(); }); }