// // MastodonCachePersistentStore.swift // Tusker // // Created by Shadowfacts on 4/11/20. // Copyright © 2020 Shadowfacts. All rights reserved. // import Foundation import CoreData class MastodonCachePersistentStore: NSPersistentContainer { init(for controller: MastodonController) { let url = Bundle.main.url(forResource: "Tusker", withExtension: "momd")! let model = NSManagedObjectModel(contentsOf: url)! super.init(name: "\(controller.accountInfo!.id)_cache", managedObjectModel: model) loadPersistentStores { (description, error) in if let error = error { fatalError("Unable to load persistent store: \(error)") } } } func status(for id: String) -> StatusMO? { let request: NSFetchRequest = StatusMO.fetchRequest() request.predicate = NSPredicate(format: "id = %@", id) request.fetchLimit = 1 if let result = try? viewContext.fetch(request), let status = result.first { return status } else { return nil } } func account(for id: String) -> AccountMO? { let request: NSFetchRequest = AccountMO.fetchRequest() request.predicate = NSPredicate(format: "id = %@", id) request.fetchLimit = 1 if let result = try? viewContext.fetch(request), let account = result.first { return account } else { return nil } } }