Ivan Valkou před 5 roky
rodič
revize
05dd774978

+ 9 - 9
FreeAPS/Sources/APS/APSManager.swift

@@ -127,7 +127,7 @@ final class BaseAPSManager: APSManager, Injectable {
     }
 
     private func autosens() -> AnyPublisher<Bool, Never> {
-        guard let autosens = try? storage.retrieve(OpenAPS.Settings.autosense, as: Autosens.self),
+        guard let autosens = storage.retrieve(OpenAPS.Settings.autosense, as: Autosens.self),
               (autosens.timestamp ?? .distantPast).addingTimeInterval(30.minutes.timeInterval) > Date()
         else {
             return openAPS.autosense()
@@ -139,7 +139,7 @@ final class BaseAPSManager: APSManager, Injectable {
     }
 
     func determineBasal() -> AnyPublisher<Bool, Never> {
-        guard let glucose = try? storage.retrieve(OpenAPS.Monitor.glucose, as: [BloodGlucose].self), glucose.count >= 36 else {
+        guard let glucose = storage.retrieve(OpenAPS.Monitor.glucose, as: [BloodGlucose].self), glucose.count >= 36 else {
             debug(.apsManager, "Not enough glucose data")
             return Just(false).eraseToAnyPublisher()
         }
@@ -218,7 +218,7 @@ final class BaseAPSManager: APSManager, Injectable {
             case .success:
                 debug(.apsManager, "Temp Basal succeeded")
                 let temp = TempBasal(duration: Int(duration / 60), rate: Decimal(rate), temp: .absolute, timestamp: Date())
-                try? self.storage.save(temp, as: OpenAPS.Monitor.tempBasal)
+                self.storage.save(temp, as: OpenAPS.Monitor.tempBasal)
             case let .failure(error):
                 debug(.apsManager, "Temp Basal failed with error: \(error.localizedDescription)")
             }
@@ -309,7 +309,7 @@ final class BaseAPSManager: APSManager, Injectable {
 
     private func currentTemp(date: Date) -> TempBasal {
         let defaultTemp = { () -> TempBasal in
-            guard let temp = try? storage.retrieve(OpenAPS.Monitor.tempBasal, as: TempBasal.self) else {
+            guard let temp = storage.retrieve(OpenAPS.Monitor.tempBasal, as: TempBasal.self) else {
                 return TempBasal(duration: 0, rate: 0, temp: .absolute, timestamp: Date())
             }
             let delta = Int((date.timeIntervalSince1970 - temp.timestamp.timeIntervalSince1970) / 60)
@@ -331,7 +331,7 @@ final class BaseAPSManager: APSManager, Injectable {
     }
 
     private func enactSuggested() {
-        guard let suggested = try? storage.retrieve(OpenAPS.Enact.suggested, as: Suggestion.self) else {
+        guard let suggested = storage.retrieve(OpenAPS.Enact.suggested, as: Suggestion.self) else {
             isLooping.send(false)
             debug(.apsManager, "Suggestion not found")
             return
@@ -356,7 +356,7 @@ final class BaseAPSManager: APSManager, Injectable {
             }
             return pump.enactTempBasal(unitsPerHour: Double(rate), for: TimeInterval(duration * 60)).map { _ in
                 let temp = TempBasal(duration: duration, rate: rate, temp: .absolute, timestamp: Date())
-                try? self.storage.save(temp, as: OpenAPS.Monitor.tempBasal)
+                self.storage.save(temp, as: OpenAPS.Monitor.tempBasal)
                 return ()
             }
             .eraseToAnyPublisher()
@@ -392,7 +392,7 @@ final class BaseAPSManager: APSManager, Injectable {
             var enacted = suggestion
             enacted.timestamp = Date()
             enacted.recieved = received
-            try? storage.save(enacted, as: OpenAPS.Enact.enacted)
+            storage.save(enacted, as: OpenAPS.Enact.enacted)
             debug(.apsManager, "Suggestion enacted")
             DispatchQueue.main.async {
                 self.broadcaster.notify(EnactedSuggestionObserver.self, on: .main) {
@@ -460,8 +460,8 @@ extension BaseAPSManager: PumpManagerStatusObserver {
     func pumpManager(_: PumpManager, didUpdate status: PumpManagerStatus, oldStatus _: PumpManagerStatus) {
         let percent = Int((status.pumpBatteryChargeRemaining ?? 1) * 100)
         let battery = Battery(percent: percent, voltage: nil, string: percent > 10 ? .normal : .low)
-        try? storage.save(battery, as: OpenAPS.Monitor.battery)
-        try? storage.save(status.pumpStatus, as: OpenAPS.Monitor.status)
+        storage.save(battery, as: OpenAPS.Monitor.battery)
+        storage.save(status.pumpStatus, as: OpenAPS.Monitor.status)
 //        if oldStatus.pumpStatus.status != status.pumpStatus.status {
 //            debug(.apsManager, "Pump status did change: \(status.pumpStatus)")
 //            nightscout.uploadStatus()

+ 2 - 2
FreeAPS/Sources/APS/DeviceDataManager.swift

@@ -157,10 +157,10 @@ extension BaseDeviceDataManager: PumpManagerDelegate {
     ) {
         dispatchPrecondition(condition: .onQueue(processQueue))
         debug(.deviceManager, "Reservoir Value \(units), at: \(date)")
-        try? storage.save(Decimal(units), as: OpenAPS.Monitor.reservoir)
+        storage.save(Decimal(units), as: OpenAPS.Monitor.reservoir)
         let batteryPercent = Int((pumpManager?.status.pumpBatteryChargeRemaining ?? 1) * 100)
         let battery = Battery(percent: batteryPercent, voltage: nil, string: batteryPercent >= 10 ? .normal : .low)
-        try? storage.save(battery, as: OpenAPS.Monitor.battery)
+        storage.save(battery, as: OpenAPS.Monitor.battery)
         completion(.success((
             newValue: Reservoir(startDate: Date(), unitVolume: units),
             lastValue: nil,

+ 10 - 10
FreeAPS/Sources/APS/OpenAPS/OpenAPS.swift

@@ -16,11 +16,11 @@ final class OpenAPS {
         Future { promise in
             self.processQueue.async {
                 // clock
-                try? self.storage.save(clock, as: Monitor.clock)
+                self.storage.save(clock, as: Monitor.clock)
 
                 // temp_basal
                 let tempBasal = currentTemp.rawJSON
-                try? self.storage.save(tempBasal, as: Monitor.tempBasal)
+                self.storage.save(tempBasal, as: Monitor.tempBasal)
 
                 // meal
                 let pumpHistory = self.loadFileFromStorage(name: OpenAPS.Monitor.pumpHistory)
@@ -38,7 +38,7 @@ final class OpenAPS {
                     glucose: glucose
                 )
 
-                try? self.storage.save(meal, as: Monitor.meal)
+                self.storage.save(meal, as: Monitor.meal)
 
                 // iob
                 let autosens = self.loadFileFromStorage(name: Settings.autosense)
@@ -49,7 +49,7 @@ final class OpenAPS {
                     autosens: autosens.isEmpty ? .null : autosens
                 )
 
-                try? self.storage.save(iob, as: Monitor.iob)
+                self.storage.save(iob, as: Monitor.iob)
 
                 // determine-basal
                 let reservoir = self.loadFileFromStorage(name: Monitor.reservoir)
@@ -68,7 +68,7 @@ final class OpenAPS {
 
                 if var suggestion = Suggestion(from: suggested) {
                     suggestion.timestamp = suggestion.deliverAt ?? clock
-                    try? self.storage.save(suggestion, as: Enact.suggested)
+                    self.storage.save(suggestion, as: Enact.suggested)
                     promise(.success(suggestion))
                 } else {
                     promise(.success(nil))
@@ -98,7 +98,7 @@ final class OpenAPS {
                 debug(.openAPS, "AUTOSENS: \(autosensResult)")
                 if var autosens = Autosens(from: autosensResult) {
                     autosens.timestamp = Date()
-                    try? self.storage.save(autosens, as: Settings.autosense)
+                    self.storage.save(autosens, as: Settings.autosense)
                     promise(.success(autosens))
                 } else {
                     promise(.success(nil))
@@ -124,7 +124,7 @@ final class OpenAPS {
                 )
                 debug(.openAPS, "AUTOTUNE PREP: \(autotunePreppedGlucose)")
 
-                let previousAutotune = try? self.storage.retrieve(Settings.autotune, as: RawJSON.self)
+                let previousAutotune = self.storage.retrieve(Settings.autotune, as: RawJSON.self)
 
                 let autotuneResult = self.autotuneRun(
                     autotunePreparedData: autotunePreppedGlucose,
@@ -135,7 +135,7 @@ final class OpenAPS {
                 debug(.openAPS, "AUTOTUNE RESULT: \(autotuneResult)")
 
                 if let autotune = Autotune(from: autotuneResult) {
-                    try? self.storage.save(autotuneResult, as: Settings.autotune)
+                    self.storage.save(autotuneResult, as: Settings.autotune)
                     promise(.success(autotune))
                 } else {
                     promise(.success(nil))
@@ -181,8 +181,8 @@ final class OpenAPS {
                     autotune: autotune.isEmpty ? .null : autotune
                 )
 
-                try? self.storage.save(pumpProfile, as: Settings.pumpProfile)
-                try? self.storage.save(profile, as: Settings.profile)
+                self.storage.save(pumpProfile, as: Settings.pumpProfile)
+                self.storage.save(profile, as: Settings.profile)
 
                 if let tunedProfile = Autotune(from: profile) {
                     promise(.success(tunedProfile))

+ 8 - 8
FreeAPS/Sources/APS/Storage/AnnouncementsStorage.swift

@@ -23,18 +23,18 @@ final class BaseAnnouncementsStorage: AnnouncementsStorage, Injectable {
     func storeAnnouncements(_ announcements: [Announcement], enacted: Bool) {
         processQueue.sync {
             let file = enacted ? OpenAPS.FreeAPS.announcementsEnacted : OpenAPS.FreeAPS.announcements
-            try? self.storage.transaction { storage in
-                try storage.append(announcements, to: file, uniqBy: \.createdAt)
-                let uniqEvents = try storage.retrieve(file, as: [Announcement].self)
+            self.storage.transaction { storage in
+                storage.append(announcements, to: file, uniqBy: \.createdAt)
+                let uniqEvents = storage.retrieve(file, as: [Announcement].self)?
                     .filter { $0.createdAt.addingTimeInterval(1.days.timeInterval) > Date() }
-                    .sorted { $0.createdAt > $1.createdAt }
-                try storage.save(Array(uniqEvents), as: file)
+                    .sorted { $0.createdAt > $1.createdAt } ?? []
+                storage.save(Array(uniqEvents), as: file)
             }
         }
     }
 
     func syncDate() -> Date {
-        guard let events = try? storage.retrieve(OpenAPS.FreeAPS.announcements, as: [Announcement].self),
+        guard let events = storage.retrieve(OpenAPS.FreeAPS.announcements, as: [Announcement].self),
               let recent = events.filter({ $0.enteredBy != Announcement.remote }).first
         else {
             return Date().addingTimeInterval(-1.days.timeInterval)
@@ -43,7 +43,7 @@ final class BaseAnnouncementsStorage: AnnouncementsStorage, Injectable {
     }
 
     func recent() -> Announcement? {
-        guard let events = try? storage.retrieve(OpenAPS.FreeAPS.announcements, as: [Announcement].self)
+        guard let events = storage.retrieve(OpenAPS.FreeAPS.announcements, as: [Announcement].self)
         else {
             return nil
         }
@@ -55,7 +55,7 @@ final class BaseAnnouncementsStorage: AnnouncementsStorage, Injectable {
         else {
             return nil
         }
-        guard let enactedEvents = try? storage.retrieve(OpenAPS.FreeAPS.announcementsEnacted, as: [Announcement].self)
+        guard let enactedEvents = storage.retrieve(OpenAPS.FreeAPS.announcementsEnacted, as: [Announcement].self)
         else {
             return recent
         }

+ 8 - 8
FreeAPS/Sources/APS/Storage/CarbsStorage.swift

@@ -26,12 +26,12 @@ final class BaseCarbsStorage: CarbsStorage, Injectable {
         processQueue.sync {
             let file = OpenAPS.Monitor.carbHistory
             var uniqEvents: [CarbsEntry] = []
-            try? self.storage.transaction { storage in
-                try storage.append(carbs, to: file, uniqBy: \.createdAt)
-                uniqEvents = try storage.retrieve(file, as: [CarbsEntry].self)
+            self.storage.transaction { storage in
+                storage.append(carbs, to: file, uniqBy: \.createdAt)
+                uniqEvents = storage.retrieve(file, as: [CarbsEntry].self)?
                     .filter { $0.createdAt.addingTimeInterval(1.days.timeInterval) > Date() }
-                    .sorted { $0.createdAt > $1.createdAt }
-                try storage.save(Array(uniqEvents), as: file)
+                    .sorted { $0.createdAt > $1.createdAt } ?? []
+                storage.save(Array(uniqEvents), as: file)
             }
             broadcaster.notify(CarbsObserver.self, on: processQueue) {
                 $0.carbsDidUpdate(uniqEvents)
@@ -40,7 +40,7 @@ final class BaseCarbsStorage: CarbsStorage, Injectable {
     }
 
     func syncDate() -> Date {
-        guard let events = try? storage.retrieve(OpenAPS.Monitor.carbHistory, as: [CarbsEntry].self),
+        guard let events = storage.retrieve(OpenAPS.Monitor.carbHistory, as: [CarbsEntry].self),
               let recent = events.filter({ $0.enteredBy != CarbsEntry.manual }).first
         else {
             return Date().addingTimeInterval(-1.days.timeInterval)
@@ -49,11 +49,11 @@ final class BaseCarbsStorage: CarbsStorage, Injectable {
     }
 
     func recent() -> [CarbsEntry] {
-        (try? storage.retrieve(OpenAPS.Monitor.carbHistory, as: [CarbsEntry].self))?.reversed() ?? []
+        storage.retrieve(OpenAPS.Monitor.carbHistory, as: [CarbsEntry].self)?.reversed() ?? []
     }
 
     func nightscoutTretmentsNotUploaded() -> [NigtscoutTreatment] {
-        let uploaded = (try? storage.retrieve(OpenAPS.Nightscout.uploadedPumphistory, as: [NigtscoutTreatment].self)) ?? []
+        let uploaded = storage.retrieve(OpenAPS.Nightscout.uploadedPumphistory, as: [NigtscoutTreatment].self) ?? []
 
         let eventsManual = recent().filter { $0.enteredBy == CarbsEntry.manual }
         let treatments = eventsManual.map {

+ 7 - 7
FreeAPS/Sources/APS/Storage/GlucoseStorage.swift

@@ -20,13 +20,13 @@ final class BaseGlucoseStorage: GlucoseStorage, Injectable {
     func storeGlucose(_ glucose: [BloodGlucose]) {
         processQueue.sync {
             let file = OpenAPS.Monitor.glucose
-            try? self.storage.transaction { storage in
-                try storage.append(glucose, to: file, uniqBy: \.dateString)
-                let uniqEvents = try storage.retrieve(file, as: [BloodGlucose].self)
+            self.storage.transaction { storage in
+                storage.append(glucose, to: file, uniqBy: \.dateString)
+                let uniqEvents = storage.retrieve(file, as: [BloodGlucose].self)?
                     .filter { $0.dateString.addingTimeInterval(1.days.timeInterval) > Date() }
-                    .sorted { $0.dateString > $1.dateString }
+                    .sorted { $0.dateString > $1.dateString } ?? []
                 let glucose = Array(uniqEvents)
-                try storage.save(glucose, as: file)
+                storage.save(glucose, as: file)
 
                 DispatchQueue.main.async {
                     self.broadcaster.notify(GlucoseObserver.self, on: .main) {
@@ -38,7 +38,7 @@ final class BaseGlucoseStorage: GlucoseStorage, Injectable {
     }
 
     func syncDate() -> Date {
-        guard let events = try? storage.retrieve(OpenAPS.Monitor.glucose, as: [BloodGlucose].self),
+        guard let events = storage.retrieve(OpenAPS.Monitor.glucose, as: [BloodGlucose].self),
               let recent = events.first
         else {
             return Date().addingTimeInterval(-1.days.timeInterval)
@@ -47,7 +47,7 @@ final class BaseGlucoseStorage: GlucoseStorage, Injectable {
     }
 
     func recent() -> [BloodGlucose] {
-        (try? storage.retrieve(OpenAPS.Monitor.glucose, as: [BloodGlucose].self))?.reversed() ?? []
+        storage.retrieve(OpenAPS.Monitor.glucose, as: [BloodGlucose].self)?.reversed() ?? []
     }
 }
 

+ 7 - 7
FreeAPS/Sources/APS/Storage/PumpHistoryStorage.swift

@@ -159,12 +159,12 @@ final class BasePumpHistoryStorage: PumpHistoryStorage, Injectable {
         dispatchPrecondition(condition: .onQueue(processQueue))
         let file = OpenAPS.Monitor.pumpHistory
         var uniqEvents: [PumpHistoryEvent] = []
-        try? storage.transaction { storage in
-            try storage.append(events, to: file, uniqBy: \.id)
-            uniqEvents = try storage.retrieve(file, as: [PumpHistoryEvent].self)
+        storage.transaction { storage in
+            storage.append(events, to: file, uniqBy: \.id)
+            uniqEvents = storage.retrieve(file, as: [PumpHistoryEvent].self)?
                 .filter { $0.timestamp.addingTimeInterval(1.days.timeInterval) > Date() }
-                .sorted { $0.timestamp > $1.timestamp }
-            try storage.save(Array(uniqEvents), as: file)
+                .sorted { $0.timestamp > $1.timestamp } ?? []
+            storage.save(Array(uniqEvents), as: file)
         }
         broadcaster.notify(PumpHistoryObserver.self, on: processQueue) {
             $0.pumpHistoryDidUpdate(uniqEvents)
@@ -172,7 +172,7 @@ final class BasePumpHistoryStorage: PumpHistoryStorage, Injectable {
     }
 
     func recent() -> [PumpHistoryEvent] {
-        (try? storage.retrieve(OpenAPS.Monitor.pumpHistory, as: [PumpHistoryEvent].self))?.reversed() ?? []
+        storage.retrieve(OpenAPS.Monitor.pumpHistory, as: [PumpHistoryEvent].self)?.reversed() ?? []
     }
 
     func nightscoutTretmentsNotUploaded() -> [NigtscoutTreatment] {
@@ -250,7 +250,7 @@ final class BasePumpHistoryStorage: PumpHistoryStorage, Injectable {
             }
         }
 
-        let uploaded = (try? storage.retrieve(OpenAPS.Nightscout.uploadedPumphistory, as: [NigtscoutTreatment].self)) ?? []
+        let uploaded = storage.retrieve(OpenAPS.Nightscout.uploadedPumphistory, as: [NigtscoutTreatment].self) ?? []
 
         let treatments = Array(Set([bolusesAndCarbs, temps].flatMap { $0 }).subtracting(Set(uploaded)))
 

+ 10 - 10
FreeAPS/Sources/APS/Storage/TempTargetsStorage.swift

@@ -32,15 +32,15 @@ final class BaseTempTargetsStorage: TempTargetsStorage, Injectable {
         processQueue.sync {
             let file = isPresets ? OpenAPS.FreeAPS.tempTargetsPresets : OpenAPS.Settings.tempTargets
             var uniqEvents: [TempTarget] = []
-            try? self.storage.transaction { storage in
-                try storage.append(targets, to: file, uniqBy: \.createdAt)
-                uniqEvents = try storage.retrieve(file, as: [TempTarget].self)
+            self.storage.transaction { storage in
+                storage.append(targets, to: file, uniqBy: \.createdAt)
+                uniqEvents = storage.retrieve(file, as: [TempTarget].self)?
                     .filter {
                         guard !isPresets else { return true }
                         return $0.createdAt.addingTimeInterval(1.days.timeInterval) > Date()
                     }
-                    .sorted { $0.createdAt > $1.createdAt }
-                try storage.save(Array(uniqEvents), as: file)
+                    .sorted { $0.createdAt > $1.createdAt } ?? []
+                storage.save(Array(uniqEvents), as: file)
             }
             broadcaster.notify(TempTargetsObserver.self, on: processQueue) {
                 $0.tempTargetsDidUpdate(uniqEvents)
@@ -49,7 +49,7 @@ final class BaseTempTargetsStorage: TempTargetsStorage, Injectable {
     }
 
     func syncDate() -> Date {
-        guard let events = try? storage.retrieve(OpenAPS.Settings.tempTargets, as: [TempTarget].self),
+        guard let events = storage.retrieve(OpenAPS.Settings.tempTargets, as: [TempTarget].self),
               let recent = events.filter({ $0.enteredBy != TempTarget.manual }).first
         else {
             return Date().addingTimeInterval(-1.days.timeInterval)
@@ -58,11 +58,11 @@ final class BaseTempTargetsStorage: TempTargetsStorage, Injectable {
     }
 
     func recent() -> [TempTarget] {
-        (try? storage.retrieve(OpenAPS.Settings.tempTargets, as: [TempTarget].self))?.reversed() ?? []
+        storage.retrieve(OpenAPS.Settings.tempTargets, as: [TempTarget].self)?.reversed() ?? []
     }
 
     func nightscoutTretmentsNotUploaded() -> [NigtscoutTreatment] {
-        let uploaded = (try? storage.retrieve(OpenAPS.Nightscout.uploadedTempTargets, as: [NigtscoutTreatment].self)) ?? []
+        let uploaded = storage.retrieve(OpenAPS.Nightscout.uploadedTempTargets, as: [NigtscoutTreatment].self) ?? []
 
         let eventsManual = recent().filter { $0.enteredBy == CarbsEntry.manual }
         let treatments = eventsManual.map {
@@ -87,12 +87,12 @@ final class BaseTempTargetsStorage: TempTargetsStorage, Injectable {
     }
 
     func storePresets(_ targets: [TempTarget]) {
-        try? storage.remove(OpenAPS.FreeAPS.tempTargetsPresets)
+        storage.remove(OpenAPS.FreeAPS.tempTargetsPresets)
 
         storeTempTargets(targets, isPresets: true)
     }
 
     func presets() -> [TempTarget] {
-        (try? storage.retrieve(OpenAPS.FreeAPS.tempTargetsPresets, as: [TempTarget].self))?.reversed() ?? []
+        storage.retrieve(OpenAPS.FreeAPS.tempTargetsPresets, as: [TempTarget].self)?.reversed() ?? []
     }
 }

+ 2 - 2
FreeAPS/Sources/Modules/AutotuneConfig/AutotuneConfigProvider.swift

@@ -5,7 +5,7 @@ extension AutotuneConfig {
         @Injected() private var apsManager: APSManager!
 
         var autotune: Autotune? {
-            try? storage.retrieve(OpenAPS.Settings.autotune, as: Autotune.self)
+            storage.retrieve(OpenAPS.Settings.autotune, as: Autotune.self)
         }
 
         func runAutotune() -> AnyPublisher<Autotune?, Never> {
@@ -13,7 +13,7 @@ extension AutotuneConfig {
         }
 
         func deleteAutotune() {
-            try? storage.remove(OpenAPS.Settings.autotune)
+            storage.remove(OpenAPS.Settings.autotune)
         }
     }
 }

+ 3 - 3
FreeAPS/Sources/Modules/BasalProfileEditor/BasalProfileEditorProvider.swift

@@ -7,7 +7,7 @@ extension BasalProfileEditor {
         private let processQueue = DispatchQueue(label: "BasalProfileEditorProvider.processQueue")
 
         var profile: [BasalProfileEntry] {
-            (try? storage.retrieve(OpenAPS.Settings.basalProfile, as: [BasalProfileEntry].self))
+            storage.retrieve(OpenAPS.Settings.basalProfile, as: [BasalProfileEntry].self)
                 ?? [BasalProfileEntry](from: OpenAPS.defaults(for: OpenAPS.Settings.basalProfile))
                 ?? []
         }
@@ -18,7 +18,7 @@ extension BasalProfileEditor {
 
         func saveProfile(_ profile: [BasalProfileEntry]) -> AnyPublisher<Void, Error> {
             guard let pump = deviceManager?.pumpManager else {
-                try? storage.save(profile, as: OpenAPS.Settings.basalProfile)
+                storage.save(profile, as: OpenAPS.Settings.basalProfile)
                 return Just(()).setFailureType(to: Error.self).eraseToAnyPublisher()
             }
 
@@ -30,7 +30,7 @@ extension BasalProfileEditor {
                 pump.syncBasalRateSchedule(items: syncValues) { result in
                     switch result {
                     case .success:
-                        try? self.storage.save(profile, as: OpenAPS.Settings.basalProfile)
+                        self.storage.save(profile, as: OpenAPS.Settings.basalProfile)
                         promise(.success(()))
                     case let .failure(error):
                         promise(.failure(error))

+ 3 - 3
FreeAPS/Sources/Modules/CREditor/CREditorProvider.swift

@@ -3,17 +3,17 @@ import Combine
 extension CREditor {
     final class Provider: BaseProvider, CREditorProvider {
         var profile: CarbRatios {
-            (try? storage.retrieve(OpenAPS.Settings.carbRatios, as: CarbRatios.self))
+            storage.retrieve(OpenAPS.Settings.carbRatios, as: CarbRatios.self)
                 ?? CarbRatios(from: OpenAPS.defaults(for: OpenAPS.Settings.carbRatios))
                 ?? CarbRatios(units: .grams, schedule: [])
         }
 
         func saveProfile(_ profile: CarbRatios) {
-            try? storage.save(profile, as: OpenAPS.Settings.carbRatios)
+            storage.save(profile, as: OpenAPS.Settings.carbRatios)
         }
 
         var autotune: Autotune? {
-            try? storage.retrieve(OpenAPS.Settings.autotune, as: Autotune.self)
+            storage.retrieve(OpenAPS.Settings.autotune, as: Autotune.self)
         }
     }
 }

+ 1 - 1
FreeAPS/Sources/Modules/ConfigEditor/ConfigEditorProvider.swift

@@ -11,7 +11,7 @@ extension ConfigEditor {
         }
 
         func save(_ value: RawJSON, as file: String) {
-            try? storage.save(value, as: file)
+            storage.save(value, as: file)
         }
     }
 }

+ 5 - 5
FreeAPS/Sources/Modules/Home/HomeProvider.swift

@@ -10,11 +10,11 @@ extension Home {
         @Injected() var carbsStorage: CarbsStorage!
 
         var suggestion: Suggestion? {
-            try? storage.retrieve(OpenAPS.Enact.suggested, as: Suggestion.self)
+            storage.retrieve(OpenAPS.Enact.suggested, as: Suggestion.self)
         }
 
         var enactedSuggestion: Suggestion? {
-            try? storage.retrieve(OpenAPS.Enact.enacted, as: Suggestion.self)
+            storage.retrieve(OpenAPS.Enact.enacted, as: Suggestion.self)
         }
 
         func fetchAndLoop() {
@@ -46,14 +46,14 @@ extension Home {
         }
 
         func pumpSettings() -> PumpSettings {
-            (try? storage.retrieve(OpenAPS.Settings.settings, as: PumpSettings.self))
+            storage.retrieve(OpenAPS.Settings.settings, as: PumpSettings.self)
                 ?? PumpSettings(from: OpenAPS.defaults(for: OpenAPS.Settings.settings))
                 ?? PumpSettings(insulinActionCurve: 5, maxBolus: 10, maxBasal: 2)
         }
 
         func basalProfile() -> [BasalProfileEntry] {
-            (try? storage.retrieve(OpenAPS.Settings.profile, as: Autotune.self))?.basalProfile
-                ?? (try? storage.retrieve(OpenAPS.Settings.pumpProfile, as: Autotune.self))?.basalProfile
+            storage.retrieve(OpenAPS.Settings.profile, as: Autotune.self)?.basalProfile
+                ?? storage.retrieve(OpenAPS.Settings.pumpProfile, as: Autotune.self)?.basalProfile
                 ?? [BasalProfileEntry(start: "00:00", minutes: 0, rate: 1)]
         }
     }

+ 4 - 4
FreeAPS/Sources/Modules/ISFEditor/ISFEditorProvider.swift

@@ -1,7 +1,7 @@
 extension ISFEditor {
     final class Provider: BaseProvider, ISFEditorProvider {
         var profile: InsulinSensitivities {
-            (try? storage.retrieve(OpenAPS.Settings.insulinSensitivities, as: InsulinSensitivities.self))
+            storage.retrieve(OpenAPS.Settings.insulinSensitivities, as: InsulinSensitivities.self)
                 ?? InsulinSensitivities(from: OpenAPS.defaults(for: OpenAPS.Settings.insulinSensitivities))
                 ?? InsulinSensitivities(
                     units: .mmolL,
@@ -11,17 +11,17 @@ extension ISFEditor {
         }
 
         func saveProfile(_ profile: InsulinSensitivities) {
-            try? storage.save(profile, as: OpenAPS.Settings.insulinSensitivities)
+            storage.save(profile, as: OpenAPS.Settings.insulinSensitivities)
         }
 
         var autosense: Autosens {
-            (try? storage.retrieve(OpenAPS.Settings.autosense, as: Autosens.self))
+            storage.retrieve(OpenAPS.Settings.autosense, as: Autosens.self)
                 ?? Autosens(from: OpenAPS.defaults(for: OpenAPS.Settings.autosense))
                 ?? Autosens(ratio: 1, newisf: nil, timestamp: nil)
         }
 
         var autotune: Autotune? {
-            try? storage.retrieve(OpenAPS.Settings.autotune, as: Autotune.self)
+            storage.retrieve(OpenAPS.Settings.autotune, as: Autotune.self)
         }
     }
 }

+ 1 - 1
FreeAPS/Sources/Modules/PreferencesEditor/PreferencesEditorProvider.swift

@@ -13,7 +13,7 @@ extension PreferencesEditor {
             processQueue.async {
                 var prefs = preferences
                 prefs.timestamp = Date()
-                try? self.storage.save(prefs, as: OpenAPS.Settings.preferences)
+                self.storage.save(prefs, as: OpenAPS.Settings.preferences)
             }
         }
     }

+ 2 - 2
FreeAPS/Sources/Modules/PumpSettingsEditor/PumpSettingsEditorProvider.swift

@@ -12,14 +12,14 @@ extension PumpSettingsEditor {
         @Injected() private var broadcaster: Broadcaster!
 
         func settings() -> PumpSettings {
-            (try? storage.retrieve(OpenAPS.Settings.settings, as: PumpSettings.self))
+            storage.retrieve(OpenAPS.Settings.settings, as: PumpSettings.self)
                 ?? PumpSettings(from: OpenAPS.defaults(for: OpenAPS.Settings.settings))
                 ?? PumpSettings(insulinActionCurve: 5, maxBolus: 10, maxBasal: 2)
         }
 
         func save(settings: PumpSettings) -> AnyPublisher<Void, Error> {
             func save() {
-                try? storage.save(settings, as: OpenAPS.Settings.settings)
+                storage.save(settings, as: OpenAPS.Settings.settings)
                 processQueue.async {
                     self.broadcaster.notify(PumpSettingsObserver.self, on: self.processQueue) {
                         $0.pumpSettingsDidChange(settings)

+ 2 - 2
FreeAPS/Sources/Modules/TargetsEditor/TargetsEditorProvider.swift

@@ -1,13 +1,13 @@
 extension TargetsEditor {
     final class Provider: BaseProvider, TargetsEditorProvider {
         var profile: BGTargets {
-            (try? storage.retrieve(OpenAPS.Settings.bgTargets, as: BGTargets.self))
+            storage.retrieve(OpenAPS.Settings.bgTargets, as: BGTargets.self)
                 ?? BGTargets(from: OpenAPS.defaults(for: OpenAPS.Settings.bgTargets))
                 ?? BGTargets(units: .mmolL, userPrefferedUnits: .mmolL, targets: [])
         }
 
         func saveProfile(_ profile: BGTargets) {
-            try? storage.save(profile, as: OpenAPS.Settings.bgTargets)
+            storage.save(profile, as: OpenAPS.Settings.bgTargets)
         }
     }
 }

+ 7 - 7
FreeAPS/Sources/Services/Network/NightscoutManager.swift

@@ -113,9 +113,9 @@ final class BaseNightscoutManager: NightscoutManager, Injectable {
     }
 
     func uploadStatus() {
-        let iob = try? storage.retrieve(OpenAPS.Monitor.iob, as: [IOBEntry].self)
-        var suggested = try? storage.retrieve(OpenAPS.Enact.suggested, as: Suggestion.self)
-        var enacted = try? storage.retrieve(OpenAPS.Enact.enacted, as: Suggestion.self)
+        let iob = storage.retrieve(OpenAPS.Monitor.iob, as: [IOBEntry].self)
+        var suggested = storage.retrieve(OpenAPS.Enact.suggested, as: Suggestion.self)
+        var enacted = storage.retrieve(OpenAPS.Enact.enacted, as: Suggestion.self)
 
         if (suggested?.timestamp ?? .distantPast) > (enacted?.timestamp ?? .distantPast) {
             enacted?.predictions = nil
@@ -130,9 +130,9 @@ final class BaseNightscoutManager: NightscoutManager, Injectable {
             version: "0.7.0"
         )
 
-        let battery = try? storage.retrieve(OpenAPS.Monitor.battery, as: Battery.self)
+        let battery = storage.retrieve(OpenAPS.Monitor.battery, as: Battery.self)
         let reservoir = Decimal(from: storage.retrieveRaw(OpenAPS.Monitor.reservoir) ?? "0")
-        let pumpStatus = try? storage.retrieve(OpenAPS.Monitor.status, as: PumpStatus.self)
+        let pumpStatus = storage.retrieve(OpenAPS.Monitor.status, as: PumpStatus.self)
 
         let pump = NSPumpStatus(clock: Date(), battery: battery, reservoir: reservoir, status: pumpStatus)
 
@@ -150,7 +150,7 @@ final class BaseNightscoutManager: NightscoutManager, Injectable {
             uploader: uploader
         )
 
-        try? storage.save(status, as: OpenAPS.Upload.nsStatus)
+        storage.save(status, as: OpenAPS.Upload.nsStatus)
 
         guard let nightscout = nightscoutAPI, isUploadEnabled else {
             return
@@ -192,7 +192,7 @@ final class BaseNightscoutManager: NightscoutManager, Injectable {
                 .sink { completion in
                     switch completion {
                     case .finished:
-                        try? self.storage.save(treatments, as: fileToSave)
+                        self.storage.save(treatments, as: fileToSave)
                     case let .failure(error):
                         debug(.nightscout, error.localizedDescription)
                     }

+ 3 - 3
FreeAPS/Sources/Services/SettingsManager/SettingsManager.swift

@@ -27,7 +27,7 @@ final class BaseSettingsManager: SettingsManager, Injectable {
 
     init(resolver: Resolver) {
         let storage = resolver.resolve(FileStorage.self)!
-        settings = (try? storage.retrieve(OpenAPS.FreeAPS.settings, as: FreeAPSSettings.self))
+        settings = storage.retrieve(OpenAPS.FreeAPS.settings, as: FreeAPSSettings.self)
             ?? FreeAPSSettings(from: OpenAPS.defaults(for: OpenAPS.FreeAPS.settings))
             ?? FreeAPSSettings(units: .mmolL, closedLoop: false, allowAnnouncements: false, useAutotune: false)
 
@@ -35,11 +35,11 @@ final class BaseSettingsManager: SettingsManager, Injectable {
     }
 
     private func save() {
-        try? storage.save(settings, as: OpenAPS.FreeAPS.settings)
+        storage.save(settings, as: OpenAPS.FreeAPS.settings)
     }
 
     var preferences: Preferences {
-        (try? storage.retrieve(OpenAPS.Settings.preferences, as: Preferences.self))
+        storage.retrieve(OpenAPS.Settings.preferences, as: Preferences.self)
             ?? Preferences(from: OpenAPS.defaults(for: OpenAPS.Settings.preferences))
             ?? Preferences()
     }

+ 44 - 44
FreeAPS/Sources/Services/Storage/FileStorage.swift

@@ -2,16 +2,16 @@ import Disk
 import Foundation
 
 protocol FileStorage {
-    func save<Value: JSON>(_ value: Value, as name: String) throws
-    func retrieve<Value: JSON>(_ name: String, as type: Value.Type) throws -> Value
+    func save<Value: JSON>(_ value: Value, as name: String)
+    func retrieve<Value: JSON>(_ name: String, as type: Value.Type) -> Value?
     func retrieveRaw(_ name: String) -> RawJSON?
-    func append<Value: JSON>(_ newValue: Value, to name: String) throws
-    func append<Value: JSON>(_ newValues: [Value], to name: String) throws
-    func append<Value: JSON, T: Equatable>(_ newValue: Value, to name: String, uniqBy keyPath: KeyPath<Value, T>) throws
-    func append<Value: JSON, T: Equatable>(_ newValues: [Value], to name: String, uniqBy keyPath: KeyPath<Value, T>) throws
-    func remove(_ name: String) throws
-    func rename(_ name: String, to newName: String) throws
-    func transaction(_ exec: (FileStorage) throws -> Void) throws
+    func append<Value: JSON>(_ newValue: Value, to name: String)
+    func append<Value: JSON>(_ newValues: [Value], to name: String)
+    func append<Value: JSON, T: Equatable>(_ newValue: Value, to name: String, uniqBy keyPath: KeyPath<Value, T>)
+    func append<Value: JSON, T: Equatable>(_ newValues: [Value], to name: String, uniqBy keyPath: KeyPath<Value, T>)
+    func remove(_ name: String)
+    func rename(_ name: String, to newName: String)
+    func transaction(_ exec: (FileStorage) -> Void)
 
     func urlFor(file: String) -> URL?
 }
@@ -19,19 +19,19 @@ protocol FileStorage {
 final class BaseFileStorage: FileStorage {
     private let processQueue = DispatchQueue.markedQueue(label: "BaseFileStorage.processQueue", qos: .utility)
 
-    func save<Value: JSON>(_ value: Value, as name: String) throws {
-        try processQueue.safeSync {
+    func save<Value: JSON>(_ value: Value, as name: String) {
+        processQueue.safeSync {
             if let value = value as? RawJSON, let data = value.data(using: .utf8) {
-                try Disk.save(data, to: .documents, as: name)
+                try? Disk.save(data, to: .documents, as: name)
             } else {
-                try Disk.save(value, to: .documents, as: name, encoder: JSONCoding.encoder)
+                try? Disk.save(value, to: .documents, as: name, encoder: JSONCoding.encoder)
             }
         }
     }
 
-    func retrieve<Value: JSON>(_ name: String, as type: Value.Type) throws -> Value {
-        try processQueue.safeSync {
-            try Disk.retrieve(name, from: .documents, as: type, decoder: JSONCoding.decoder)
+    func retrieve<Value: JSON>(_ name: String, as type: Value.Type) -> Value? {
+        processQueue.safeSync {
+            try? Disk.retrieve(name, from: .documents, as: type, decoder: JSONCoding.decoder)
         }
     }
 
@@ -44,66 +44,66 @@ final class BaseFileStorage: FileStorage {
         }
     }
 
-    func append<Value: JSON>(_ newValue: Value, to name: String) throws {
-        try processQueue.safeSync {
-            try Disk.append(newValue, to: name, in: .documents, decoder: JSONCoding.decoder, encoder: JSONCoding.encoder)
+    func append<Value: JSON>(_ newValue: Value, to name: String) {
+        processQueue.safeSync {
+            try? Disk.append(newValue, to: name, in: .documents, decoder: JSONCoding.decoder, encoder: JSONCoding.encoder)
         }
     }
 
-    func append<Value: JSON>(_ newValues: [Value], to name: String) throws {
-        try processQueue.safeSync {
-            try Disk.append(newValues, to: name, in: .documents, decoder: JSONCoding.decoder, encoder: JSONCoding.encoder)
+    func append<Value: JSON>(_ newValues: [Value], to name: String) {
+        processQueue.safeSync {
+            try? Disk.append(newValues, to: name, in: .documents, decoder: JSONCoding.decoder, encoder: JSONCoding.encoder)
         }
     }
 
-    func append<Value: JSON, T: Equatable>(_ newValue: Value, to name: String, uniqBy keyPath: KeyPath<Value, T>) throws {
-        if let value = try? retrieve(name, as: Value.self) {
+    func append<Value: JSON, T: Equatable>(_ newValue: Value, to name: String, uniqBy keyPath: KeyPath<Value, T>) {
+        if let value = retrieve(name, as: Value.self) {
             if value[keyPath: keyPath] != newValue[keyPath: keyPath] {
-                try append(newValue, to: name)
+                append(newValue, to: name)
             }
-        } else if let values = try? retrieve(name, as: [Value].self) {
+        } else if let values = retrieve(name, as: [Value].self) {
             guard values.first(where: { $0[keyPath: keyPath] == newValue[keyPath: keyPath] }) == nil else {
                 return
             }
-            try append(newValue, to: name)
+            append(newValue, to: name)
         } else {
-            try save(newValue, as: name)
+            save(newValue, as: name)
         }
     }
 
-    func append<Value: JSON, T: Equatable>(_ newValues: [Value], to name: String, uniqBy keyPath: KeyPath<Value, T>) throws {
-        if let value = try? retrieve(name, as: Value.self) {
+    func append<Value: JSON, T: Equatable>(_ newValues: [Value], to name: String, uniqBy keyPath: KeyPath<Value, T>) {
+        if let value = retrieve(name, as: Value.self) {
             guard newValues.first(where: { $0[keyPath: keyPath] == value[keyPath: keyPath] }) == nil else {
                 return
             }
-            try append(newValues, to: name)
-        } else if let values = try? retrieve(name, as: [Value].self) {
-            try newValues.forEach { newValue in
+            append(newValues, to: name)
+        } else if let values = retrieve(name, as: [Value].self) {
+            newValues.forEach { newValue in
                 guard values.first(where: { $0[keyPath: keyPath] == newValue[keyPath: keyPath] }) == nil else {
                     return
                 }
-                try append(newValue, to: name)
+                append(newValue, to: name)
             }
         } else {
-            try save(newValues, as: name)
+            save(newValues, as: name)
         }
     }
 
-    func remove(_ name: String) throws {
-        try processQueue.safeSync {
-            try Disk.remove(name, from: .documents)
+    func remove(_ name: String) {
+        processQueue.safeSync {
+            try? Disk.remove(name, from: .documents)
         }
     }
 
-    func rename(_ name: String, to newName: String) throws {
-        try processQueue.safeSync {
-            try Disk.rename(name, in: .documents, to: newName)
+    func rename(_ name: String, to newName: String) {
+        processQueue.safeSync {
+            try? Disk.rename(name, in: .documents, to: newName)
         }
     }
 
-    func transaction(_ exec: (FileStorage) throws -> Void) throws {
-        try processQueue.safeSync {
-            try exec(self)
+    func transaction(_ exec: (FileStorage) -> Void) {
+        processQueue.safeSync {
+            exec(self)
         }
     }