From: Claudio Cambra Date: Thu, 9 Mar 2023 15:45:28 +0000 (+0100) Subject: Use ocIds for item metadata deletion in NextcloudFilesDatabaseManager X-Git-Tag: archive/raspbian/3.16.7-1_deb13u1+rpi1~1^2~96^2^2~55^2~187 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=65ed3ad846f56f3a56d1a54d48c143e4da19e5b8;p=nextcloud-desktop.git Use ocIds for item metadata deletion in NextcloudFilesDatabaseManager Signed-off-by: Claudio Cambra --- diff --git a/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/FileProviderExtension.swift b/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/FileProviderExtension.swift index b870e8a2c..ee038a740 100644 --- a/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/FileProviderExtension.swift +++ b/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/FileProviderExtension.swift @@ -549,7 +549,6 @@ class FileProviderExtension: NSObject, NSFileProviderReplicatedExtension, NKComm NSLog("Successfully delete item with identifier: %@ and filename: %@", ocId, serverFileNameUrl) let serverUrl = itemMetadata.serverUrl - dbManager.deleteItemMetadata(account: account, serverUrl: serverUrl) if itemMetadata.directory && dbManager.directoryMetadata(ocId: ocId) != nil { dbManager.deleteDirectoryAndSubdirectoriesMetadata(account: account, serverUrl: serverUrl) diff --git a/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/NextcloudFilesDatabaseManager.swift b/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/NextcloudFilesDatabaseManager.swift index badb84cff..10ea1cf78 100644 --- a/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/NextcloudFilesDatabaseManager.swift +++ b/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/NextcloudFilesDatabaseManager.swift @@ -252,16 +252,16 @@ class NextcloudFilesDatabaseManager : NSObject { } } - func deleteItemMetadata(account: String, serverUrl: String) { + func deleteItemMetadata(ocId: String) { let database = ncDatabase() do { try database.write { - let results = database.objects(NextcloudItemMetadataTable.self).filter("account == %@ AND serverUrl == %@", account, serverUrl) + let results = database.objects(NextcloudItemMetadataTable.self).filter("ocId == %@", ocId) database.delete(results) } } catch let error { - NSLog("Could not delete item metadata with serverUrl: %@, received error: %@", serverUrl, error.localizedDescription) + NSLog("Could not delete item metadata with ocId: %@, received error: %@", ocId, error.localizedDescription) } } @@ -449,12 +449,13 @@ class NextcloudFilesDatabaseManager : NSObject { } } + // Deletes all metadatas related to the info of the directory provided func deleteDirectoryAndSubdirectoriesMetadata(account: String, serverUrl: String) { let database = ncDatabase() let results = database.objects(NextcloudDirectoryMetadataTable.self).filter("account == %@ AND serverUrl BEGINSWITH %@", account, serverUrl) for result in results { - deleteItemMetadata(account: result.account, serverUrl: result.serverUrl) + deleteItemMetadata(ocId: result.ocId) deleteLocalFileMetadata(ocId: result.ocId) }