CarbPresetIntentRequest.swift 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637
  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. collectionID: UUID().uuidString,
  12. createdAt: dateAdded,
  13. carbs: carbs,
  14. fat: Decimal(quantityFat),
  15. protein: Decimal(quantityProtein),
  16. note: "add with shortcuts",
  17. enteredBy: CarbsEntry.manual,
  18. isFPU: false, fpuID: nil
  19. )]
  20. )
  21. var resultDisplay: String
  22. resultDisplay = "\(carbs) g carbs"
  23. if quantityFat > 0.0 {
  24. resultDisplay = "\(resultDisplay) and \(quantityFat) g fats"
  25. }
  26. if quantityProtein > 0.0 {
  27. resultDisplay = "\(resultDisplay) and \(quantityProtein) g protein"
  28. }
  29. let dateName = dateAdded.formatted()
  30. resultDisplay = "\(resultDisplay) added at \(dateName)"
  31. return resultDisplay
  32. }
  33. }