1 /* 2 SPDX-FileCopyrightText: 2018-2021 Laurent Montel <montel@kde.org> 3 4 SPDX-License-Identifier: LGPL-2.0-or-later 5 */ 6 7 #include "getroomsjob.h" 8 #include "restapimethod.h" 9 #include "rocketchatqtrestapi_debug.h" 10 #include <QJsonDocument> 11 #include <QJsonObject> 12 #include <QNetworkReply> 13 using namespace RocketChatRestApi; GetRoomsJob(QObject * parent)14GetRoomsJob::GetRoomsJob(QObject *parent) 15 : RestApiAbstractJob(parent) 16 { 17 } 18 19 GetRoomsJob::~GetRoomsJob() = default; 20 requireHttpAuthentication() const21bool GetRoomsJob::requireHttpAuthentication() const 22 { 23 return true; 24 } 25 start()26bool GetRoomsJob::start() 27 { 28 if (!canStart()) { 29 qCWarning(ROCKETCHATQTRESTAPI_LOG) << "Impossible to start getrooms job"; 30 deleteLater(); 31 return false; 32 } 33 submitGetRequest(); 34 35 addStartRestApiInfo(QByteArrayLiteral("GetRoomsJob: Ask all rooms")); 36 return true; 37 } 38 onGetRequestResponse(const QJsonDocument & replyJson)39void GetRoomsJob::onGetRequestResponse(const QJsonDocument &replyJson) 40 { 41 const QJsonObject replyObject = replyJson.object(); 42 if (replyObject[QStringLiteral("success")].toBool()) { 43 addLoggerInfo(QByteArrayLiteral("GetRoomsJob: success: ") + replyJson.toJson(QJsonDocument::Indented)); 44 Q_EMIT getRoomsDone(replyObject); 45 } else { 46 emitFailedMessage(replyObject); 47 addLoggerWarning(QByteArrayLiteral("GetRoomsJob: Problem: ") + replyJson.toJson(QJsonDocument::Indented)); 48 } 49 } 50 request() const51QNetworkRequest GetRoomsJob::request() const 52 { 53 const QUrl url = mRestApiMethod->generateUrl(RestApiUtil::RestApiUrlType::RoomsGet); 54 QNetworkRequest request(url); 55 addAuthRawHeader(request); 56 addRequestAttribute(request); 57 return request; 58 } 59