[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [ruqola] /: Add listpermission. Make sure to send info when it success.
From:       Laurent Montel <null () kde ! org>
Date:       2018-08-01 5:29:33
Message-ID: E1fkjhV-0002TV-K2 () code ! kde ! org
[Download RAW message or body]

Git commit d3bd46d4f55f617f1c7057cf851ce3e99b997cb9 by Laurent Montel.
Committed on 01/08/2018 at 05:24.
Pushed by mlaurent into branch 'master'.

Add listpermission. Make sure to send info when it success.

M  +1    -1    autotests/restapi/getusernamesuggestionjobtest.cpp
M  +1    -0    autotests/restapi/restapimethodtest.cpp
M  +2    -0    src/CMakeLists.txt
M  +7    -2    src/restapi/misc/settingsoauthjob.cpp
C  +13   -14   src/restapi/permissions/listpermissionsjob.cpp [from: \
src/restapi/rooms/getroomsjob.cpp - 071% similarity] C  +11   -17   \
src/restapi/permissions/listpermissionsjob.h [from: \
src/restapi/users/getpresencejob.h - 069% similarity] M  +1    -1    \
src/restapi/restapirequest.cpp M  +1    -0    src/restapi/restapirequest.h
M  +2    -0    src/restapi/restapiutil.cpp
M  +1    -0    src/restapi/restapiutil.h
M  +6    -2    src/restapi/rooms/getroomsjob.cpp
M  +9    -2    src/restapi/subscriptions/markroomasreadjob.cpp
M  +7    -2    src/restapi/users/getpresencejob.cpp
M  +1    -1    src/restapi/users/getpresencejob.h
M  +6    -3    src/restapi/users/getusernamesuggestionjob.cpp

https://commits.kde.org/ruqola/d3bd46d4f55f617f1c7057cf851ce3e99b997cb9

diff --git a/autotests/restapi/getusernamesuggestionjobtest.cpp \
b/autotests/restapi/getusernamesuggestionjobtest.cpp index 47f170d8..65e295ab 100644
--- a/autotests/restapi/getusernamesuggestionjobtest.cpp
+++ b/autotests/restapi/getusernamesuggestionjobtest.cpp
@@ -46,6 +46,6 @@ void GetUsernameSuggestionJobTest::shouldGenerateRequest()
     method->setServerUrl(QStringLiteral("http://www.kde.org"));
     job.setRestApiMethod(method);
     const QNetworkRequest request = job.request();
-    QCOMPARE(request.url(), \
QUrl(QStringLiteral("http://www.kde.org/api/v1/users.getPresence?userId=avat"))); +   \
QCOMPARE(request.url(), \
QUrl(QStringLiteral("http://www.kde.org/api/v1/users.getUsernameSuggestion")));  \
delete method;  }
diff --git a/autotests/restapi/restapimethodtest.cpp \
b/autotests/restapi/restapimethodtest.cpp index 78b4737c..477074f3 100644
--- a/autotests/restapi/restapimethodtest.cpp
+++ b/autotests/restapi/restapimethodtest.cpp
@@ -147,4 +147,5 @@ void RestApiMethodTest::shouldGenerateUrl()
     QCOMPARE(rest.generateUrl(RestApiUtil::RestApiUrlType::RoomsFavorite), \
                QUrl(QStringLiteral("http://www.kde.org/api/v1/rooms.favorite")));
     QCOMPARE(rest.generateUrl(RestApiUtil::RestApiUrlType::RoomscleanHistory), \
                QUrl(QStringLiteral("http://www.kde.org/api/v1/rooms.cleanHistory")));
                
     QCOMPARE(rest.generateUrl(RestApiUtil::RestApiUrlType::ForgotPassword), \
QUrl(QStringLiteral("http://www.kde.org/api/v1/users.forgotPassword"))); +    \
QCOMPARE(rest.generateUrl(RestApiUtil::RestApiUrlType::PermissionsList), \
QUrl(QStringLiteral("http://www.kde.org/api/v1/permissions.list")));  }
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 0fa0f6fc..33d7e609 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -81,6 +81,8 @@ set (Ruqola_restapi_SRCS
 
     restapi/subscriptions/markroomasreadjob.cpp
     restapi/subscriptions/markroomasunreadjob.cpp
+
+    restapi/permissions/listpermissionsjob.cpp
     )
 
 set(Ruqola_ddpapi_SRCS
diff --git a/src/restapi/misc/settingsoauthjob.cpp \
b/src/restapi/misc/settingsoauthjob.cpp index e0d0cc87..a481633e 100644
--- a/src/restapi/misc/settingsoauthjob.cpp
+++ b/src/restapi/misc/settingsoauthjob.cpp
@@ -59,8 +59,13 @@ void SettingsOauthJob::slotSettingsOauthFinished()
         const QByteArray data = reply->readAll();
         const QJsonDocument replyJson = QJsonDocument::fromJson(data);
         const QJsonObject replyObject = replyJson.object();
-        addLoggerInfo(QByteArrayLiteral("SettingsOauthJob: finished: ") + \
                replyJson.toJson(QJsonDocument::Indented));
-        Q_EMIT settingsOauthDone(replyObject);
+
+        if (replyObject[QStringLiteral("success")].toBool()) {
+            addLoggerInfo(QByteArrayLiteral("SettingsOauthJob: finished: ") + \
replyJson.toJson(QJsonDocument::Indented)); +            Q_EMIT \
settingsOauthDone(replyObject); +        } else {
+            qCWarning(RUQOLA_RESTAPI_LOG) <<" Problem when we tried to get oauth \
settings" << data; +        }
     }
     deleteLater();
 }
diff --git a/src/restapi/rooms/getroomsjob.cpp \
b/src/restapi/permissions/listpermissionsjob.cpp similarity index 71%
copy from src/restapi/rooms/getroomsjob.cpp
copy to src/restapi/permissions/listpermissionsjob.cpp
index 6047ad44..96491d32 100644
--- a/src/restapi/rooms/getroomsjob.cpp
+++ b/src/restapi/permissions/listpermissionsjob.cpp
@@ -18,60 +18,59 @@
    Boston, MA 02110-1301, USA.
 */
 
-#include "getroomsjob.h"
+#include "listpermissionsjob.h"
 #include "restapimethod.h"
 #include "ruqola_restapi_debug.h"
 #include <QJsonDocument>
 #include <QJsonObject>
 #include <QNetworkReply>
 
-GetRoomsJob::GetRoomsJob(QObject *parent)
+ListPermissionsJob::ListPermissionsJob(QObject *parent)
     : RestApiAbstractJob(parent)
 {
 }
 
-GetRoomsJob::~GetRoomsJob()
+ListPermissionsJob::~ListPermissionsJob()
 {
 }
 
-bool GetRoomsJob::requireHttpAuthentication() const
+bool ListPermissionsJob::requireHttpAuthentication() const
 {
     return true;
 }
 
-bool GetRoomsJob::start()
+bool ListPermissionsJob::start()
 {
     if (!canStart()) {
-        qCWarning(RUQOLA_RESTAPI_LOG) << "Impossible to start getrooms job";
+        qCWarning(RUQOLA_RESTAPI_LOG) << "Impossible to start owninfo job";
         deleteLater();
         return false;
     }
     QNetworkReply *reply = mNetworkAccessManager->get(request());
-    connect(reply, &QNetworkReply::finished, this, \
                &GetRoomsJob::slotGetRoomsFinished);
-    addLoggerInfo(QByteArrayLiteral("GetRoomsJob: Ask info about rooms"));
+    connect(reply, &QNetworkReply::finished, this, \
&ListPermissionsJob::slotOwnInfoFinished); +    \
addLoggerInfo(QByteArrayLiteral("ListPermissionsJob: Ask info about me"));  return \
true;  }
 
-void GetRoomsJob::slotGetRoomsFinished()
+void ListPermissionsJob::slotOwnInfoFinished()
 {
     QNetworkReply *reply = qobject_cast<QNetworkReply *>(sender());
     if (reply) {
         const QByteArray data = reply->readAll();
         const QJsonDocument replyJson = QJsonDocument::fromJson(data);
         const QJsonObject replyObject = replyJson.object();
-        addLoggerInfo(QByteArrayLiteral("GetRoomsJob: finished: ") + \
                replyJson.toJson(QJsonDocument::Indented));
-        Q_EMIT getRoomsDone(replyObject);
+        addLoggerInfo(QByteArrayLiteral("ListPermissionsJob: finished: ") + \
replyJson.toJson(QJsonDocument::Indented)); +        Q_EMIT ownInfoDone(replyObject);
     }
     deleteLater();
 }
 
-QNetworkRequest GetRoomsJob::request() const
+QNetworkRequest ListPermissionsJob::request() const
 {
-    const QUrl url = \
mRestApiMethod->generateUrl(RestApiUtil::RestApiUrlType::RoomsGet); +    const QUrl \
url = mRestApiMethod->generateUrl(RestApiUtil::RestApiUrlType::PermissionsList);  \
QNetworkRequest request(url);  addAuthRawHeader(request);
     request.setAttribute(QNetworkRequest::HttpPipeliningAllowedAttribute, true);
     request.setAttribute(QNetworkRequest::HTTP2AllowedAttribute, true);
-    request.setHeader(QNetworkRequest::ContentTypeHeader, \
QStringLiteral("application/json"));  return request;
 }
diff --git a/src/restapi/users/getpresencejob.h \
b/src/restapi/permissions/listpermissionsjob.h similarity index 69%
copy from src/restapi/users/getpresencejob.h
copy to src/restapi/permissions/listpermissionsjob.h
index b44fe422..a3508786 100644
--- a/src/restapi/users/getpresencejob.h
+++ b/src/restapi/permissions/listpermissionsjob.h
@@ -18,39 +18,33 @@
    Boston, MA 02110-1301, USA.
 */
 
-#ifndef GETPRESENCEJOB_H
-#define GETPRESENCEJOB_H
+#ifndef LISTPERMISSIONSJOB_H
+#define LISTPERMISSIONSJOB_H
 
-#include "libruqola_private_export.h"
 #include "restapiabstractjob.h"
+#include "libruqola_private_export.h"
 
 #include <QNetworkRequest>
 
-class LIBRUQOLACORE_TESTS_EXPORT GetPresenceJob : public RestApiAbstractJob
+class LIBRUQOLACORE_TESTS_EXPORT ListPermissionsJob : public RestApiAbstractJob
 {
     Q_OBJECT
 public:
-    explicit GetPresenceJob(QObject *parent = nullptr);
-    ~GetPresenceJob() override;
+    explicit ListPermissionsJob(QObject *parent = nullptr);
+    ~ListPermissionsJob() override;
 
-    Q_REQUIRED_RESULT bool start() override;
     Q_REQUIRED_RESULT bool requireHttpAuthentication() const override;
 
+    Q_REQUIRED_RESULT bool start() override;
 
     Q_REQUIRED_RESULT QNetworkRequest request() const override;
 
-    Q_REQUIRED_RESULT bool canStart() const override;
-
-    Q_REQUIRED_RESULT QString presenceUserId() const;
-    void setPresenceUserId(const QString &presenceUserId);
-
 Q_SIGNALS:
-    void getPresenceDone(const QJsonObject &obj);
+    void ownInfoDone(const QJsonObject &obj);
 
 private:
-    Q_DISABLE_COPY(GetPresenceJob)
-    void slotGetPresenceUserId();
-    QString mPresenceUserId;
+    Q_DISABLE_COPY(ListPermissionsJob)
+    void slotOwnInfoFinished();
 };
 
-#endif // GETPRESENCEJOB_H
+#endif // LISTPERMISSIONSJOB_H
diff --git a/src/restapi/restapirequest.cpp b/src/restapi/restapirequest.cpp
index cb7a04e8..c993ff90 100644
--- a/src/restapi/restapirequest.cpp
+++ b/src/restapi/restapirequest.cpp
@@ -819,7 +819,7 @@ void RestApiRequest::userPresence(const QString &userId)
     GetPresenceJob *job = new GetPresenceJob(this);
     initializeRestApiJob(job);
     job->setPresenceUserId(userId);
-    //connect(job, &GetPresenceJob::getPresenceDone, this, \
&RestApiRequest::getPresenceDone); +    connect(job, \
&GetPresenceJob::getPresenceDone, this, &RestApiRequest::getPresenceDone);  if \
(!job->start()) {  qCDebug(RUQOLA_RESTAPI_LOG) << "Impossible to start job";
     }
diff --git a/src/restapi/restapirequest.h b/src/restapi/restapirequest.h
index 934aaca1..0ba6a11f 100644
--- a/src/restapi/restapirequest.h
+++ b/src/restapi/restapirequest.h
@@ -132,6 +132,7 @@ Q_SIGNALS:
     void groupRolesDone(const QJsonObject &obj);
     void channelRolesDone(const QJsonObject &obj);
     void getUsernameSuggestionDone(const QString &username);
+    void getPresenceDone(const QString &presence);
 
 private:
     Q_DISABLE_COPY(RestApiRequest)
diff --git a/src/restapi/restapiutil.cpp b/src/restapi/restapiutil.cpp
index 15f85ecf..026b8fb4 100644
--- a/src/restapi/restapiutil.cpp
+++ b/src/restapi/restapiutil.cpp
@@ -241,6 +241,8 @@ QString RestApiUtil::restUrl(RestApiUtil::RestApiUrlType type)
         return QStringLiteral("rooms.cleanHistory");
     case RestApiUtil::RestApiUrlType::ForgotPassword:
         return QStringLiteral("users.forgotPassword");
+    case RestApiUtil::RestApiUrlType::PermissionsList:
+        return QStringLiteral("permissions.list");
     }
     qCWarning(RUQOLA_RESTAPI_LOG) << "Unknown RestApiUtil::RestApiUrlType " << \
static_cast<int>(type);  return {};
diff --git a/src/restapi/restapiutil.h b/src/restapi/restapiutil.h
index 32ca8c37..8fe4e1f1 100644
--- a/src/restapi/restapiutil.h
+++ b/src/restapi/restapiutil.h
@@ -127,6 +127,7 @@ enum class RestApiUrlType {
     RoomsFavorite,
     RoomscleanHistory,
     ForgotPassword,
+    PermissionsList,
 };
 LIBRUQOLACORE_TESTS_EXPORT QString adaptUrl(const QString &url);
 LIBRUQOLACORE_TESTS_EXPORT QString restUrl(RestApiUtil::RestApiUrlType type);
diff --git a/src/restapi/rooms/getroomsjob.cpp b/src/restapi/rooms/getroomsjob.cpp
index 6047ad44..f8ffea8a 100644
--- a/src/restapi/rooms/getroomsjob.cpp
+++ b/src/restapi/rooms/getroomsjob.cpp
@@ -59,8 +59,12 @@ void GetRoomsJob::slotGetRoomsFinished()
         const QByteArray data = reply->readAll();
         const QJsonDocument replyJson = QJsonDocument::fromJson(data);
         const QJsonObject replyObject = replyJson.object();
-        addLoggerInfo(QByteArrayLiteral("GetRoomsJob: finished: ") + \
                replyJson.toJson(QJsonDocument::Indented));
-        Q_EMIT getRoomsDone(replyObject);
+        if (replyObject[QStringLiteral("success")].toBool()) {
+            addLoggerInfo(QByteArrayLiteral("GetRoomsJob: finished: ") + \
replyJson.toJson(QJsonDocument::Indented)); +            Q_EMIT \
getRoomsDone(replyObject); +        } else {
+            qCWarning(RUQOLA_RESTAPI_LOG) <<" Problem when we tried to get rooms \
info" << data; +        }
     }
     deleteLater();
 }
diff --git a/src/restapi/subscriptions/markroomasreadjob.cpp \
b/src/restapi/subscriptions/markroomasreadjob.cpp index d83cf6c9..f1ebbd2d 100644
--- a/src/restapi/subscriptions/markroomasreadjob.cpp
+++ b/src/restapi/subscriptions/markroomasreadjob.cpp
@@ -53,8 +53,15 @@ void MarkRoomAsReadJob::slotMarkAsRead()
     QNetworkReply *reply = qobject_cast<QNetworkReply *>(sender());
     if (reply) {
         const QByteArray data = reply->readAll();
-        addLoggerInfo(QByteArrayLiteral("MarkRoomAsReadJob: finished: ") + data);
-        Q_EMIT markAsReadDone();
+        const QJsonDocument replyJson = QJsonDocument::fromJson(data);
+        const QJsonObject replyObject = replyJson.object();
+
+        if (replyObject[QStringLiteral("success")].toBool()) {
+            addLoggerInfo(QByteArrayLiteral("MarkRoomAsReadJob: finished: ") + \
data); +            Q_EMIT markAsReadDone();
+        } else {
+            qCWarning(RUQOLA_RESTAPI_LOG) <<" Problem when we tried to mark as \
unread" << data; +        }
     }
     deleteLater();
 }
diff --git a/src/restapi/users/getpresencejob.cpp \
b/src/restapi/users/getpresencejob.cpp index 9062a3dd..1307de2e 100644
--- a/src/restapi/users/getpresencejob.cpp
+++ b/src/restapi/users/getpresencejob.cpp
@@ -68,8 +68,13 @@ void GetPresenceJob::slotGetPresenceUserId()
         const QByteArray data = reply->readAll();
         const QJsonDocument replyJson = QJsonDocument::fromJson(data);
         const QJsonObject replyObject = replyJson.object();
-        addLoggerInfo(QByteArrayLiteral("GetPresenceJob: finished: ") + \
                replyJson.toJson(QJsonDocument::Indented));
-        Q_EMIT getPresenceDone(replyObject);
+
+        if (replyObject[QStringLiteral("success")].toBool()) {
+            addLoggerInfo(QByteArrayLiteral("GetPresenceJob: finished: ") + \
replyJson.toJson(QJsonDocument::Indented)); +            Q_EMIT \
getPresenceDone(replyObject[QStringLiteral("presence")].toString()); +        } else \
{ +            qCWarning(RUQOLA_RESTAPI_LOG) <<" Problem when we tried to get \
username suggestion" << data; +        }
     }
     deleteLater();
 }
diff --git a/src/restapi/users/getpresencejob.h b/src/restapi/users/getpresencejob.h
index b44fe422..a9a1c8f5 100644
--- a/src/restapi/users/getpresencejob.h
+++ b/src/restapi/users/getpresencejob.h
@@ -45,7 +45,7 @@ public:
     void setPresenceUserId(const QString &presenceUserId);
 
 Q_SIGNALS:
-    void getPresenceDone(const QJsonObject &obj);
+    void getPresenceDone(const QString &presence);
 
 private:
     Q_DISABLE_COPY(GetPresenceJob)
diff --git a/src/restapi/users/getusernamesuggestionjob.cpp \
b/src/restapi/users/getusernamesuggestionjob.cpp index e3d31e06..9f8b43cd 100644
--- a/src/restapi/users/getusernamesuggestionjob.cpp
+++ b/src/restapi/users/getusernamesuggestionjob.cpp
@@ -64,9 +64,12 @@ void GetUsernameSuggestionJob::slotGetUsernameSuggestion()
         const QByteArray data = reply->readAll();
         const QJsonDocument replyJson = QJsonDocument::fromJson(data);
         const QJsonObject replyObject = replyJson.object();
-        addLoggerInfo(QByteArrayLiteral("GetUsernameSuggestionJob: finished: ") + \
                replyJson.toJson(QJsonDocument::Indented));
-        //TODO parse result!
-        Q_EMIT getUsernameSuggestionDone(QString());
+        if (replyObject[QStringLiteral("success")].toBool()) {
+            addLoggerInfo(QByteArrayLiteral("GetUsernameSuggestionJob: finished: ") \
+ replyJson.toJson(QJsonDocument::Indented)); +            Q_EMIT \
getUsernameSuggestionDone(replyObject[QStringLiteral("result")].toString()); +        \
} else { +            qCWarning(RUQOLA_RESTAPI_LOG) <<" Problem when we tried to get \
username suggestion" << data; +        }
     }
     deleteLater();
 }


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic