Преглед на файлове

Merge branch 'dev' into alarm

Jonas Björkert преди 1 година
родител
ревизия
190a6258ad
променени са 2 файла, в които са добавени 29 реда и са изтрити 26 реда
  1. 1 1
      Config.xcconfig
  2. 28 25
      LoopFollow/Extensions/ShareClientExtension.swift

+ 1 - 1
Config.xcconfig

@@ -6,4 +6,4 @@
 unique_id = ${DEVELOPMENT_TEAM}
 
 //Version (DEFAULT)
-LOOP_FOLLOW_MARKETING_VERSION = 2.7.0
+LOOP_FOLLOW_MARKETING_VERSION = 2.7.2

+ 28 - 25
LoopFollow/Extensions/ShareClientExtension.swift

@@ -9,7 +9,7 @@ public struct ShareGlucoseData: Decodable {
     var sgv: Int
     var date: TimeInterval
     var direction: String?
-
+    
     enum CodingKeys: String, CodingKey {
         case sgv // Sensor Blood Glucose
         case mbg // Manual Blood Glucose
@@ -17,7 +17,7 @@ public struct ShareGlucoseData: Decodable {
         case date
         case direction
     }
-
+    
     // Decoder initializer for handling JSON data
     public init(from decoder: Decoder) throws {
         let container = try decoder.container(keyedBy: CodingKeys.self)
@@ -31,12 +31,12 @@ public struct ShareGlucoseData: Decodable {
         } else {
             throw DecodingError.dataCorruptedError(forKey: .sgv, in: container, debugDescription: "Expected to decode Double for sgv, mbg or glucose.")
         }
-
+        
         // Decode the date and optional direction
         date = try container.decode(TimeInterval.self, forKey: .date)
         direction = try container.decodeIfPresent(String.self, forKey: .direction)
     }
-
+    
     public init(sgv: Int, date: TimeInterval, direction: String?) {
         self.sgv = sgv
         self.date = date
@@ -45,36 +45,39 @@ public struct ShareGlucoseData: Decodable {
 }
 
 private var TrendTable: [String] = [
-    "NONE", // 0
-    "DoubleUp", // 1
-    "SingleUp", // 2
-    "FortyFiveUp", // 3
-    "Flat", // 4
-    "FortyFiveDown", // 5
-    "SingleDown", // 6
-    "DoubleDown", // 7
-    "NOT COMPUTABLE", // 8
-    "RATE OUT OF RANGE", // 9
+    "NONE",             // 0
+    "DoubleUp",         // 1
+    "SingleUp",         // 2
+    "FortyFiveUp",      // 3
+    "Flat",             // 4
+    "FortyFiveDown",    // 5
+    "SingleDown",       // 6
+    "DoubleDown",       // 7
+    "NOT COMPUTABLE",   // 8
+    "RATE OUT OF RANGE" // 9
 ]
 
-public extension ShareClient {
-    func fetchData(_ entries: Int, callback: @escaping (ShareError?, [ShareGlucoseData]?) -> Void) {
-        fetchLast(entries) { error, result in
-            guard error == nil || result != nil else {
-                return callback(error, nil)
+// TODO: probably better to make this an inherited class rather than an extension
+extension ShareClient {
+    
+    public func fetchData(_ entries: Int, callback: @escaping (ShareError?, [ShareGlucoseData]?) -> Void) {
+        
+        self.fetchLast(entries) { (error, result) -> () in
+            guard error == nil, let result = result else {
+                return callback(error ?? .fetchError, nil)
             }
 
             // parse data to conanical form
             var shareData = [ShareGlucoseData]()
-            for i in 0 ..< result!.count {
-                var trend = Int(result![i].trend)
-                if trend < 0 || trend > TrendTable.count - 1 {
+            for item in result {
+                var trend = Int(item.trend)
+                if trend < 0 || trend >= TrendTable.count {
                     trend = 0
                 }
-
+                
                 let newShareData = ShareGlucoseData(
-                    sgv: Int(result![i].glucose),
-                    date: result![i].timestamp.timeIntervalSince1970,
+                    sgv: Int(item.glucose),
+                    date: item.timestamp.timeIntervalSince1970,
                     direction: TrendTable[trend]
                 )
                 shareData.append(newShareData)