From b4849c118f5baa8c01bb3d93f3fecd72706d61c6 Mon Sep 17 00:00:00 2001 From: Satindar Dhillon Date: Sat, 23 Apr 2022 09:25:24 -0700 Subject: [PATCH] update core data when new labels are set --- .../DataService/Mutations/CreateLabelPublisher.swift | 8 +++++--- .../Services/DataService/Queries/LabelsPublisher.swift | 10 ++++++---- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/apple/OmnivoreKit/Sources/Services/DataService/Mutations/CreateLabelPublisher.swift b/apple/OmnivoreKit/Sources/Services/DataService/Mutations/CreateLabelPublisher.swift index c0c8deb39..6df9d4de0 100644 --- a/apple/OmnivoreKit/Sources/Services/DataService/Mutations/CreateLabelPublisher.swift +++ b/apple/OmnivoreKit/Sources/Services/DataService/Mutations/CreateLabelPublisher.swift @@ -47,9 +47,11 @@ public extension DataService { switch payload.data { case let .saved(label: label): - // TODO: -labels update CoreData and fix this label thing -// promise(.success(label)) - promise(.failure(.message(messageText: ""))) + if let labelObjectID = [label].persist(context: self.backgroundContext)?.first { + promise(.success(labelObjectID)) + } else { + promise(.failure(.message(messageText: "core data error"))) + } case let .error(errorCode: errorCode): promise(.failure(.message(messageText: errorCode.rawValue))) } diff --git a/apple/OmnivoreKit/Sources/Services/DataService/Queries/LabelsPublisher.swift b/apple/OmnivoreKit/Sources/Services/DataService/Queries/LabelsPublisher.swift index 6139a9ddd..a34de8458 100644 --- a/apple/OmnivoreKit/Sources/Services/DataService/Queries/LabelsPublisher.swift +++ b/apple/OmnivoreKit/Sources/Services/DataService/Queries/LabelsPublisher.swift @@ -33,10 +33,12 @@ public extension DataService { switch result { case let .success(payload): switch payload.data { - case let .success(result: result): - // TODO: -labels update CoreData and fix this -// promise(.success(result)) - promise(.failure(.unknown)) + case let .success(result: labels): + if let labelObjectIDs = labels.persist(context: self.backgroundContext) { + promise(.success(labelObjectIDs)) + } else { + promise(.failure(.unknown)) + } case .error: promise(.failure(.unknown)) }