polscm32 1 year ago
parent
commit
379c960cd7
1 changed files with 31 additions and 16 deletions
  1. 31 16
      FreeAPS/Sources/APS/OpenAPS/OpenAPS.swift

+ 31 - 16
FreeAPS/Sources/APS/OpenAPS/OpenAPS.swift

@@ -151,25 +151,40 @@ final class OpenAPS {
             ascending: false
         )
 
-        if let additionalCarbs = additionalCarbs {
-            let newCarbEntry = createCarbEntry(amount: additionalCarbs)
-            results.append(newCarbEntry)
-        }
+        let json = await context.perform {
+            var jsonArray = self.jsonConverter.convertToJSON(results)
+
+            if let additionalCarbs = additionalCarbs {
+                let additionalEntry = [
+                    "carbs": Double(additionalCarbs),
+                    "actualDate": ISO8601DateFormatter().string(from: Date()),
+                    "id": UUID().uuidString,
+                    "note": NSNull(),
+                    "protein": 0,
+                    "created_at": ISO8601DateFormatter().string(from: Date()),
+                    "isFPU": false,
+                    "fat": 0,
+                    "enteredBy": "Open-iAPS"
+                ] as [String: Any]
+
+                // Assuming jsonArray is a String, convert it to a list of dictionaries first
+                if var jsonData = jsonArray.data(using: .utf8) {
+                    var jsonList = try? JSONSerialization.jsonObject(with: jsonData, options: []) as? [[String: Any]]
+                    jsonList?.append(additionalEntry)
+
+                    // Convert back to JSON string
+                    if let updatedJsonData = try? JSONSerialization
+                        .data(withJSONObject: jsonList ?? [], options: .prettyPrinted)
+                    {
+                        jsonArray = String(data: updatedJsonData, encoding: .utf8) ?? jsonArray
+                    }
+                }
+            }
 
-        return await context.perform {
-            return self.jsonConverter.convertToJSON(results)
+            return jsonArray
         }
-    }
 
-    private func createCarbEntry(amount: Decimal) -> CarbEntryStored {
-        let newCarbEntry = CarbEntryStored(context: context)
-        newCarbEntry.date = Date()
-        newCarbEntry.carbs = Double(amount)
-        newCarbEntry.fat = 0
-        newCarbEntry.isFPU = false
-        newCarbEntry.protein = 0
-        newCarbEntry.id = UUID()
-        return newCarbEntry
+        return json
     }
 
     private func fetchPumpHistoryObjectIDs() async -> [NSManagedObjectID]? {