summaryrefslogtreecommitdiff
path: root/transferengine-plugins/fediversetransferplugin/fediverseapi.h
diff options
context:
space:
mode:
Diffstat (limited to 'transferengine-plugins/fediversetransferplugin/fediverseapi.h')
-rw-r--r--transferengine-plugins/fediversetransferplugin/fediverseapi.h65
1 files changed, 65 insertions, 0 deletions
diff --git a/transferengine-plugins/fediversetransferplugin/fediverseapi.h b/transferengine-plugins/fediversetransferplugin/fediverseapi.h
new file mode 100644
index 0000000..a85442c
--- /dev/null
+++ b/transferengine-plugins/fediversetransferplugin/fediverseapi.h
@@ -0,0 +1,65 @@
+/*
+ * SPDX-FileCopyrightText: 2013 - 2026 Jolla Ltd.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+#ifndef FEDIVERSEAPI_H
+#define FEDIVERSEAPI_H
+
+#include <QtCore/QMap>
+#include <QtCore/QObject>
+
+#include <QtNetwork/QNetworkAccessManager>
+#include <QtNetwork/QNetworkReply>
+
+class FediverseApi : public QObject
+{
+ Q_OBJECT
+
+public:
+ enum API_CALL {
+ NONE,
+ UPLOAD_MEDIA,
+ POST_STATUS
+ };
+
+ explicit FediverseApi(QNetworkAccessManager *qnam, QObject *parent = 0);
+ ~FediverseApi();
+
+ bool uploadImage(const QString &filePath,
+ const QString &statusText,
+ const QString &mimeType,
+ const QString &apiHost,
+ const QString &accessToken);
+ bool postStatus(const QString &statusText,
+ const QString &apiHost,
+ const QString &accessToken);
+
+ void cancelUpload();
+
+Q_SIGNALS:
+ void transferProgressUpdated(qreal progress);
+ void transferFinished();
+ void transferError();
+ void transferCanceled();
+ void credentialsExpired();
+
+private Q_SLOTS:
+ void replyError(QNetworkReply::NetworkError error);
+ void finished();
+ void uploadProgress(qint64 received, qint64 total);
+
+private:
+ bool postStatusInternal(const QString &mediaId);
+ void finishTransfer(QNetworkReply::NetworkError error, int httpCode, const QByteArray &data);
+
+ QMap<QNetworkReply*, API_CALL> m_replies;
+ bool m_cancelRequested;
+ QNetworkAccessManager *m_qnam;
+ QString m_accessToken;
+ QString m_apiHost;
+ QString m_statusText;
+};
+
+#endif // FEDIVERSEAPI_H