Remove NetworkManager urlPut function
This commit is contained in:
@@ -24,50 +24,6 @@ public:
|
|||||||
|
|
||||||
static void init();
|
static void init();
|
||||||
static void deinit();
|
static void deinit();
|
||||||
|
|
||||||
template <typename FinishedCallback>
|
|
||||||
static void urlPut(QNetworkRequest request, FinishedCallback onFinished, QByteArray *data)
|
|
||||||
{
|
|
||||||
NetworkRequester requester;
|
|
||||||
NetworkWorker *worker = new NetworkWorker;
|
|
||||||
|
|
||||||
worker->moveToThread(&NetworkManager::workerThread);
|
|
||||||
QObject::connect(
|
|
||||||
&requester, &NetworkRequester::requestUrl, worker,
|
|
||||||
[worker, data, onFinished = std::move(onFinished), request = std::move(request)]() {
|
|
||||||
QNetworkReply *reply = NetworkManager::NaM.put(request, *data);
|
|
||||||
|
|
||||||
reply->connect(reply, &QNetworkReply::finished,
|
|
||||||
[worker, reply, onFinished = std::move(onFinished)]() {
|
|
||||||
onFinished(reply);
|
|
||||||
delete worker;
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
emit requester.requestUrl();
|
|
||||||
}
|
|
||||||
|
|
||||||
template <typename FinishedCallback>
|
|
||||||
static void urlPut(QNetworkRequest request, FinishedCallback onFinished)
|
|
||||||
{
|
|
||||||
NetworkRequester requester;
|
|
||||||
NetworkWorker *worker = new NetworkWorker;
|
|
||||||
|
|
||||||
worker->moveToThread(&NetworkManager::workerThread);
|
|
||||||
QObject::connect(
|
|
||||||
&requester, &NetworkRequester::requestUrl, worker,
|
|
||||||
[onFinished = std::move(onFinished), request = std::move(request), worker]() {
|
|
||||||
QNetworkReply *reply = NetworkManager::NaM.put(request, "");
|
|
||||||
|
|
||||||
reply->connect(reply, &QNetworkReply::finished,
|
|
||||||
[onFinished = std::move(onFinished), reply, worker]() {
|
|
||||||
onFinished(reply);
|
|
||||||
delete worker;
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
emit requester.requestUrl();
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace chatterino
|
} // namespace chatterino
|
||||||
|
|||||||
+12
-15
@@ -80,9 +80,11 @@ static void twitchApiGetUserID(QString username, const QObject *caller,
|
|||||||
successCallback(id.toString());
|
successCallback(id.toString());
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
static void twitchApiPut(QUrl url, std::function<void(QJsonObject)> successCallback)
|
static void twitchApiPut(QUrl url, std::function<void(const rapidjson::Document &)> successCallback)
|
||||||
{
|
{
|
||||||
QNetworkRequest request(url);
|
NetworkRequest request(url);
|
||||||
|
request.setRequestType(NetworkRequest::PutRequest);
|
||||||
|
request.setCaller(QThread::currentThread());
|
||||||
|
|
||||||
auto currentTwitchUser = getApp()->accounts->twitch.getCurrent();
|
auto currentTwitchUser = getApp()->accounts->twitch.getCurrent();
|
||||||
QByteArray oauthToken;
|
QByteArray oauthToken;
|
||||||
@@ -92,22 +94,17 @@ static void twitchApiPut(QUrl url, std::function<void(QJsonObject)> successCallb
|
|||||||
// XXX(pajlada): Bail out?
|
// XXX(pajlada): Bail out?
|
||||||
}
|
}
|
||||||
|
|
||||||
request.setRawHeader("Client-ID", getDefaultClientID());
|
request.makeAuthorizedV5(getDefaultClientID(), currentTwitchUser->getOAuthToken());
|
||||||
request.setRawHeader("Accept", "application/vnd.twitchtv.v5+json");
|
|
||||||
request.setRawHeader("Authorization", "OAuth " + oauthToken);
|
|
||||||
|
|
||||||
NetworkManager::urlPut(std::move(request), [=](QNetworkReply *reply) {
|
request.onSuccess([successCallback](const auto &document) {
|
||||||
if (reply->error() == QNetworkReply::NetworkError::NoError) {
|
if (!document.IsNull()) {
|
||||||
QByteArray data = reply->readAll();
|
successCallback(document);
|
||||||
QJsonDocument jsonDoc(QJsonDocument::fromJson(data));
|
|
||||||
if (!jsonDoc.isNull()) {
|
|
||||||
QJsonObject rootNode = jsonDoc.object();
|
|
||||||
|
|
||||||
successCallback(rootNode);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
reply->deleteLater();
|
|
||||||
|
return true;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
request.execute();
|
||||||
}
|
}
|
||||||
|
|
||||||
static void twitchApiDelete(QUrl url, std::function<void()> successCallback)
|
static void twitchApiDelete(QUrl url, std::function<void()> successCallback)
|
||||||
|
|||||||
@@ -178,7 +178,7 @@ void UserInfoPopup::installEvents()
|
|||||||
|
|
||||||
this->ui_.follow->setEnabled(false);
|
this->ui_.follow->setEnabled(false);
|
||||||
if (this->ui_.follow->isChecked()) {
|
if (this->ui_.follow->isChecked()) {
|
||||||
twitchApiPut(requestUrl, [this](QJsonObject) { this->ui_.follow->setEnabled(true); });
|
twitchApiPut(requestUrl, [this](const auto &) { this->ui_.follow->setEnabled(true); });
|
||||||
} else {
|
} else {
|
||||||
twitchApiDelete(requestUrl, [this] { this->ui_.follow->setEnabled(true); });
|
twitchApiDelete(requestUrl, [this] { this->ui_.follow->setEnabled(true); });
|
||||||
}
|
}
|
||||||
@@ -373,9 +373,11 @@ UserInfoPopup::TimeoutWidget::TimeoutWidget()
|
|||||||
}
|
}
|
||||||
a->setBorderColor(color1);
|
a->setBorderColor(color1);
|
||||||
|
|
||||||
QObject::connect(a.getElement(), &RippleEffectLabel2::clicked, [
|
QObject::connect(
|
||||||
this, timeout = std::get<1>(item)
|
a.getElement(), &RippleEffectLabel2::clicked,
|
||||||
] { this->buttonClicked.invoke(std::make_pair(Action::Timeout, timeout)); });
|
[this, timeout = std::get<1>(item)] {
|
||||||
|
this->buttonClicked.invoke(std::make_pair(Action::Timeout, timeout));
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user