CoreDataStorage.swift 1.3 KB

1234567891011121314151617181920212223242526272829303132333435
  1. import CoreData
  2. import Foundation
  3. import SwiftDate
  4. import Swinject
  5. final class CoreDataStorage {
  6. let coredataContext = CoreDataStack.shared.persistentContainer.viewContext // newBackgroundContext()
  7. func fetchGlucose(interval: NSDate) -> [Readings] {
  8. var fetchGlucose = [Readings]()
  9. coredataContext.performAndWait {
  10. let requestReadings = Readings.fetchRequest() as NSFetchRequest<Readings>
  11. let sort = NSSortDescriptor(key: "date", ascending: false)
  12. requestReadings.sortDescriptors = [sort]
  13. requestReadings.predicate = NSPredicate(
  14. format: "glucose > 0 AND date > %@", interval
  15. )
  16. try? fetchGlucose = self.coredataContext.fetch(requestReadings)
  17. }
  18. return fetchGlucose
  19. }
  20. func fetchLatestOverride() -> [Override] {
  21. var overrideArray = [Override]()
  22. coredataContext.performAndWait {
  23. let requestOverrides = Override.fetchRequest() as NSFetchRequest<Override>
  24. let sortOverride = NSSortDescriptor(key: "date", ascending: false)
  25. requestOverrides.sortDescriptors = [sortOverride]
  26. requestOverrides.fetchLimit = 1
  27. try? overrideArray = self.coredataContext.fetch(requestOverrides)
  28. }
  29. return overrideArray
  30. }
  31. }