Created TreatmentEntryAccessor newTreatmentsIfRequired and TreatmentNSResponse asNewTreatmentEntry.
This commit is contained in:
parent
57d51c9fce
commit
59ed3b0caf
|
@ -151,6 +151,18 @@ class TreatmentEntryAccessor {
|
||||||
return treatment
|
return treatment
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public func newTreatmentsIfRequired(responses: [TreatmentNSResponse]) -> [TreatmentEntry] {
|
||||||
|
var newTreatments: [TreatmentEntry] = []
|
||||||
|
|
||||||
|
for response in responses {
|
||||||
|
if !self.existsTreatmentWithId(response.id), let treatment = response.asNewTreatmentEntry(nsManagedObjectContext: coreDataManager.mainManagedObjectContext) {
|
||||||
|
newTreatments.append(treatment)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return newTreatments
|
||||||
|
}
|
||||||
|
|
||||||
// MARK: - private helper functions
|
// MARK: - private helper functions
|
||||||
|
|
||||||
/// returnvalue can be empty array
|
/// returnvalue can be empty array
|
||||||
|
|
|
@ -7,6 +7,7 @@
|
||||||
//
|
//
|
||||||
|
|
||||||
import Foundation
|
import Foundation
|
||||||
|
import CoreData
|
||||||
|
|
||||||
/// Class that represents the Nightscout response for adding a single new treatment.
|
/// Class that represents the Nightscout response for adding a single new treatment.
|
||||||
/// NS API docs states:
|
/// NS API docs states:
|
||||||
|
@ -71,4 +72,17 @@ public struct TreatmentNSResponse {
|
||||||
return entry.date.ISOStringFromDate() == self.createdAt && entry.treatmentType == self.eventType && entry.value == self.value
|
return entry.date.ISOStringFromDate() == self.createdAt && entry.treatmentType == self.eventType && entry.value == self.value
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Converts self (TreatmentNSResponse) to TreatmentEntry.
|
||||||
|
// Be extra carefull when creating new TreatmentEntry, will impact core data.
|
||||||
|
public func asNewTreatmentEntry(nsManagedObjectContext: NSManagedObjectContext) -> TreatmentEntry? {
|
||||||
|
guard let date = Date.fromISOString(createdAt) else {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
var treatment = TreatmentEntry(date: date, value: value, treatmentType: eventType, nsManagedObjectContext: nsManagedObjectContext)
|
||||||
|
// Since this entry originated at nightscout, set uploaded as true.
|
||||||
|
treatment.uploaded = true
|
||||||
|
return treatment
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue