diff --git a/Sources/Pulse/LoggerStore/LoggerStore.swift b/Sources/Pulse/LoggerStore/LoggerStore.swift index 20b838487..0dabc4846 100644 --- a/Sources/Pulse/LoggerStore/LoggerStore.swift +++ b/Sources/Pulse/LoggerStore/LoggerStore.swift @@ -766,9 +766,10 @@ extension LoggerStore { /// - parameter predicate: By default, `nil`. public func messages( sortDescriptors: [SortDescriptor] = [SortDescriptor(\.createdAt, order: .forward)], - predicate: NSPredicate? = nil + predicate: NSPredicate? = nil, + context: NSManagedObjectContext? = nil ) throws -> [LoggerMessageEntity] { - try viewContext.fetch(LoggerMessageEntity.self) { + try (context ?? viewContext).fetch(LoggerMessageEntity.self) { $0.sortDescriptors = sortDescriptors.map(NSSortDescriptor.init) $0.predicate = predicate } @@ -781,9 +782,10 @@ extension LoggerStore { /// - parameter predicate: By default, `nil`. public func tasks( sortDescriptors: [SortDescriptor] = [SortDescriptor(\.createdAt, order: .forward)], - predicate: NSPredicate? = nil + predicate: NSPredicate? = nil, + context: NSManagedObjectContext? = nil ) throws -> [NetworkTaskEntity] { - try viewContext.fetch(NetworkTaskEntity.self) { + try (context ?? viewContext).fetch(NetworkTaskEntity.self) { $0.sortDescriptors = sortDescriptors.map(NSSortDescriptor.init) $0.predicate = predicate } diff --git a/Sources/PulseUI/Helpers/HARDocument.swift b/Sources/PulseUI/Helpers/HARDocument.swift index a419af1a8..9457e3003 100644 --- a/Sources/PulseUI/Helpers/HARDocument.swift +++ b/Sources/PulseUI/Helpers/HARDocument.swift @@ -18,7 +18,7 @@ struct HARDocument: Encodable { init(store: LoggerStore) throws { var entries: [Entry] = [] var pages: [Page] = [] - try Dictionary(grouping: store.tasks(), by: \.url).values.forEach { networkTasks in + try Dictionary(grouping: store.tasks(context: store.backgroundContext), by: \.url).values.forEach { networkTasks in let pageId = "page_\(pages.count)" pages.append( .init( @@ -29,7 +29,7 @@ struct HARDocument: Encodable { ) entries.append(contentsOf: networkTasks.map { .init(entity: $0, pageId: pageId) }) } - try store.messages().forEach { message in + try store.messages(context: store.backgroundContext).forEach { message in if let task = message.task { entries.append(.init(entity: task, pageId: "page_\(pages.count)")) }