DataTableProvider.swift 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. import Foundation
  2. extension DataTable {
  3. final class Provider: BaseProvider, DataTableProvider {
  4. @Injected() var pumpHistoryStorage: PumpHistoryStorage!
  5. @Injected() var tempTargetsStorage: TempTargetsStorage!
  6. @Injected() var glucoseStorage: GlucoseStorage!
  7. @Injected() var carbsStorage: CarbsStorage!
  8. @Injected() var nightscoutManager: NightscoutManager!
  9. @Injected() var healthkitManager: HealthKitManager!
  10. func pumpHistory() -> [PumpHistoryEvent] {
  11. pumpHistoryStorage.recent()
  12. }
  13. func pumpSettings() -> PumpSettings {
  14. storage.retrieve(OpenAPS.Settings.settings, as: PumpSettings.self)
  15. ?? PumpSettings(from: OpenAPS.defaults(for: OpenAPS.Settings.settings))
  16. ?? PumpSettings(insulinActionCurve: 6, maxBolus: 10, maxBasal: 2)
  17. }
  18. func tempTargets() -> [TempTarget] {
  19. tempTargetsStorage.recent()
  20. }
  21. func carbs() -> [CarbsEntry] {
  22. carbsStorage.recent()
  23. }
  24. func fpus() -> [CarbsEntry] {
  25. carbsStorage.recent()
  26. }
  27. func deleteCarbs(_ treatement: Treatment) {
  28. nightscoutManager.deleteCarbs(
  29. at: treatement.id,
  30. isFPU: treatement.isFPU,
  31. fpuID: treatement.fpuID,
  32. syncID: treatement.id
  33. )
  34. }
  35. func deleteInsulin(_ treatement: Treatment) {
  36. nightscoutManager.deleteInsulin(at: treatement.date)
  37. if let id = treatement.idPumpEvent {
  38. healthkitManager.deleteInsulin(syncID: id)
  39. }
  40. }
  41. func glucose() -> [BloodGlucose] {
  42. glucoseStorage.recent().sorted { $0.date > $1.date }
  43. }
  44. func deleteGlucose(id: String) {
  45. glucoseStorage.removeGlucose(ids: [id])
  46. healthkitManager.deleteGlucose(syncID: id)
  47. }
  48. func deleteManualGlucose(date: Date?) {
  49. nightscoutManager.deleteManualGlucose(at: date ?? .distantPast)
  50. }
  51. }
  52. }