[Pkg-owncloud-commits] [owncloud-client] 81/484: Now add parameters in a less crappy way

Sandro Knauß hefee-guest at moszumanska.debian.org
Wed Dec 16 00:37:17 UTC 2015


This is an automated email from the git hooks/post-receive script.

hefee-guest pushed a commit to branch master
in repository owncloud-client.

commit a34b663828fd1697664eeefde8831e526ba63f7e
Author: Roeland Jago Douma <rullzer at owncloud.com>
Date:   Thu Oct 15 21:58:16 2015 +0200

    Now add parameters in a less crappy way
---
 src/gui/ocsjob.cpp      | 57 ++++++++++++++++++++++++++-----------------------
 src/gui/ocsjob.h        | 18 ++++++----------
 src/gui/ocssharejob.cpp | 36 ++++++++++---------------------
 3 files changed, 47 insertions(+), 64 deletions(-)

diff --git a/src/gui/ocsjob.cpp b/src/gui/ocsjob.cpp
index f9e86b6..961e84f 100644
--- a/src/gui/ocsjob.cpp
+++ b/src/gui/ocsjob.cpp
@@ -32,19 +32,9 @@ void OcsJob::setVerb(const QByteArray &verb)
     _verb = verb;
 }
 
-void OcsJob::setUrl(const QUrl &url)
+void OcsJob::addParam(const QString &name, const QString &value)
 {
-    _url = url;
-}
-
-void OcsJob::setGetParams(const QList<QPair<QString, QString> >& getParams)
-{
-    _url.setQueryItems(getParams);
-}
-
-void OcsJob::setPostParams(const QList<QPair<QString, QString> >& postParams)
-{
-    _postParams = postParams;
+    _params.append(qMakePair(name, value));
 }
 
 void OcsJob::addPassStatusCode(int code)
@@ -58,24 +48,31 @@ void OcsJob::start()
     req.setRawHeader("Ocs-APIREQUEST", "true");
     req.setRawHeader("Content-Type", "application/x-www-form-urlencoded");
 
-    // Url encode the _postParams and put them in a buffer.
-    QByteArray postData;
-    Q_FOREACH(auto tmp2, _postParams) {
-        if (! postData.isEmpty()) {
-            postData.append("&");
+    QUrl url = Account::concatUrlPath(account()->url(), path());
+    QBuffer *buffer = new QBuffer;
+
+    if (_verb == "GET") {
+        url.setQueryItems(_params);
+    } else if (_verb == "POST" || _verb == "PUT") {
+        // Url encode the _postParams and put them in a buffer.
+        QByteArray postData;
+        Q_FOREACH(auto tmp, _params) {
+            if (!postData.isEmpty()) {
+                postData.append("&");
+            }
+            postData.append(QUrl::toPercentEncoding(tmp.first));
+            postData.append("=");
+            postData.append(QUrl::toPercentEncoding(tmp.second));
         }
-        postData.append(QUrl::toPercentEncoding(tmp2.first));
-        postData.append("=");
-        postData.append(QUrl::toPercentEncoding(tmp2.second));
+        buffer->setData(postData);
     }
-    QBuffer *buffer = new QBuffer;
-    buffer->setData(postData);
 
-    auto queryItems = _url.queryItems();
+    //We want json data
+    auto queryItems = url.queryItems();
     queryItems.append(qMakePair(QString::fromLatin1("format"), QString::fromLatin1("json")));
-    _url.setQueryItems(queryItems);
+    url.setQueryItems(queryItems);
 
-    setReply(davRequest(_verb, _url, req, buffer));
+    setReply(davRequest(_verb, url, req, buffer));
     setupConnections(reply());
     buffer->setParent(reply());
     AbstractNetworkJob::start();
@@ -88,14 +85,20 @@ bool OcsJob::finished()
     bool success;
     QVariantMap json = QtJson::parse(replyData, success).toMap();
     if (!success) {
-        qDebug() << "Could not parse reply to" << _verb << _url << _postParams
+        qDebug() << "Could not parse reply to" 
+                 << _verb 
+                 << Account::concatUrlPath(account()->url(), path()) 
+                 << _params
                  << ":" << replyData;
     }
 
     QString message;
     const int statusCode = getJsonReturnCode(json, message);
     if (!_passStatusCodes.contains(statusCode)) {
-        qDebug() << "Reply to" << _verb << _url << _postParams
+        qDebug() << "Reply to"
+                 << _verb
+                 << Account::concatUrlPath(account()->url(), path())
+                 << _params
                  << "has unexpected status code:" << statusCode << replyData;
     }
 
diff --git a/src/gui/ocsjob.h b/src/gui/ocsjob.h
index dc6c95d..36f2eb0 100644
--- a/src/gui/ocsjob.h
+++ b/src/gui/ocsjob.h
@@ -48,18 +48,13 @@ protected:
     void setVerb(const QByteArray& verb);
 
     /**
-     * The url of the OCS endpoint
+     * Add a new parameter to the request.
+     * Depending on the verb this is GET or POST parameter
      *
-     * @param url
+     * @param name The name of the parameter
+     * @param value The value of the parameter
      */
-    void setUrl(const QUrl& url);
-
-    /**
-     * Set the get parameters to the url
-     *
-     * @param getParams list of pairs to add to the url
-     */
-    void setGetParams(const QList<QPair<QString, QString> >& getParams);
+    void addParam(const QString& name, const QString &value);
 
     /**
      * Set the post parameters
@@ -110,8 +105,7 @@ private slots:
 
 private:
     QByteArray _verb;
-    QUrl _url;
-    QList<QPair<QString, QString> > _postParams;
+    QList<QPair<QString, QString> > _params;
     QVector<int> _passStatusCodes;
 };
 
diff --git a/src/gui/ocssharejob.cpp b/src/gui/ocssharejob.cpp
index b809f07..feb5eaf 100644
--- a/src/gui/ocssharejob.cpp
+++ b/src/gui/ocssharejob.cpp
@@ -23,27 +23,23 @@ namespace OCC {
 OcsShareJob::OcsShareJob(AccountPtr account, QObject* parent)
 : OcsJob(account, parent)
 {
-    setUrl(Account::concatUrlPath(account->url(), QString("ocs/v1.php/apps/files_sharing/api/v1/shares")));
+    setPath("ocs/v1.php/apps/files_sharing/api/v1/shares");
 }
 
 OcsShareJob::OcsShareJob(int shareId, AccountPtr account, QObject* parent)
 : OcsJob(account, parent)
 {
-    setUrl(Account::concatUrlPath(account->url(), QString("ocs/v1.php/apps/files_sharing/api/v1/shares/%1").arg(shareId)));
+    setPath(QString("ocs/v1.php/apps/files_sharing/api/v1/shares/%1").arg(shareId));
 }
 
 void OcsShareJob::getShares(const QString &path)
 {
     setVerb("GET");
-    
-    QList<QPair<QString, QString> > getParams;
-    getParams.append(qMakePair(QString::fromLatin1("path"), path));
-    setGetParams(getParams);
 
+    addParam(QString::fromLatin1("path"), path);
     addPassStatusCode(404);
 
     start();
-
 }
 
 void OcsShareJob::deleteShare()
@@ -57,15 +53,12 @@ void OcsShareJob::setExpireDate(const QDate &date)
 {
     setVerb("PUT");
 
-    QList<QPair<QString, QString> > postParams;
-
     if (date.isValid()) {
-        postParams.append(qMakePair(QString::fromLatin1("expireDate"), date.toString("yyyy-MM-dd")));
+        addParam(QString::fromLatin1("expireDate"), date.toString("yyyy-MM-dd"));
     } else {
-        postParams.append(qMakePair(QString::fromLatin1("expireDate"), QString()));
+        addParam(QString::fromLatin1("expireDate"), QString());
     }
 
-    setPostParams(postParams);
     start();
 }
 
@@ -73,10 +66,8 @@ void OcsShareJob::setPassword(const QString &password)
 {
     setVerb("PUT");
 
-    QList<QPair<QString, QString> > postParams;
-    postParams.append(qMakePair(QString::fromLatin1("password"), password));
+    addParam(QString::fromLatin1("password"), password);
 
-    setPostParams(postParams);
     start();
 }
 
@@ -84,11 +75,9 @@ void OcsShareJob::setPublicUpload(bool publicUpload)
 {
     setVerb("PUT");
 
-    QList<QPair<QString, QString> > postParams;
     const QString value = QString::fromLatin1(publicUpload ? "true" : "false");
-    postParams.append(qMakePair(QString::fromLatin1("publicUpload"), value));
+    addParam(QString::fromLatin1("publicUpload"), value);
 
-    setPostParams(postParams);
     start();
 }
 
@@ -96,20 +85,17 @@ void OcsShareJob::createShare(const QString &path, SHARETYPE shareType, const QS
 {
     setVerb("POST");
 
-    QList<QPair<QString, QString> > postParams;
-    postParams.append(qMakePair(QString::fromLatin1("path"), path));
-    postParams.append(qMakePair(QString::fromLatin1("shareType"), QString::number(static_cast<int>(shareType))));
+    addParam(QString::fromLatin1("path"), path);
+    addParam(QString::fromLatin1("shareType"), QString::number(static_cast<int>(shareType)));
 
     if (!password.isEmpty()) {
-        postParams.append(qMakePair(QString::fromLatin1("shareType"), password));
+        addParam(QString::fromLatin1("shareType"), password);
     }
 
     if (date.isValid()) {
-        postParams.append(qMakePair(QString::fromLatin1("expireDate"), date.toString("yyyy-MM-dd")));
+        addParam(QString::fromLatin1("expireDate"), date.toString("yyyy-MM-dd"));
     }
 
-    setPostParams(postParams);
-
     addPassStatusCode(403);
 
     start();

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-owncloud/owncloud-client.git



More information about the Pkg-owncloud-commits mailing list