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)
}
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 }
processItemMetadatasToDelete(databaseToWriteTo: database,
existingMetadatas: existingMetadatas,
updatedMetadatas: updatedMetadatas)
print("""
Deleting metadata.
ocID: %@,
fileName: %@,
etag: %@
"""
, metadataToDelete.ocId, metadataToDelete.fileName, metadataToDelete.etag)
database.delete(metadataToDelete)
}
// Update existing or create new metadatas
for updatedMetadata in updatedMetadatas {