blob: 2ceddb35153dc095ba21983dd7b7ef429e5a7b04 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
#include "requests.hpp"
#include <qnetworkaccessmanager.h>
#include <qnetworkreply.h>
#include <qnetworkrequest.h>
namespace caelestia {
Requests::Requests(QObject* parent)
: QObject(parent)
, m_manager(new QNetworkAccessManager(this)) {}
void Requests::get(const QUrl& url, QJSValue onSuccess, QJSValue onError) const {
if (!onSuccess.isCallable()) {
qWarning() << "Requests::get: onSuccess is not callable";
return;
}
QNetworkRequest request(url);
auto reply = m_manager->get(request);
QObject::connect(reply, &QNetworkReply::finished, [reply, onSuccess, onError]() {
if (reply->error() == QNetworkReply::NoError) {
onSuccess.call({ QString(reply->readAll()) });
} else if (onError.isCallable()) {
onError.call({ reply->errorString() });
} else {
qWarning() << "Requests::get: request failed with error" << reply->errorString();
}
reply->deleteLater();
});
}
} // namespace caelestia
|