]> dgit.raspbian.org Git - nextcloud-desktop.git/commitdiff
Also report all new, updated, and deleted metadatas from updateItemMetadatas in Nextc...
authorClaudio Cambra <claudio.cambra@nextcloud.com>
Wed, 8 Mar 2023 16:57:43 +0000 (17:57 +0100)
committerClaudio Cambra <claudio.cambra@nextcloud.com>
Fri, 12 May 2023 05:21:22 +0000 (13:21 +0800)
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/NextcloudFilesDatabaseManager.swift

index 8decfa709f63eef06ad0d57548466a8faa2e26e2..4ddef4a9beba105b4dce5ce50921ee8e85176349 100644 (file)
@@ -189,24 +189,28 @@ class NextcloudFilesDatabaseManager : NSObject {
         return (returningNewMetadatas, returningUpdatedMetadatas)
     }
 
-    func updateItemMetadatas(account: String, serverUrl: String, updatedMetadatas: [NextcloudItemMetadataTable]) {
+    func updateItemMetadatas(account: String, serverUrl: String, updatedMetadatas: [NextcloudItemMetadataTable]) -> (newMetadatas: [NextcloudItemMetadataTable]?, updatedMetadatas: [NextcloudItemMetadataTable]?, deletedMetadatas: [NextcloudItemMetadataTable]?) {
         let database = ncDatabase()
 
         do {
             try database.write {
                 let existingMetadatas = ncDatabase().objects(NextcloudItemMetadataTable.self).filter("account == %@ AND serverUrl == %@ AND status == %@", account, serverUrl, NextcloudItemMetadataTable.Status.normal.rawValue)
 
-                processItemMetadatasToDelete(databaseToWriteTo: database,
-                                             existingMetadatas: existingMetadatas,
-                                             updatedMetadatas: updatedMetadatas)
+                let deletedMetadatas = processItemMetadatasToDelete(databaseToWriteTo: database,
+                                                                    existingMetadatas: existingMetadatas,
+                                                                    updatedMetadatas: updatedMetadatas)
 
-                processItemMetadatasToUpdate(databaseToWriteTo: database,
-                                             existingMetadatas: existingMetadatas,
-                                             updatedMetadatas: updatedMetadatas)
+                let metadatasFromUpdate = processItemMetadatasToUpdate(databaseToWriteTo: database,
+                                                                       existingMetadatas: existingMetadatas,
+                                                                       updatedMetadatas: updatedMetadatas)
+
+                return (metadatasFromUpdate.newMetadatas, metadatasFromUpdate.updatedMetadatas, deletedMetadatas)
             }
         } catch let error {
             NSLog("Could not update any metadatas, received error: %@", error.localizedDescription)
         }
+
+        return (nil, nil, nil)
     }
 
     func setStatusForItemMetadata(_ metadata: NextcloudItemMetadataTable, status: NextcloudItemMetadataTable.Status) -> NextcloudItemMetadataTable? {