From 3122fd00f06b4787dd771b04c47bfa4411f655cc Mon Sep 17 00:00:00 2001 From: Satindar Dhillon Date: Mon, 1 Aug 2022 14:14:43 -0700 Subject: [PATCH] update order of delete and save ops when persisting labels --- .../InternalModels/InternalLinkedItemLabel.swift | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/apple/OmnivoreKit/Sources/Services/InternalModels/InternalLinkedItemLabel.swift b/apple/OmnivoreKit/Sources/Services/InternalModels/InternalLinkedItemLabel.swift index 6517fd836..d6707c7b1 100644 --- a/apple/OmnivoreKit/Sources/Services/InternalModels/InternalLinkedItemLabel.swift +++ b/apple/OmnivoreKit/Sources/Services/InternalModels/InternalLinkedItemLabel.swift @@ -117,15 +117,16 @@ extension Sequence where Element == InternalLinkedItemLabel { let validLabelIDs = map(\.id) let invalidLinkedItemLabels = existingLabels.filter { !validLabelIDs.contains($0.unwrappedID) } + // Delete all existing labels that aren't part of the newly updated list + // received from the server + for linkedItem in invalidLinkedItemLabels { + context.delete(linkedItem) + } + let labels = map { $0.asManagedObject(inContext: context) } do { try context.save() - // Delete all existing labels that aren't part of the newly updated list - // received from the server - for linkedItem in invalidLinkedItemLabels { - context.delete(linkedItem) - } logger.debug("labels saved succesfully") result = labels.map(\.objectID) } catch {