Преглед изворни кода

7days of TDD history (test)

Jon Mårtensson пре 4 година
родитељ
комит
c2dd4c1fd8

+ 14 - 4
FreeAPS/Sources/APS/APSManager.swift

@@ -589,14 +589,24 @@ final class BaseAPSManager: APSManager, Injectable {
 
             storage.save(enacted, as: OpenAPS.Enact.enacted)
 
-            let tdds = OpenAPS.Monitor.tdd
-
+            // Add to tdd.json
+            let file = OpenAPS.Monitor.tdd
+            
             let tdd = TDD(
                 TDD: enacted.tdd ?? 0,
-                timestamp: Date()
+                timestamp: Date(),
+                id: UUID().uuidString
             )
 
-            storage.append(tdd, to: tdds)
+            var uniqEvents: [TDD] = []
+            storage.transaction { storage in
+                storage.append(tdd, to: file, uniqBy: \.id)
+                uniqEvents = storage.retrieve(file, as: [TDD].self)?
+                    .filter { $0.timestamp.addingTimeInterval(7.days.timeInterval) > Date() }
+                    .sorted { $0.timestamp > $1.timestamp } ?? []
+                storage.save(Array(uniqEvents), as: file)
+            }
+
 
             debug(.apsManager, "Suggestion enacted. Received: \(received)")
             DispatchQueue.main.async {

+ 1 - 1
FreeAPS/Sources/Models/Preferences.swift

@@ -63,7 +63,7 @@ struct Preferences: JSON {
     var enableBGacceleration: Bool = false
     var maxDeltaBGthreshold: Decimal = 0.2
     var adjustmentFactor: Decimal = 1.0
-    var enableChris: Bool = true
+    var enableChris: Bool = false
     var enableDynamicCR: Bool = false
     var useNewFormula: Bool = false
 }

+ 20 - 0
FreeAPS/Sources/Models/TDD.swift

@@ -3,4 +3,24 @@ import Foundation
 struct TDD: JSON, Equatable {
     var TDD: Decimal
     var timestamp: Date
+    let id: String
+
+    init(
+        TDD: Decimal,
+        timestamp: Date,
+        id: String
+    ) {
+        self.TDD = TDD
+        self.timestamp = timestamp
+        self.id = id
+    }
+    
+}
+
+extension TDD {
+    private enum CodingKeys: String, CodingKey {
+        case TDD
+        case timestamp
+        case id
+    }
 }