1 /* 2 SPDX-FileCopyrightText: 2021 Laurent Montel <montel@kde.org> 3 4 SPDX-License-Identifier: LGPL-2.0-or-later 5 */ 6 7 #include "addusertorolejob.h" 8 #include "restapimethod.h" 9 #include "rocketchatqtrestapi_debug.h" 10 11 #include <QJsonDocument> 12 #include <QJsonObject> 13 #include <QNetworkReply> 14 using namespace RocketChatRestApi; AddUserToRoleJob(QObject * parent)15AddUserToRoleJob::AddUserToRoleJob(QObject *parent) 16 : RestApiAbstractJob(parent) 17 { 18 } 19 20 AddUserToRoleJob::~AddUserToRoleJob() = default; 21 start()22bool AddUserToRoleJob::start() 23 { 24 if (!canStart()) { 25 deleteLater(); 26 return false; 27 } 28 addStartRestApiInfo("AddUserToRoleJob::start"); 29 submitPostRequest(json()); 30 return true; 31 } 32 onPostRequestResponse(const QJsonDocument & replyJson)33void AddUserToRoleJob::onPostRequestResponse(const QJsonDocument &replyJson) 34 { 35 const QJsonObject replyObject = replyJson.object(); 36 if (replyObject[QStringLiteral("success")].toBool()) { 37 addLoggerInfo(QByteArrayLiteral("AddUserToRoleJob: success: ") + replyJson.toJson(QJsonDocument::Indented)); 38 Q_EMIT addUsersToRoleDone(replyObject); 39 } else { 40 emitFailedMessage(replyObject); 41 addLoggerWarning(QByteArrayLiteral("AddUserToRoleJob: Problem: ") + replyJson.toJson(QJsonDocument::Indented)); 42 } 43 } 44 username() const45const QString &AddUserToRoleJob::username() const 46 { 47 return mUsername; 48 } 49 setUsername(const QString & newUsername)50void AddUserToRoleJob::setUsername(const QString &newUsername) 51 { 52 mUsername = newUsername; 53 } 54 roleName() const55const QString &AddUserToRoleJob::roleName() const 56 { 57 return mRoleName; 58 } 59 setRoleName(const QString & newRoleName)60void AddUserToRoleJob::setRoleName(const QString &newRoleName) 61 { 62 mRoleName = newRoleName; 63 } 64 requireHttpAuthentication() const65bool AddUserToRoleJob::requireHttpAuthentication() const 66 { 67 return true; 68 } 69 canStart() const70bool AddUserToRoleJob::canStart() const 71 { 72 if (!RestApiAbstractJob::canStart()) { 73 return false; 74 } 75 if (mRoleName.isEmpty()) { 76 qCWarning(ROCKETCHATQTRESTAPI_LOG) << "AddUserToRoleJob: mRoleName is not valid."; 77 return false; 78 } 79 if (mUsername.isEmpty()) { 80 qCWarning(ROCKETCHATQTRESTAPI_LOG) << "AddUserToRoleJob: mUsername is not valid."; 81 return false; 82 } 83 return true; 84 } 85 request() const86QNetworkRequest AddUserToRoleJob::request() const 87 { 88 const QUrl url = mRestApiMethod->generateUrl(RestApiUtil::RestApiUrlType::RolesAddUserToRole); 89 QNetworkRequest request(url); 90 addAuthRawHeader(request); 91 addRequestAttribute(request); 92 return request; 93 } 94 json() const95QJsonDocument AddUserToRoleJob::json() const 96 { 97 QJsonObject jsonObj; 98 jsonObj[QLatin1String("roleName")] = mRoleName; 99 jsonObj[QLatin1String("username")] = mUsername; 100 101 const QJsonDocument postData = QJsonDocument(jsonObj); 102 return postData; 103 } 104