Created TreatmentEntryAccessor newTreatmentsIfRequired and TreatmentNSResponse asNewTreatmentEntry.
This commit is contained in:
parent
57d51c9fce
commit
59ed3b0caf
|
@ -151,6 +151,18 @@ class TreatmentEntryAccessor {
|
|||
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
|
||||
|
||||
/// returnvalue can be empty array
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
//
|
||||
|
||||
import Foundation
|
||||
import CoreData
|
||||
|
||||
/// Class that represents the Nightscout response for adding a single new treatment.
|
||||
/// 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
|
||||
}
|
||||
|
||||
// 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