From 4d2da1037d0e4b2f0a5357b2cb41a32badc988d1 Mon Sep 17 00:00:00 2001 From: Claudio Cambra Date: Wed, 25 Jan 2023 20:18:51 +0100 Subject: [PATCH] Split off deletion process of updateItemMetadatas of NextcloudFilesDatabaseManager to private method Signed-off-by: Claudio Cambra --- .../NextcloudFilesDatabaseManager.swift | 39 ++++++++++++------- 1 file changed, 25 insertions(+), 14 deletions(-) diff --git a/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/NextcloudFilesDatabaseManager.swift b/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/NextcloudFilesDatabaseManager.swift index c6d84fffc..939b87813 100644 --- a/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/NextcloudFilesDatabaseManager.swift +++ b/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/NextcloudFilesDatabaseManager.swift @@ -96,25 +96,36 @@ class NextcloudFilesDatabaseManager : NSObject { return itemMetadataFromOcId(ocId) } + private func processItemMetadatasToDelete(databaseToWriteTo: Realm, + existingMetadatas: [NextcloudItemMetadataTable], + updatedMetadatas: [NextcloudItemMetadataTable]) { + + assert(databaseToWriteTo.isInWriteTransaction) + + for existingMetadata in existingMetadatas { + guard !updatedMetadatas.contains(where: { $0.ocId == existingMetadata.ocId }), + let metadataToDelete = itemMetadataFromOcId(existingMetadata.ocId) else { continue } + + print(""" + Deleting metadata. + ocID: %@, + fileName: %@, + etag: %@ + """ + , metadataToDelete.ocId, metadataToDelete.fileName, metadataToDelete.etag) + databaseToWriteTo.delete(metadataToDelete) + } + } + func updateItemMetadatas(existingMetadatas: [NextcloudItemMetadataTable], updatedMetadatas: [NextcloudItemMetadataTable]) { let database = ncDatabase() do { try database.write { - // Delete metadatas - for existingMetadata in existingMetadatas { - guard !updatedMetadatas.contains(where: { $0.ocId == existingMetadata.ocId }), - let metadataToDelete = itemMetadataFromOcId(existingMetadata.ocId) else { continue } - - print(""" - Deleting metadata. - ocID: %@, - fileName: %@, - etag: %@ - """ - , metadataToDelete.ocId, metadataToDelete.fileName, metadataToDelete.etag) - database.delete(metadataToDelete) - } + processItemMetadatasToDelete(databaseToWriteTo: database, + existingMetadatas: existingMetadatas, + updatedMetadatas: updatedMetadatas) + // Update existing or create new metadatas for updatedMetadata in updatedMetadatas { -- 2.39.5