CorrectionRangeScheduleEditorViewModel.swift 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. //
  2. // CorrectionRangeScheduleEditorViewModel.swift
  3. // LoopKitUI
  4. //
  5. // Created by Nathaniel Hamming on 2021-03-19.
  6. // Copyright © 2021 LoopKit Authors. All rights reserved.
  7. //
  8. import Foundation
  9. import HealthKit
  10. import LoopKit
  11. struct CorrectionRangeScheduleEditorViewModel {
  12. let guardrail = Guardrail.correctionRange
  13. let glucoseTargetRangeSchedule: GlucoseRangeSchedule?
  14. let minValue: HKQuantity?
  15. var saveGlucoseTargetRangeSchedule: (_ glucoseTargetRangeSchedule: GlucoseRangeSchedule) -> Void
  16. init(therapySettingsViewModel: TherapySettingsViewModel,
  17. didSave: (() -> Void)? = nil)
  18. {
  19. self.glucoseTargetRangeSchedule = therapySettingsViewModel.glucoseTargetRangeSchedule
  20. self.minValue = Guardrail.minCorrectionRangeValue(suspendThreshold: therapySettingsViewModel.suspendThreshold)
  21. self.saveGlucoseTargetRangeSchedule = { [weak therapySettingsViewModel] glucoseTargetRangeSchedule in
  22. guard let therapySettingsViewModel = therapySettingsViewModel else {
  23. return
  24. }
  25. therapySettingsViewModel.saveCorrectionRange(range: glucoseTargetRangeSchedule)
  26. didSave?()
  27. }
  28. }
  29. }