Просмотр исходного кода

Add logging for remote commands

Jonas Björkert 1 год назад
Родитель
Сommit
1b6eb32d33

+ 6 - 3
LoopFollow/Remote/Loop/LoopOverrideView.swift

@@ -201,9 +201,11 @@ struct LoopOverrideView: View {
             if success {
                 self.statusMessage = "Override command sent successfully."
                 self.alertType = .statusSuccess
+                LogManager.shared.log(category: .nightscout, message: "LoopOverrideView: sendActivateOverrideRequest succeeded for override: \(override.name)")
             } else {
                 self.statusMessage = message ?? "Failed to send override command."
                 self.alertType = .statusFailure
+                LogManager.shared.log(category: .nightscout, message: "LoopOverrideView: sendActivateOverrideRequest failed for override: \(override.name) with error: \(message ?? "unknown error")")
             }
             self.showAlert = true
         }
@@ -216,11 +218,12 @@ struct LoopOverrideView: View {
             if success {
                 self.statusMessage = "Cancellation request successfully sent to Nightscout."
                 self.alertType = .statusSuccess
+                LogManager.shared.log(category: .nightscout, message: "LoopOverrideView: sendCancelOverrideRequest succeeded")
             } else {
-                self.statusMessage = message ?? "Failed to cancel temp target."
+                self.statusMessage = message ?? "Failed to cancel override."
                 self.alertType = .statusFailure
+                LogManager.shared.log(category: .nightscout, message: "LoopOverrideView: sendCancelOverrideRequest failed with error: \(message ?? "unknown error")")
             }
             self.showAlert = true
         }
-    }
-}
+    }}

+ 34 - 14
LoopFollow/Remote/Nightscout/TrioNightscoutRemoteView.swift

@@ -255,28 +255,48 @@ struct TrioNightscoutRemoteView: View {
     private func enactTempTarget() {
         isLoading = true
         remoteController.sendTempTarget(newTarget: newHKTarget, duration: duration) { success in
-            self.isLoading = false
-            if success {
-                self.statusMessage = "Command successfully sent to Nightscout."
-            } else {
-                self.statusMessage = "Failed to enact target."
+            DispatchQueue.main.async {
+                self.isLoading = false
+                if success {
+                    self.statusMessage = "Command successfully sent to Nightscout."
+                    LogManager.shared.log(
+                        category: .nightscout,
+                        message: "sendTempTarget succeeded - New Target: \(Localizer.formatQuantity(newHKTarget)) \(UserDefaultsRepository.getPreferredUnit().localizedShortUnitString), Duration: \(Int(duration.doubleValue(for: HKUnit.minute()))) minutes"
+                    )
+                } else {
+                    self.statusMessage = "Failed to enact target."
+                    LogManager.shared.log(
+                        category: .nightscout,
+                        message: "sendTempTarget failed - New Target: \(Localizer.formatQuantity(newHKTarget)) \(UserDefaultsRepository.getPreferredUnit().localizedShortUnitString), Duration: \(Int(duration.doubleValue(for: HKUnit.minute()))) minutes"
+                    )
+                }
+                self.alertType = .status
+                self.showAlert = true
             }
-            self.alertType = .status
-            self.showAlert = true
         }
     }
 
     private func cancelTempTarget() {
         isLoading = true
         remoteController.cancelExistingTarget { success in
-            self.isLoading = false
-            if success {
-                self.statusMessage = "Cancellation request successfully sent to Nightscout."
-            } else {
-                self.statusMessage = "Failed to cancel temp target."
+            DispatchQueue.main.async {
+                self.isLoading = false
+                if success {
+                    self.statusMessage = "Cancellation request successfully sent to Nightscout."
+                    LogManager.shared.log(
+                        category: .nightscout,
+                        message: "cancelExistingTarget succeeded"
+                    )
+                } else {
+                    self.statusMessage = "Failed to cancel temp target."
+                    LogManager.shared.log(
+                        category: .nightscout,
+                        message: "cancelExistingTarget failed"
+                    )
+                }
+                self.alertType = .status
+                self.showAlert = true
             }
-            self.alertType = .status
-            self.showAlert = true
         }
     }
 

+ 2 - 0
LoopFollow/Remote/TRC/BolusView.swift

@@ -119,10 +119,12 @@ struct BolusView: View {
                 isLoading = false
                 if success {
                     statusMessage = "Bolus command sent successfully."
+                    LogManager.shared.log(category: .apns, message: "sendBolusPushNotification succeeded - Bolus: \(bolusAmount.doubleValue(for: .internationalUnit())) U")
                     bolusAmount = HKQuantity(unit: .internationalUnit(), doubleValue: 0.0)
                     alertType = .statusSuccess
                 } else {
                     statusMessage = errorMessage ?? "Failed to send bolus command."
+                    LogManager.shared.log(category: .apns, message: "sendBolusPushNotification failed with error: \(errorMessage ?? "unknown error")")
                     alertType = .statusFailure
                 }
                 showAlert = true

+ 10 - 0
LoopFollow/Remote/TRC/MealView.swift

@@ -269,6 +269,12 @@ struct MealView: View {
                 isLoading = false
                 if success {
                     statusMessage = "Meal command sent successfully."
+                    LogManager.shared.log(
+                        category: .apns,
+                        message: "sendMealPushNotification succeeded - Carbs: \(carbs.doubleValue(for: .gram())) g, Protein: \(protein.doubleValue(for: .gram())) g, Fat: \(fat.doubleValue(for: .gram())) g, Bolus: \(bolusAmount.doubleValue(for: .internationalUnit())) U, Scheduled: \(scheduledDate != nil ? formatDate(scheduledDate!) : "now")"
+                    )
+
+                    // Reset meal values and scheduled data after success
                     carbs = HKQuantity(unit: .gram(), doubleValue: 0.0)
                     protein = HKQuantity(unit: .gram(), doubleValue: 0.0)
                     fat = HKQuantity(unit: .gram(), doubleValue: 0.0)
@@ -277,6 +283,10 @@ struct MealView: View {
                     alertType = .statusSuccess
                 } else {
                     statusMessage = errorMessage ?? "Failed to send meal command."
+                    LogManager.shared.log(
+                        category: .apns,
+                        message: "sendMealPushNotification failed with error: \(errorMessage ?? "unknown error")"
+                    )
                     alertType = .statusFailure
                 }
                 showAlert = true

+ 4 - 0
LoopFollow/Remote/TRC/OverrideView.swift

@@ -179,9 +179,11 @@ struct OverrideView: View {
                 if success {
                     self.statusMessage = "Override command sent successfully."
                     self.alertType = .statusSuccess
+                    LogManager.shared.log(category: .apns, message: "sendOverridePushNotification succeeded for override: \(override.name)")
                 } else {
                     self.statusMessage = errorMessage ?? "Failed to send override command."
                     self.alertType = .statusFailure
+                    LogManager.shared.log(category: .apns, message: "sendOverridePushNotification failed for override: \(override.name). Error: \(errorMessage ?? "unknown error")")
                 }
                 self.showAlert = true
             }
@@ -197,9 +199,11 @@ struct OverrideView: View {
                 if success {
                     self.statusMessage = "Cancel override command sent successfully."
                     self.alertType = .statusSuccess
+                    LogManager.shared.log(category: .apns, message: "sendCancelOverridePushNotification succeeded")
                 } else {
                     self.statusMessage = errorMessage ?? "Failed to send cancel override command."
                     self.alertType = .statusFailure
+                    LogManager.shared.log(category: .apns, message: "sendCancelOverridePushNotification failed. Error: \(errorMessage ?? "unknown error")")
                 }
                 self.showAlert = true
             }

+ 4 - 0
LoopFollow/Remote/TRC/TempTargetView.swift

@@ -259,9 +259,11 @@ struct TempTargetView: View {
                 if success {
                     self.statusMessage = "Temp target command successfully sent."
                     self.alertType = .statusSuccess
+                    LogManager.shared.log(category: .apns, message: "sendTempTargetPushNotification succeeded with target: \(newHKTarget), duration: \(duration)")
                 } else {
                     self.statusMessage = errorMessage ?? "Failed to send temp target command."
                     self.alertType = .statusFailure
+                    LogManager.shared.log(category: .apns, message: "sendTempTargetPushNotification failed with target: \(newHKTarget), duration: \(duration), error: \(errorMessage ?? "unknown error")")
                 }
                 self.showAlert = true
             }
@@ -277,9 +279,11 @@ struct TempTargetView: View {
                 if success {
                     self.statusMessage = "Cancel temp target command successfully sent."
                     self.alertType = .statusSuccess
+                    LogManager.shared.log(category: .apns, message: "sendCancelTempTargetPushNotification succeeded")
                 } else {
                     self.statusMessage = errorMessage ?? "Failed to send cancel temp target command."
                     self.alertType = .statusFailure
+                    LogManager.shared.log(category: .apns, message: "sendCancelTempTargetPushNotification failed with error: \(errorMessage ?? "unknown error")")
                 }
                 self.showAlert = true
             }