DataTableProvider.swift 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  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 deleteCarbsFromNightscout(withID id: String) {
  13. Task {
  14. await nightscoutManager.deleteCarbs(withID: id)
  15. }
  16. }
  17. func deleteInsulin(with treatmentObjectID: NSManagedObjectID) async {
  18. let taskContext = CoreDataStack.shared.newTaskContext()
  19. await taskContext.perform {
  20. do {
  21. guard let treatmentToDelete = try taskContext.existingObject(with: treatmentObjectID) as? PumpEventStored
  22. else {
  23. debug(.default, "Could not cast the object to PumpEventStored")
  24. return
  25. }
  26. // Delete Insulin from Nightscout
  27. if let id = treatmentToDelete.id {
  28. self.deleteInsulinFromNightscout(withID: id)
  29. }
  30. // TODO: - Rewrite healthkit implementation
  31. // let id = treatmentToDelete.id
  32. // self.healthkitManager.deleteInsulin(syncID: id)
  33. taskContext.delete(treatmentToDelete)
  34. try taskContext.save()
  35. debug(.default, "Successfully deleted the treatment object.")
  36. } catch {
  37. debug(.default, "Failed to delete the treatment object: \(error.localizedDescription)")
  38. }
  39. }
  40. }
  41. func deleteInsulinFromNightscout(withID id: String) {
  42. Task {
  43. await nightscoutManager.deleteInsulin(withID: id)
  44. }
  45. }
  46. func deleteManualGlucose(withID id: String) {
  47. Task {
  48. await nightscoutManager.deleteManualGlucose(withID: id)
  49. }
  50. }
  51. }
  52. }