Properly write item metadata status update to database in NextcloudFilesDatabaseManager
authorClaudio Cambra <claudio.cambra@nextcloud.com>
Tue, 14 Mar 2023 13:22:28 +0000 (14:22 +0100)
committerClaudio Cambra <claudio.cambra@nextcloud.com>
Fri, 12 May 2023 05:21:33 +0000 (13:21 +0800)
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/Database/NextcloudFilesDatabaseManager.swift

index 15c1747d68f9fa4dcfbd1a03ed0005cda6e0d2ad..881e06a67323501f499e40d2061cf4a73d572839 100644 (file)
@@ -225,8 +225,12 @@ class NextcloudFilesDatabaseManager : NSObject {
 
         do {
             try database.write {
-                result = database.objects(NextcloudItemMetadataTable.self).filter("ocId == %@", metadata.ocId).first
-                result?.status = status.rawValue
+                guard let result = database.objects(NextcloudItemMetadataTable.self).filter("ocId == %@", metadata.ocId).first else {
+                    return
+                }
+                
+                result.status = status.rawValue
+                database.add(result, update: .all)
             }
         } catch let error {
             NSLog("Could not update status for item metadata with ocID: %@ and filename: %@, received error: %@", metadata.ocId, metadata.fileNameView, error.localizedDescription)