forked from LoopKit/LoopKit
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCorrectionRangeScheduleEditorViewModel.swift
More file actions
44 lines (36 loc) · 1.46 KB
/
CorrectionRangeScheduleEditorViewModel.swift
File metadata and controls
44 lines (36 loc) · 1.46 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
//
// CorrectionRangeScheduleEditorViewModel.swift
// LoopKitUI
//
// Created by Nathaniel Hamming on 2021-03-19.
// Copyright © 2021 LoopKit Authors. All rights reserved.
//
import Foundation
import HealthKit
import LoopKit
struct CorrectionRangeScheduleEditorViewModel {
let guardrail = Guardrail.correctionRange
let glucoseTargetRangeSchedule: GlucoseRangeSchedule?
let minValue: HKQuantity?
var saveGlucoseTargetRangeSchedule: (_ glucoseTargetRangeSchedule: GlucoseRangeSchedule) -> Void
init(
mode: SettingsPresentationMode,
therapySettingsViewModel: TherapySettingsViewModel,
didSave: (() -> Void)? = nil
) {
if mode == .acceptanceFlow {
self.glucoseTargetRangeSchedule = therapySettingsViewModel.glucoseTargetRangeSchedule?.safeSchedule(with: therapySettingsViewModel.suspendThreshold?.quantity)
}
else {
self.glucoseTargetRangeSchedule = therapySettingsViewModel.glucoseTargetRangeSchedule
}
self.minValue = Guardrail.minCorrectionRangeValue(suspendThreshold: therapySettingsViewModel.suspendThreshold)
self.saveGlucoseTargetRangeSchedule = { [weak therapySettingsViewModel] glucoseTargetRangeSchedule in
guard let therapySettingsViewModel = therapySettingsViewModel else {
return
}
therapySettingsViewModel.saveCorrectionRange(range: glucoseTargetRangeSchedule)
didSave?()
}
}
}