[network/ruqola] src/rocketchatrestapi-qt: Implement setroomkeyidjob

Laurent Montel <[email protected]> Wed, 5 Aug 2026 06:11:21 +0000 (UTC)
Newsgroups gmane.comp.kde.cvs
Message-ID <[email protected]>
Git commit fa3c17c3e4eab9f9296020c4f503cf309d46f80e by Laurent Montel.
Committed on 05/08/2026 at 05:56.
Pushed by mlaurent into branch 'master'.

Implement setroomkeyidjob

M  +16   -21   src/rocketchatrestapi-qt/autotests/setroomkeyidjobtest.cpp
M  +11   -12   src/rocketchatrestapi-qt/e2e/setroomkeyidjob.cpp
M  +6    -8    src/rocketchatrestapi-qt/e2e/setroomkeyidjob.h

https://invent.kde.org/network/ruqola/-/commit/fa3c17c3e4eab9f9296020c4f503cf309d46f80e

diff --git a/src/rocketchatrestapi-qt/autotests/setroomkeyidjobtest.cpp b/src/rocketchatrestapi-qt/autotests/setroomkeyidjobtest.cpp
index 665a2b3423..cbaf14aea4 100644
--- a/src/rocketchatrestapi-qt/autotests/setroomkeyidjobtest.cpp
+++ b/src/rocketchatrestapi-qt/autotests/setroomkeyidjobtest.cpp
@@ -27,7 +27,7 @@ void SetRoomKeyIDJobTest::shouldHaveDefaultValue()
     RuqolaRestApiHelper::verifyDefaultValue(&job);
     QVERIFY(job.requireHttpAuthentication());
 
-    QVERIFY(!job.setUserPublicAndPrivateKeysInfo().isValid());
+    QVERIFY(!job.roomKeyIDInfo().isValid());
     QVERIFY(!job.hasQueryParameterSupport());
 }
 
@@ -36,26 +36,21 @@ void SetRoomKeyIDJobTest::shouldGenerateRequest()
     SetRoomKeyIDJob job;
     QNetworkRequest request = QNetworkRequest(QUrl());
     RuqolaRestApiHelper::verifyAuthentication(&job, request);
-    QCOMPARE(request.url(), QUrl(u"http://www.kde.org/api/v1/e2e.setUserPublicAndPrivateKeys"_s));
+    QCOMPARE(request.url(), QUrl(u"http://www.kde.org/api/v1/e2e.setRoomKeyID"_s));
     QCOMPARE(request.header(QNetworkRequest::ContentTypeHeader).toString(), u"application/json"_s);
 }
 
 void SetRoomKeyIDJobTest::shouldGenerateJson()
 {
     SetRoomKeyIDJob job;
-    SetRoomKeyIDJob::SetUserPublicAndPrivateKeysInfo info;
-    const QString rsapublic = u"foo1"_s;
-    const QString rsaprivate = u"private"_s;
-    info.rsaPrivateKey = rsaprivate;
-    info.rsaPublicKey = rsapublic;
-    job.setSetUserPublicAndPrivateKeysInfo(info);
+    SetRoomKeyIDJob::RoomKeyIDInfo info;
+    const QByteArray roomId = "foo1"_ba;
+    const QByteArray keyId = "key1"_ba;
+    info.roomId = roomId;
+    info.keyId = keyId;
+    job.setRoomKeyIDInfo(info);
     QCOMPARE(job.json().toJson(QJsonDocument::Compact),
-             QStringLiteral(R"({"force":false,"private_key":"%2","public_key":"%1"})").arg(rsapublic, rsaprivate).toLatin1());
-
-    info.force = true;
-    job.setSetUserPublicAndPrivateKeysInfo(info);
-    QCOMPARE(job.json().toJson(QJsonDocument::Compact),
-             QStringLiteral(R"({"force":true,"private_key":"%2","public_key":"%1"})").arg(rsapublic, rsaprivate).toLatin1());
+             QStringLiteral(R"({"keyID":"%2","rid":"%1"})").arg(QString::fromLatin1(roomId), QString::fromLatin1(keyId)).toLatin1());
 }
 
 void SetRoomKeyIDJobTest::shouldNotStarting()
@@ -76,14 +71,14 @@ void SetRoomKeyIDJobTest::shouldNotStarting()
     job.setUserId(userId);
     QVERIFY(!job.canStart());
 
-    SetRoomKeyIDJob::SetUserPublicAndPrivateKeysInfo info;
-    const QString rsapublic = u"foo1"_s;
-    const QString rsaprivate = u"private"_s;
-    info.rsaPrivateKey = rsaprivate;
-    job.setSetUserPublicAndPrivateKeysInfo(info);
+    SetRoomKeyIDJob::RoomKeyIDInfo info;
+    const QByteArray roomId = "foo1"_ba;
+    const QByteArray keyId = "key1"_ba;
+    info.roomId = roomId;
+    job.setRoomKeyIDInfo(info);
     QVERIFY(!job.canStart());
-    info.rsaPublicKey = rsapublic;
-    job.setSetUserPublicAndPrivateKeysInfo(info);
+    info.keyId = keyId;
+    job.setRoomKeyIDInfo(info);
     QVERIFY(job.canStart());
 }
 
diff --git a/src/rocketchatrestapi-qt/e2e/setroomkeyidjob.cpp b/src/rocketchatrestapi-qt/e2e/setroomkeyidjob.cpp
index 8c91a5c5cc..86227b13a2 100644
--- a/src/rocketchatrestapi-qt/e2e/setroomkeyidjob.cpp
+++ b/src/rocketchatrestapi-qt/e2e/setroomkeyidjob.cpp
@@ -47,14 +47,14 @@ void SetRoomKeyIDJob::onPostRequestResponse(const QString &replyErrorString, con
     }
 }
 
-SetRoomKeyIDJob::SetUserPublicAndPrivateKeysInfo SetRoomKeyIDJob::setUserPublicAndPrivateKeysInfo() const
+SetRoomKeyIDJob::RoomKeyIDInfo SetRoomKeyIDJob::roomKeyIDInfo() const
 {
-    return mSetUserPublicAndPrivateKeysInfo;
+    return mSetRoomKeyIDInfo;
 }
 
-void SetRoomKeyIDJob::setSetUserPublicAndPrivateKeysInfo(const SetUserPublicAndPrivateKeysInfo &newSetUserPublicAndPrivateKeysInfo)
+void SetRoomKeyIDJob::setRoomKeyIDInfo(const RoomKeyIDInfo &newSetRoomKeyIDInfo)
 {
-    mSetUserPublicAndPrivateKeysInfo = newSetUserPublicAndPrivateKeysInfo;
+    mSetRoomKeyIDInfo = newSetRoomKeyIDInfo;
 }
 
 bool SetRoomKeyIDJob::requireHttpAuthentication() const
@@ -67,8 +67,8 @@ bool SetRoomKeyIDJob::canStart() const
     if (!RestApiAbstractJob::canStart()) {
         return false;
     }
-    if (!mSetUserPublicAndPrivateKeysInfo.isValid()) {
-        qCWarning(ROCKETCHATQTRESTAPI_LOG) << "SetRoomKeyIDJob: mSetUserPublicAndPrivateKeysInfo is invalid";
+    if (!mSetRoomKeyIDInfo.isValid()) {
+        qCWarning(ROCKETCHATQTRESTAPI_LOG) << "SetRoomKeyIDJob: mSetRoomKeyIDInfo is invalid";
         return false;
     }
     return true;
@@ -76,7 +76,7 @@ bool SetRoomKeyIDJob::canStart() const
 
 QNetworkRequest SetRoomKeyIDJob::request() const
 {
-    const QUrl url = mRestApiMethod->generateUrl(RestApiUtil::RestApiUrlType::E2ESetUserPublicAndPrivateKeys);
+    const QUrl url = mRestApiMethod->generateUrl(RestApiUtil::RestApiUrlType::E2ESetRoomKeyID);
     QNetworkRequest request(url);
     addAuthRawHeader(request);
     addRequestAttribute(request);
@@ -86,17 +86,16 @@ QNetworkRequest SetRoomKeyIDJob::request() const
 QJsonDocument SetRoomKeyIDJob::json() const
 {
     QJsonObject jsonObj;
-    jsonObj["public_key"_L1] = mSetUserPublicAndPrivateKeysInfo.rsaPublicKey;
-    jsonObj["private_key"_L1] = mSetUserPublicAndPrivateKeysInfo.rsaPrivateKey;
-    jsonObj["force"_L1] = mSetUserPublicAndPrivateKeysInfo.force;
+    jsonObj["rid"_L1] = QString::fromLatin1(mSetRoomKeyIDInfo.roomId);
+    jsonObj["keyID"_L1] = QString::fromLatin1(mSetRoomKeyIDInfo.keyId);
 
     const QJsonDocument postData = QJsonDocument(jsonObj);
     return postData;
 }
 
-bool SetRoomKeyIDJob::SetUserPublicAndPrivateKeysInfo::isValid() const
+bool SetRoomKeyIDJob::RoomKeyIDInfo::isValid() const
 {
-    return !rsaPublicKey.isEmpty() && !rsaPrivateKey.isEmpty();
+    return !roomId.isEmpty() && !keyId.isEmpty();
 }
 
 #include "moc_setroomkeyidjob.cpp"
diff --git a/src/rocketchatrestapi-qt/e2e/setroomkeyidjob.h b/src/rocketchatrestapi-qt/e2e/setroomkeyidjob.h
index 242f74a74a..38f8a4f0c5 100644
--- a/src/rocketchatrestapi-qt/e2e/setroomkeyidjob.h
+++ b/src/rocketchatrestapi-qt/e2e/setroomkeyidjob.h
@@ -14,12 +14,10 @@ class LIBROCKETCHATRESTAPI_QT_EXPORT SetRoomKeyIDJob : public RestApiAbstractJob
 {
     Q_OBJECT
 
-    // Since rocketchat 0.70
 public:
-    struct LIBROCKETCHATRESTAPI_QT_EXPORT SetUserPublicAndPrivateKeysInfo {
-        QString rsaPublicKey;
-        QString rsaPrivateKey;
-        bool force = false;
+    struct LIBROCKETCHATRESTAPI_QT_EXPORT RoomKeyIDInfo {
+        QByteArray roomId;
+        QByteArray keyId;
         [[nodiscard]] bool isValid() const;
     };
 
@@ -33,14 +31,14 @@ public:
 
     [[nodiscard]] QJsonDocument json() const;
 
-    [[nodiscard]] SetUserPublicAndPrivateKeysInfo setUserPublicAndPrivateKeysInfo() const;
-    void setSetUserPublicAndPrivateKeysInfo(const SetUserPublicAndPrivateKeysInfo &newSetUserPublicAndPrivateKeysInfo);
+    [[nodiscard]] RoomKeyIDInfo roomKeyIDInfo() const;
+    void setRoomKeyIDInfo(const RoomKeyIDInfo &newSetRoomKeyIDInfo);
 
 Q_SIGNALS:
     void setUserPublicAndPrivateKeysDone();
 
 private:
     LIBROCKETCHATRESTAPI_QT_NO_EXPORT void onPostRequestResponse(const QString &replyErrorString, const QJsonDocument &replyJson) override;
-    SetUserPublicAndPrivateKeysInfo mSetUserPublicAndPrivateKeysInfo;
+    RoomKeyIDInfo mSetRoomKeyIDInfo;
 };
 }