[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