|
@@ -59,13 +59,10 @@ extension Onboarding.StateModel {
|
|
|
|
|
|
|
|
do {
|
|
do {
|
|
|
guard let fetchedProfile = await nightscoutManager.importSettings() else {
|
|
guard let fetchedProfile = await nightscoutManager.importSettings() else {
|
|
|
- await MainActor.run {
|
|
|
|
|
- nightscoutImportStatus = .failed
|
|
|
|
|
- }
|
|
|
|
|
throw NSError(
|
|
throw NSError(
|
|
|
domain: "ImportError",
|
|
domain: "ImportError",
|
|
|
code: 1,
|
|
code: 1,
|
|
|
- userInfo: [NSLocalizedDescriptionKey: "Cannot find the default Nightscout Profile."]
|
|
|
|
|
|
|
+ userInfo: [NSLocalizedDescriptionKey: "Cannot find the Nightscout Profile named \"default\"."]
|
|
|
)
|
|
)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -83,9 +80,6 @@ extension Onboarding.StateModel {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
if carbratios.contains(where: { $0.ratio <= 0 }) {
|
|
if carbratios.contains(where: { $0.ratio <= 0 }) {
|
|
|
- await MainActor.run {
|
|
|
|
|
- nightscoutImportStatus = .failed
|
|
|
|
|
- }
|
|
|
|
|
throw NSError(
|
|
throw NSError(
|
|
|
domain: "ImportError",
|
|
domain: "ImportError",
|
|
|
code: 2,
|
|
code: 2,
|
|
@@ -105,9 +99,6 @@ extension Onboarding.StateModel {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
if basals.contains(where: { $0.rate <= 0 }) {
|
|
if basals.contains(where: { $0.rate <= 0 }) {
|
|
|
- await MainActor.run {
|
|
|
|
|
- nightscoutImportStatus = .failed
|
|
|
|
|
- }
|
|
|
|
|
throw NSError(
|
|
throw NSError(
|
|
|
domain: "ImportError",
|
|
domain: "ImportError",
|
|
|
code: 3,
|
|
code: 3,
|
|
@@ -116,9 +107,6 @@ extension Onboarding.StateModel {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
if basals.reduce(0, { $0 + $1.rate }) <= 0 {
|
|
if basals.reduce(0, { $0 + $1.rate }) <= 0 {
|
|
|
- await MainActor.run {
|
|
|
|
|
- nightscoutImportStatus = .failed
|
|
|
|
|
- }
|
|
|
|
|
throw NSError(
|
|
throw NSError(
|
|
|
domain: "ImportError",
|
|
domain: "ImportError",
|
|
|
code: 4,
|
|
code: 4,
|
|
@@ -139,9 +127,6 @@ extension Onboarding.StateModel {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
if sensitivities.contains(where: { $0.sensitivity <= 0 }) {
|
|
if sensitivities.contains(where: { $0.sensitivity <= 0 }) {
|
|
|
- await MainActor.run {
|
|
|
|
|
- nightscoutImportStatus = .failed
|
|
|
|
|
- }
|
|
|
|
|
throw NSError(
|
|
throw NSError(
|
|
|
domain: "ImportError",
|
|
domain: "ImportError",
|
|
|
code: 5,
|
|
code: 5,
|
|
@@ -178,7 +163,8 @@ extension Onboarding.StateModel {
|
|
|
)
|
|
)
|
|
|
} catch {
|
|
} catch {
|
|
|
await MainActor.run {
|
|
await MainActor.run {
|
|
|
- self.nightscoutImportErrors.append(error.localizedDescription)
|
|
|
|
|
|
|
+ self.nightscoutImportError = NightscoutImportError(message: error.localizedDescription)
|
|
|
|
|
+ self.nightscoutImportStatus = .failed
|
|
|
debug(.service, "Settings import failed with error: \(error.localizedDescription)")
|
|
debug(.service, "Settings import failed with error: \(error.localizedDescription)")
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -259,8 +245,14 @@ extension Onboarding.StateModel {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
enum ImportStatus {
|
|
enum ImportStatus {
|
|
|
|
|
+ case none
|
|
|
case running
|
|
case running
|
|
|
case finished
|
|
case finished
|
|
|
case failed
|
|
case failed
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+struct NightscoutImportError: Identifiable {
|
|
|
|
|
+ let id = UUID()
|
|
|
|
|
+ let message: String
|
|
|
|
|
+}
|