CarbPresetIntentRequest.swift 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. import CoreData
  2. import Foundation
  3. @available(iOS 16.0,*) final class CarbPresetIntentRequest: BaseIntentsRequest {
  4. func addCarbs(_ quantityCarbs: Double, _ quantityFat: Double, _ quantityProtein: Double, _ dateAdded: Date) throws -> String {
  5. guard quantityCarbs >= 0.0 || quantityFat >= 0.0 || quantityProtein >= 0.0 else {
  6. return "no adding carbs in iAPS"
  7. }
  8. let carbs = min(Decimal(quantityCarbs), settingsManager.settings.maxCarbs)
  9. carbsStorage.storeCarbs(
  10. [CarbsEntry(
  11. id: UUID().uuidString,
  12. createdAt: dateAdded,
  13. actualDate: dateAdded,
  14. carbs: carbs,
  15. fat: Decimal(quantityFat),
  16. protein: Decimal(quantityProtein),
  17. note: "add with shortcuts",
  18. enteredBy: CarbsEntry.manual,
  19. isFPU: false, fpuID: nil
  20. )]
  21. )
  22. var resultDisplay: String
  23. resultDisplay = "\(carbs) g carbs"
  24. if quantityFat > 0.0 {
  25. resultDisplay = "\(resultDisplay) and \(quantityFat) g fats"
  26. }
  27. if quantityProtein > 0.0 {
  28. resultDisplay = "\(resultDisplay) and \(quantityProtein) g protein"
  29. }
  30. let dateName = dateAdded.formatted()
  31. resultDisplay = "\(resultDisplay) added at \(dateName)"
  32. return resultDisplay
  33. }
  34. }