| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- import Foundation
- extension TrioRemoteControl {
- func handleTempTargetCommand(_ pushMessage: PushMessage) async {
- guard let targetValue = pushMessage.target,
- let durationValue = pushMessage.duration
- else {
- await logError("Command rejected: temp target data is incomplete or invalid.", pushMessage: pushMessage)
- return
- }
- let durationInMinutes = Int(durationValue)
- let pushMessageDate = Date(timeIntervalSince1970: pushMessage.timestamp)
- let tempTarget = TempTarget(
- name: TempTarget.custom,
- createdAt: pushMessageDate,
- targetTop: Decimal(targetValue),
- targetBottom: Decimal(targetValue),
- duration: Decimal(durationInMinutes),
- enteredBy: TempTarget.manual,
- reason: TempTarget.custom
- )
- tempTargetsStorage.storeTempTargets([tempTarget])
- debug(
- .remoteControl,
- "Remote command processed successfully. \(pushMessage.humanReadableDescription())"
- )
- }
- func cancelTempTarget(_ pushMessage: PushMessage) async {
- debug(.remoteControl, "Cancelling temp target.")
- guard tempTargetsStorage.current() != nil else {
- await logError("Command rejected: no active temp target to cancel.")
- return
- }
- let cancelEntry = TempTarget.cancel(at: Date())
- tempTargetsStorage.storeTempTargets([cancelEntry])
- debug(
- .remoteControl,
- "Remote command processed successfully. \(pushMessage.humanReadableDescription())"
- )
- }
- }
|