DataTableProvider.swift 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. import CoreData
  2. import Foundation
  3. extension DataTable {
  4. final class Provider: BaseProvider, DataTableProvider {
  5. @Injected() var nightscoutManager: NightscoutManager!
  6. @Injected() var healthkitManager: HealthKitManager!
  7. func pumpSettings() -> PumpSettings {
  8. storage.retrieve(OpenAPS.Settings.settings, as: PumpSettings.self)
  9. ?? PumpSettings(from: OpenAPS.defaults(for: OpenAPS.Settings.settings))
  10. ?? PumpSettings(insulinActionCurve: 6, maxBolus: 10, maxBasal: 2)
  11. }
  12. func deleteCarbs(_: CarbEntryStored) {
  13. // TODO: fix this and refactor nightscoutManager.deleteCarbs()
  14. // nightscoutManager.deleteCarbs(treatment, complexMeal: false)
  15. }
  16. func deleteInsulin(with treatmentObjectID: NSManagedObjectID) {
  17. let taskContext = CoreDataStack.shared.newTaskContext()
  18. taskContext.perform {
  19. do {
  20. guard let treatmentToDelete = try taskContext.existingObject(with: treatmentObjectID) as? PumpEventStored
  21. else {
  22. debug(.default, "Could not cast the object to PumpEventStored")
  23. return
  24. }
  25. self.nightscoutManager.deleteInsulin(at: treatmentToDelete.timestamp ?? Date())
  26. let id = treatmentToDelete.id
  27. self.healthkitManager.deleteInsulin(syncID: id)
  28. taskContext.delete(treatmentToDelete)
  29. try taskContext.save()
  30. debug(.default, "Successfully deleted the treatment object.")
  31. } catch {
  32. debug(.default, "Failed to delete the treatment object: \(error.localizedDescription)")
  33. }
  34. }
  35. }
  36. func deleteManualGlucose(date: Date?) {
  37. nightscoutManager.deleteManualGlucose(at: date ?? .distantPast)
  38. }
  39. }
  40. }