Ivan Valkou 5 лет назад
Родитель
Сommit
1f8d7e2ea2

+ 4 - 3
FreeAPS/Sources/APS/GlucoseManager.swift

@@ -7,7 +7,7 @@ protocol GlucoseManager {}
 
 final class BaseGlucoseManager: GlucoseManager, Injectable {
     private let processQueue = DispatchQueue(label: "BaseGlucoseManager.processQueue")
-    @Injected() var glucoseStogare: GlucoseStorage!
+    @Injected() var glucoseStorage: GlucoseStorage!
     @Injected() var nightscoutManager: NightscoutManager!
     @Injected() var apsManager: APSManager!
 
@@ -27,7 +27,7 @@ final class BaseGlucoseManager: GlucoseManager, Injectable {
                 debug(.nightscout, "Start fetching glucose")
                 return Publishers.CombineLatest3(
                     Just(date),
-                    Just(self.glucoseStogare.syncDate()),
+                    Just(self.glucoseStorage.syncDate()),
                     Publishers.CombineLatest(
                         self.nightscoutManager.fetchGlucose(),
                         self.fetchGlucoseFromSgaredGroup()
@@ -40,9 +40,10 @@ final class BaseGlucoseManager: GlucoseManager, Injectable {
             .sink { date, syncDate, glucose in
                 // Because of Spike dosn't respect a date query
                 let filteredByDate = glucose.filter { $0.dateString > syncDate }
-                let filtered = self.glucoseStogare.filterTooFrequentGlucose(filteredByDate, at: syncDate)
+                let filtered = self.glucoseStorage.filterTooFrequentGlucose(filteredByDate, at: syncDate)
                 if !filtered.isEmpty {
                     debug(.nightscout, "New glucose found")
+                    self.glucoseStorage.storeGlucose(filtered)
                     self.apsManager.heartbeat(date: date, force: true)
                 }
             }

+ 1 - 2
FreeAPS/Sources/APS/Storage/GlucoseStorage.swift

@@ -26,10 +26,9 @@ final class BaseGlucoseStorage: GlucoseStorage, Injectable {
 
     func storeGlucose(_ glucose: [BloodGlucose]) {
         processQueue.sync {
-            let filtered = self.filterTooFrequentGlucose(glucose, at: self.lastGlucoseDate())
             let file = OpenAPS.Monitor.glucose
             self.storage.transaction { storage in
-                storage.append(filtered, to: file, uniqBy: \.dateString)
+                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 } ?? []

+ 0 - 4
FreeAPS/Sources/Services/Network/NightscoutManager.swift

@@ -83,10 +83,6 @@ final class BaseNightscoutManager: NightscoutManager, Injectable {
                 return Just([]).setFailureType(to: Error.self).eraseToAnyPublisher()
             })
             .replaceError(with: [])
-            .map {
-                self.glucoseStorage.storeGlucose($0)
-                return $0
-            }
             .eraseToAnyPublisher()
     }