Make encryption job errors provide descriptive error messages
authorClaudio Cambra <claudio.cambra@nextcloud.com>
Fri, 9 Dec 2022 18:05:27 +0000 (19:05 +0100)
committerClaudio Cambra <claudio.cambra@gmail.com>
Tue, 13 Dec 2022 12:27:56 +0000 (13:27 +0100)
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
src/libsync/clientsideencryptionjobs.cpp
src/libsync/clientsideencryptionjobs.h
src/libsync/encryptfolderjob.cpp
src/libsync/encryptfolderjob.h

index 71bb8a510609a6abf566f162720803807dc197d8..e99af0948a35a587279c6692133e29d0c5f6bb70 100644 (file)
@@ -177,7 +177,7 @@ bool UnlockEncryptFolderApiJob::finished()
     if (retCode != 200) {
         qCInfo(lcCseJob()) << "error unlocking file" << path() << errorString() << retCode;
         qCInfo(lcCseJob()) << "Full Error Log" << reply()->readAll();
-        emit error(_fileId, retCode);
+        emit error(_fileId, retCode, errorString());
         return true;
     }
     emit success(_fileId);
@@ -241,7 +241,7 @@ bool LockEncryptFolderApiJob::finished()
     int retCode = reply()->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
     if (retCode != 200) {
         qCInfo(lcCseJob()) << "error locking file" << path() << errorString() << retCode;
-        emit error(_fileId, retCode);
+        emit error(_fileId, retCode, errorString());
         return true;
     }
 
@@ -282,7 +282,7 @@ bool SetEncryptionFlagApiJob::finished()
         emit success(_fileId);
     } else {
         qCInfo(lcCseJob()) << "Setting the encrypted flag failed with" << path() << errorString() << retCode;
-        emit error(_fileId, retCode);
+        emit error(_fileId, retCode, errorString());
     }
     return true;
 }
index 1ab38fa5cb5e0f3044745b6bf5c11df448bd6c6c..c32038292e0dc2f584006137236fc537ef8e900b 100644 (file)
@@ -129,7 +129,9 @@ protected:
 
 signals:
     void success(const QByteArray &fileId);
-    void error(const QByteArray &fileId, int httpReturnCode);
+    void error(const QByteArray &fileId,
+               const int httpReturnCode,
+               const QString &errorMessage);
 
 private:
     QByteArray _fileId;
@@ -150,7 +152,9 @@ protected:
 
 signals:
     void success(const QByteArray& fileId, const QByteArray& token);
-    void error(const QByteArray& fileId, int httpdErrorCode);
+    void error(const QByteArray& fileId,
+               const int httpErrorCode,
+               const QString &errorMessage);
 
 private:
     QByteArray _fileId;
@@ -175,7 +179,9 @@ protected:
 
 signals:
     void success(const QByteArray& fileId);
-    void error(const QByteArray& fileId, int httpReturnCode);
+    void error(const QByteArray& fileId,
+               const int httpReturnCode,
+               const QString &errorMessage);
 
 private:
     QByteArray _fileId;
index e9a8f4caac8856805b4d9463a87ab743c945da9e..eadcb935739ad05a28451afc9845b2cdec9d6a06 100644 (file)
@@ -70,9 +70,12 @@ void EncryptFolderJob::slotEncryptionFlagSuccess(const QByteArray &fileId)
     lockJob->start();
 }
 
-void EncryptFolderJob::slotEncryptionFlagError(const QByteArray &fileId, int httpErrorCode)
+void EncryptFolderJob::slotEncryptionFlagError(const QByteArray &fileId,
+                                               const int httpErrorCode,
+                                               const QString &errorMessage)
 {
     qDebug() << "Error on the encryption flag of" << fileId << "HTTP code:" << httpErrorCode;
+    _errorString = errorMessage;
     emit finished(Error);
 }
 
@@ -108,7 +111,7 @@ void EncryptFolderJob::slotUploadMetadataSuccess(const QByteArray &folderId)
     unlockJob->start();
 }
 
-void EncryptFolderJob::slotUpdateMetadataError(const QByteArray &folderId, int httpReturnCode)
+void EncryptFolderJob::slotUpdateMetadataError(const QByteArray &folderId, const int httpReturnCode)
 {
     Q_UNUSED(httpReturnCode);
 
@@ -120,15 +123,21 @@ void EncryptFolderJob::slotUpdateMetadataError(const QByteArray &folderId, int h
     unlockJob->start();
 }
 
-void EncryptFolderJob::slotLockForEncryptionError(const QByteArray &fileId, int httpErrorCode)
+void EncryptFolderJob::slotLockForEncryptionError(const QByteArray &fileId,
+                                                  const int httpErrorCode,
+                                                  const QString &errorMessage)
 {
     qCInfo(lcEncryptFolderJob()) << "Locking error for" << fileId << "HTTP code:" << httpErrorCode;
+    _errorString = errorMessage;
     emit finished(Error);
 }
 
-void EncryptFolderJob::slotUnlockFolderError(const QByteArray &fileId, int httpErrorCode)
+void EncryptFolderJob::slotUnlockFolderError(const QByteArray &fileId,
+                                             const int httpErrorCode,
+                                             const QString &errorMessage)
 {
     qCInfo(lcEncryptFolderJob()) << "Unlocking error for" << fileId << "HTTP code:" << httpErrorCode;
+    _errorString = errorMessage;
     emit finished(Error);
 }
 void EncryptFolderJob::slotUnlockFolderSuccess(const QByteArray &fileId)
index 1a8646f64c41c1ad3ea9f6a9ce8a63a6440eabae..bad5a8976987bfb631c6e61b7f5d206c0c86acf7 100644 (file)
@@ -40,13 +40,13 @@ signals:
 
 private slots:
     void slotEncryptionFlagSuccess(const QByteArray &folderId);
-    void slotEncryptionFlagError(const QByteArray &folderId, int httpReturnCode);
+    void slotEncryptionFlagError(const QByteArray &folderId, const int httpReturnCode, const QString &errorMessage);
     void slotLockForEncryptionSuccess(const QByteArray &folderId, const QByteArray &token);
-    void slotLockForEncryptionError(const QByteArray &folderId, int httpReturnCode);
+    void slotLockForEncryptionError(const QByteArray &folderId, const int httpReturnCode, const QString &errorMessage);
     void slotUnlockFolderSuccess(const QByteArray &folderId);
-    void slotUnlockFolderError(const QByteArray &folderId, int httpReturnCode);
+    void slotUnlockFolderError(const QByteArray &folderId, const int httpReturnCode, const QString &errorMessage);
     void slotUploadMetadataSuccess(const QByteArray &folderId);
-    void slotUpdateMetadataError(const QByteArray &folderId, int httpReturnCode);
+    void slotUpdateMetadataError(const QByteArray &folderId, const int httpReturnCode);
 
 private:
     AccountPtr _account;