BolusProvider.swift 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. import CoreData
  2. extension Bolus {
  3. final class Provider: BaseProvider, BolusProvider {
  4. let coredataContext = CoreDataStack.shared.persistentContainer.viewContext
  5. var suggestion: Suggestion? {
  6. storage.retrieve(OpenAPS.Enact.suggested, as: Suggestion.self)
  7. }
  8. func pumpSettings() -> PumpSettings {
  9. storage.retrieve(OpenAPS.Settings.settings, as: PumpSettings.self)
  10. ?? PumpSettings(from: OpenAPS.defaults(for: OpenAPS.Settings.settings))
  11. ?? PumpSettings(insulinActionCurve: 6, maxBolus: 10, maxBasal: 2)
  12. }
  13. func getProfile() -> [BasalProfileEntry] {
  14. storage.retrieve(OpenAPS.Settings.basalProfile, as: [BasalProfileEntry].self)
  15. ?? [BasalProfileEntry](from: OpenAPS.defaults(for: OpenAPS.Settings.basalProfile))
  16. ?? []
  17. }
  18. func fetchGlucose() -> [Readings] {
  19. var fetchGlucose = [Readings]()
  20. coredataContext.performAndWait {
  21. let requestReadings = Readings.fetchRequest() as NSFetchRequest<Readings>
  22. let sort = NSSortDescriptor(key: "date", ascending: true)
  23. requestReadings.sortDescriptors = [sort]
  24. requestReadings.predicate = NSPredicate(
  25. format: "glucose > 0 AND date > %@",
  26. Date().addingTimeInterval(-1.hours.timeInterval) as NSDate
  27. )
  28. try? fetchGlucose = self.coredataContext.fetch(requestReadings)
  29. }
  30. return fetchGlucose
  31. }
  32. }
  33. }