JsonApiJob: Add method usePOST to allow anonymous POST requests
authorMichael Schuster <michael@schuster.ms>
Sat, 18 Jan 2020 14:03:21 +0000 (15:03 +0100)
committerMichael Schuster <michael@schuster.ms>
Sat, 18 Jan 2020 14:03:21 +0000 (15:03 +0100)
Signed-off-by: Michael Schuster <michael@schuster.ms>
src/libsync/networkjobs.cpp
src/libsync/networkjobs.h

index 76789a8ce716dd0991415fdd442600c18cd9cf1c..885a89618751e0c09825044a53680aa2f8316949 100644 (file)
@@ -801,7 +801,7 @@ void JsonApiJob::start()
     auto query = _additionalParams;
     query.addQueryItem(QLatin1String("format"), QLatin1String("json"));
     QUrl url = Utility::concatUrlPath(account()->url(), path(), query);
-    sendRequest("GET", url, _request);
+    sendRequest(_usePOST ? "POST" : "GET", url, _request);
     AbstractNetworkJob::start();
 }
 
index 765204c881d1436112f81bc711d74f110fc0c1fa..e6fdbcc8c3b2ecbf66fe62a30d120ea4e6102256 100644 (file)
@@ -373,6 +373,16 @@ public:
     void addQueryParams(const QUrlQuery &params);
     void addRawHeader(const QByteArray &headerName, const QByteArray &value);
 
+    /**
+     * @brief usePOST - allow job to do an anonymous POST request instead of GET
+     * @param params: (optional) true for POST, false for GET (default).
+     *
+     * This function needs to be called before start() obviously.
+     */
+    void usePOST(bool usePOST = true) {
+        _usePOST = usePOST;
+    }
+
 public slots:
     void start() override;
 
@@ -398,6 +408,8 @@ signals:
 private:
     QUrlQuery _additionalParams;
     QNetworkRequest _request;
+
+    bool _usePOST = false;
 };
 
 /**