File indexing completed on 2025-02-02 04:11:29
0001 /* 0002 * SPDX-FileCopyrightText: 2019-2023 Mattia Basaglia <dev@dragon.best> 0003 * 0004 * SPDX-License-Identifier: GPL-3.0-or-later 0005 */ 0006 0007 #pragma once 0008 0009 #include <QObject> 0010 #include <QJsonDocument> 0011 #include <QJsonObject> 0012 #include <QNetworkAccessManager> 0013 #include <QNetworkRequest> 0014 #include <QNetworkReply> 0015 0016 namespace glaxnimate::gui { 0017 0018 class GraphQl: public QObject 0019 { 0020 Q_OBJECT 0021 public: 0022 explicit GraphQl(const QUrl& url) 0023 : url(url) 0024 { 0025 } 0026 0027 explicit GraphQl(const QString& url) 0028 : GraphQl(QUrl(url)) 0029 { 0030 } 0031 0032 void query(const QString& query, const QJsonObject& vars); 0033 0034 QNetworkAccessManager& http() { return http_; } 0035 0036 Q_SIGNALS: 0037 void query_started(); 0038 void query_progress(qint64 bytes, qint64 total); 0039 void query_finished(QNetworkReply* reply); 0040 0041 private: 0042 QUrl url{"https://graphql.lottiefiles.com/"}; 0043 QNetworkAccessManager http_; 0044 }; 0045 0046 } // namespace glaxnimate::gui