DataTableProvider.swift 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  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. @Injected() var tidepoolManager: TidepoolManager!
  11. func pumpHistory() -> [PumpHistoryEvent] {
  12. pumpHistoryStorage.recent()
  13. }
  14. func pumpSettings() -> PumpSettings {
  15. storage.retrieve(OpenAPS.Settings.settings, as: PumpSettings.self)
  16. ?? PumpSettings(from: OpenAPS.defaults(for: OpenAPS.Settings.settings))
  17. ?? PumpSettings(insulinActionCurve: 6, maxBolus: 10, maxBasal: 2)
  18. }
  19. func tempTargets() -> [TempTarget] {
  20. tempTargetsStorage.recent()
  21. }
  22. func carbs() -> [CarbsEntry] {
  23. carbsStorage.recent()
  24. }
  25. func fpus() -> [CarbsEntry] {
  26. carbsStorage.recent()
  27. }
  28. func deleteCarbs(_ treatement: Treatment) {
  29. // need to start with tidepool because Nightscout delete data
  30. // probably to revise the logic
  31. // TODO:
  32. tidepoolManager.deleteCarbs(
  33. at: treatement.date,
  34. isFPU: treatement.isFPU,
  35. fpuID: treatement.fpuID,
  36. syncID: treatement.id
  37. )
  38. nightscoutManager.deleteCarbs(
  39. at: treatement.date,
  40. isFPU: treatement.isFPU,
  41. fpuID: treatement.fpuID,
  42. syncID: treatement.id
  43. )
  44. }
  45. func deleteInsulin(_ treatement: Treatment) {
  46. // delete tidepoolManager before NS - TODO
  47. tidepoolManager.deleteInsulin(at: treatement.date)
  48. nightscoutManager.deleteInsulin(at: treatement.date)
  49. if let id = treatement.idPumpEvent {
  50. healthkitManager.deleteInsulin(syncID: id)
  51. }
  52. }
  53. func glucose() -> [BloodGlucose] {
  54. glucoseStorage.recent().sorted { $0.date > $1.date }
  55. }
  56. func deleteGlucose(id: String) {
  57. glucoseStorage.removeGlucose(ids: [id])
  58. healthkitManager.deleteGlucose(syncID: id)
  59. }
  60. }
  61. }