| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- // LoopFollow
- // TrioNightscoutRemoteController.swift
- import Foundation
- import HealthKit
- class TrioNightscoutRemoteController {
- func cancelExistingTarget(completion: @escaping (Bool) -> Void) {
- Task {
- let tempTargetBody: [String: Any] = [
- "enteredBy": "LoopFollow",
- "eventType": "Temporary Target",
- "reason": "Manual",
- "duration": 0,
- "created_at": ISO8601DateFormatter().string(from: Date()),
- ]
- do {
- let response: [TreatmentCancelResponse] = try await NightscoutUtils.executePostRequest(eventType: .treatments, body: tempTargetBody)
- Observable.shared.tempTarget.value = nil
- NotificationCenter.default.post(name: NSNotification.Name("refresh"), object: nil)
- completion(true)
- } catch {
- completion(false)
- }
- }
- }
- func sendTempTarget(newTarget: HKQuantity, duration: HKQuantity, completion: @escaping (Bool) -> Void) {
- let tempTargetBody: [String: Any] = [
- "enteredBy": "LoopFollow",
- "eventType": "Temporary Target",
- "reason": "Manual",
- "targetTop": newTarget.doubleValue(for: .milligramsPerDeciliter),
- "targetBottom": newTarget.doubleValue(for: .milligramsPerDeciliter),
- "duration": Int(duration.doubleValue(for: .minute())),
- "created_at": ISO8601DateFormatter().string(from: Date()),
- ]
- Task {
- do {
- let response: [TreatmentResponse] = try await NightscoutUtils.executePostRequest(eventType: .treatments, body: tempTargetBody)
- Observable.shared.tempTarget.value = newTarget
- NotificationCenter.default.post(name: NSNotification.Name("refresh"), object: nil)
- completion(true)
- } catch {
- completion(false)
- }
- }
- }
- }
|