DataTableProvider.swift 2.3 KB

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