Added some functionality to the accountPopup (#117)

* Added some buttons.

* Added some more functionality.

* Finished adding button functionality.

* Implemented @fourtf's suggestions.
This commit is contained in:
Cranken
2017-09-23 19:23:10 +02:00
committed by fourtf
parent 206a3518b0
commit 881e695189
16 changed files with 555 additions and 130 deletions
+27
View File
@@ -1,6 +1,7 @@
#pragma once
#include "credentials.hpp"
#include "accountmanager.hpp"
#include <QEventLoop>
#include <QJsonArray>
@@ -76,6 +77,32 @@ static void getUserID(QString username, std::function<void(QString)> successCall
successCallback(id.toString());
});
}
static void put(QUrl url, std::function<void(QJsonObject)> successCallback)
{
auto manager = new QNetworkAccessManager();
QNetworkRequest request(url);
request.setRawHeader("Client-ID", getDefaultClientID());
request.setRawHeader("Accept", "application/vnd.twitchtv.v5+json");
request.setRawHeader("Authorization", "OAuth " +
AccountManager::getInstance().getTwitchUser().getOAuthToken().toUtf8());
QNetworkReply *reply = manager->put(request,"");
QObject::connect(reply, &QNetworkReply::finished, [=](){
if(reply->error() == QNetworkReply::NetworkError::NoError)
{
QByteArray data = reply->readAll();
QJsonDocument jsonDoc(QJsonDocument::fromJson(data));
if(!jsonDoc.isNull())
{
QJsonObject rootNode = jsonDoc.object();
successCallback(rootNode);
}
}
reply->deleteLater();
manager->deleteLater();
});
}
} // namespace twitch