Selaa lähdekoodia

Extend pumpEvent by pumpResume, add upload flag

Deniz Cengiz 1 vuosi sitten
vanhempi
commit
7428ebf642
1 muutettua tiedostoa jossa 25 lisäystä ja 5 poistoa
  1. 25 5
      Model/Helper/PumpEvent+helper.swift

+ 25 - 5
Model/Helper/PumpEvent+helper.swift

@@ -101,6 +101,7 @@ enum PumpEventDTO: Encodable, Decodable, ImportableDTO {
     case tempBasal(TempBasalDTO)
     case tempBasalDuration(TempBasalDurationDTO)
     case pumpSuspend(PumpSuspendDTO)
+    case pumpResume(PumpResumeDTO)
     case unknown(String) // Catch-all for unknown types
 
     func encode(to encoder: Encoder) throws {
@@ -113,6 +114,8 @@ enum PumpEventDTO: Encodable, Decodable, ImportableDTO {
             try tempBasalDuration.encode(to: encoder)
         case let .pumpSuspend(pumpSuspend):
             try pumpSuspend.encode(to: encoder)
+        case let .pumpResume(pumpResume):
+            try pumpResume.encode(to: encoder)
         case let .unknown(type):
             debugPrint("⚠️ Skipping unknown type during encoding: \(type)")
         }
@@ -147,6 +150,9 @@ enum PumpEventDTO: Encodable, Decodable, ImportableDTO {
         case "PumpSuspend":
             let pumpSuspendDTO = try singleValueContainer.decode(PumpSuspendDTO.self)
             self = .pumpSuspend(pumpSuspendDTO)
+        case "PumpResume":
+            let pumpResumeDTO = try singleValueContainer.decode(PumpResumeDTO.self)
+            self = .pumpResume(pumpResumeDTO)
         default:
             debugPrint("⚠️ Unknown _type value: \(type)")
             self = .unknown(type)
@@ -157,9 +163,13 @@ enum PumpEventDTO: Encodable, Decodable, ImportableDTO {
     typealias ManagedObject = PumpEventStored
 
     func store(in context: NSManagedObjectContext) -> PumpEventStored {
+        let pumpEvent = PumpEventStored(context: context)
+        pumpEvent.isUploadedToNS = true
+        pumpEvent.isUploadedToHealth = true
+        pumpEvent.isUploadedToTidepool = true
+        
         switch self {
         case let .bolus(bolusDTO):
-            let pumpEvent = PumpEventStored(context: context)
             pumpEvent.id = bolusDTO.id
             pumpEvent.timestamp = ISO8601DateFormatter().date(from: bolusDTO.timestamp)
             pumpEvent.type = bolusDTO._type
@@ -173,7 +183,6 @@ enum PumpEventDTO: Encodable, Decodable, ImportableDTO {
             return pumpEvent
 
         case let .tempBasal(tempBasalDTO):
-            let pumpEvent = PumpEventStored(context: context)
             pumpEvent.id = tempBasalDTO.id
             pumpEvent.timestamp = ISO8601DateFormatter().date(from: tempBasalDTO.timestamp)
             pumpEvent.type = tempBasalDTO._type
@@ -186,7 +195,6 @@ enum PumpEventDTO: Encodable, Decodable, ImportableDTO {
             return pumpEvent
 
         case let .tempBasalDuration(tempBasalDurationDTO):
-            let pumpEvent = PumpEventStored(context: context)
             pumpEvent.id = tempBasalDurationDTO.id
             pumpEvent.timestamp = ISO8601DateFormatter().date(from: tempBasalDurationDTO.timestamp)
             pumpEvent.type = tempBasalDurationDTO._type
@@ -198,12 +206,17 @@ enum PumpEventDTO: Encodable, Decodable, ImportableDTO {
             return pumpEvent
 
         case let .pumpSuspend(pumpSuspendDTO):
-            let pumpEvent = PumpEventStored(context: context)
             pumpEvent.id = pumpSuspendDTO.id
             pumpEvent.timestamp = ISO8601DateFormatter().date(from: pumpSuspendDTO.timestamp)
             pumpEvent.type = pumpSuspendDTO._type
 
-            // You can map additional pump suspend-specific fields here
+            return pumpEvent
+            
+        case let .pumpResume(pumpResumeDTO):
+            pumpEvent.id = pumpResumeDTO.id
+            pumpEvent.timestamp = ISO8601DateFormatter().date(from: pumpResumeDTO.timestamp)
+            pumpEvent.type = pumpResumeDTO._type
+
             return pumpEvent
 
         case .unknown:
@@ -264,6 +277,13 @@ struct PumpSuspendDTO: Codable {
     var _type: String = "PumpSuspend"
 }
 
+struct PumpResumeDTO: Codable {
+    var id: String
+    var timestamp: String
+    var reason: String?
+    var _type: String = "PumpResume"
+}
+
 // Extension with helper functions to map pump events to DTO objects via uniform masking enum
 extension PumpEventStored {
     static let dateFormatter: ISO8601DateFormatter = {