Split off deletion process of updateItemMetadatas of NextcloudFilesDatabaseManager to private method

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
This commit is contained in:
Claudio Cambra 2023-01-25 20:18:51 +01:00
parent 39f4b7a8e4
commit 4d2da1037d
No known key found for this signature in database
GPG key ID: C839200C384636B0

View file

@ -96,25 +96,36 @@ class NextcloudFilesDatabaseManager : NSObject {
return itemMetadataFromOcId(ocId) 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]) { func updateItemMetadatas(existingMetadatas: [NextcloudItemMetadataTable], updatedMetadatas: [NextcloudItemMetadataTable]) {
let database = ncDatabase() let database = ncDatabase()
do { do {
try database.write { try database.write {
// Delete metadatas processItemMetadatasToDelete(databaseToWriteTo: database,
for existingMetadata in existingMetadatas { existingMetadatas: existingMetadatas,
guard !updatedMetadatas.contains(where: { $0.ocId == existingMetadata.ocId }), updatedMetadatas: updatedMetadatas)
let metadataToDelete = itemMetadataFromOcId(existingMetadata.ocId) else { continue }
print("""
Deleting metadata.
ocID: %@,
fileName: %@,
etag: %@
"""
, metadataToDelete.ocId, metadataToDelete.fileName, metadataToDelete.etag)
database.delete(metadataToDelete)
}
// Update existing or create new metadatas // Update existing or create new metadatas
for updatedMetadata in updatedMetadatas { for updatedMetadata in updatedMetadatas {