DateRelativeBolusEntry.swift 946 B

12345678910111213141516171819202122232425262728
  1. //
  2. // DateRelativeBolusEntry.swift
  3. // LoopTestingKit
  4. //
  5. // Created by Michael Pangburn on 4/20/19.
  6. // Copyright © 2019 LoopKit Authors. All rights reserved.
  7. //
  8. import LoopKit
  9. import Foundation
  10. struct DateRelativeBolusEntry: DateRelativeQuantity, Codable {
  11. var unitsValue: Double
  12. var dateOffset: TimeInterval
  13. var deliveryDuration: TimeInterval
  14. func doseEntry(relativeTo referenceDate: Date) -> DoseEntry {
  15. let startDate = referenceDate.addingTimeInterval(dateOffset)
  16. let endDate = startDate.addingTimeInterval(deliveryDuration)
  17. return DoseEntry(type: .bolus, startDate: startDate, endDate: endDate, value: unitsValue, unit: .units)
  18. }
  19. func newPumpEvent(relativeTo referenceDate: Date) -> NewPumpEvent {
  20. let dose = doseEntry(relativeTo: referenceDate)
  21. return NewPumpEvent(date: dose.startDate, dose: dose, raw: .newPumpEventIdentifier(), title: "Bolus", type: .bolus)
  22. }
  23. }