From ca8c56d473c3c7d5af9f3122633890474ce9b1e8 Mon Sep 17 00:00:00 2001 From: 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com> Date: Thu, 11 Sep 2025 22:34:04 +1000 Subject: plugin: add requests Replaces QML Requests singleton --- plugin/src/Caelestia/requests.cpp | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 plugin/src/Caelestia/requests.cpp (limited to 'plugin/src/Caelestia/requests.cpp') diff --git a/plugin/src/Caelestia/requests.cpp b/plugin/src/Caelestia/requests.cpp new file mode 100644 index 0000000..2ceddb3 --- /dev/null +++ b/plugin/src/Caelestia/requests.cpp @@ -0,0 +1,35 @@ +#include "requests.hpp" + +#include +#include +#include + +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 -- cgit v1.2.3-freya