]> dgit.raspbian.org Git - nextcloud-desktop.git/commitdiff
Add convenience method to update item metadata status
authorClaudio Cambra <claudio.cambra@nextcloud.com>
Tue, 14 Feb 2023 12:48:08 +0000 (13:48 +0100)
committerClaudio Cambra <claudio.cambra@nextcloud.com>
Fri, 12 May 2023 05:21:18 +0000 (13:21 +0800)
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/NextcloudFilesDatabaseManager.swift

index 892119b81183f1e2e32cd5d7a289e994af4f91ca..75cf7b49c377e70c675bbd58b10f162f35e8fc98 100644 (file)
@@ -187,6 +187,26 @@ class NextcloudFilesDatabaseManager : NSObject {
         }
     }
 
+    func setStatusForItemMetadata(_ metadata: NextcloudItemMetadataTable, status: NextcloudItemMetadataTable.Status) -> NextcloudItemMetadataTable? {
+        let database = ncDatabase()
+        var result: NextcloudItemMetadataTable?
+
+        do {
+            try database.write {
+                result = database.objects(NextcloudItemMetadataTable.self).filter("ocId == %@", metadata.ocId).first
+                result?.status = status.rawValue
+            }
+        } catch let error {
+            NSLog("Could not update status for item metadata with ocID: %@ and filename: %@, received error: %@", metadata.ocId, metadata.fileNameView, error.localizedDescription)
+        }
+
+        if result != nil {
+            return NextcloudItemMetadataTable(value: result!)
+        }
+
+        return nil
+    }
+
     func directoryMetadata(account: String, serverUrl: String) -> NextcloudDirectoryMetadataTable? {
         if let metadata = ncDatabase().objects(NextcloudDirectoryMetadataTable.self).filter("account == %@ AND serverUrl == %@", account, serverUrl).first {
             return NextcloudDirectoryMetadataTable(value: metadata)