Cleanup code

This commit is contained in:
2025-04-23 23:51:18 +02:00
parent d6af1a7438
commit d3143915ea
6 changed files with 72 additions and 106 deletions
+9 -36
View File
@@ -9,7 +9,6 @@ import SwiftUI
import WatchConnectivity
enum WCMeteriosMessageTypes: String {
case ConnectionInfo
case DrinkList
case BookDrink
}
@@ -26,7 +25,6 @@ class WCManager: NSObject, WCSessionDelegate {
if (WCSession.isSupported()) {
session.delegate = self
session.activate()
log("Activated session")
}
}
@@ -42,13 +40,8 @@ class WCManager: NSObject, WCSessionDelegate {
func session(_ session: WCSession, didReceiveMessage message: [String : Any], replyHandler: @escaping ([String : Any]) -> Void) {
#if os(iOS)
// Check for the different possible message types
if message.contains(where: { $0.key == "request" && $0.value as! String == WCMeteriosMessageTypes.ConnectionInfo.rawValue }) {
// Request for ConnectionInfo
replyHandler([
"userID": meteUserID,
"hostAddr": meteHostAddr
])
} else if message.contains(where: { $0.key == "request" && $0.value as! String == WCMeteriosMessageTypes.DrinkList.rawValue }) {
switch message["request"] as! String {
case WCMeteriosMessageTypes.DrinkList.rawValue:
// Request for a list of available drinks
Task {
let drinks = try await BackendConnector().GetDrinks(baseAddr: meteHostAddr)
@@ -65,7 +58,7 @@ class WCManager: NSObject, WCSessionDelegate {
"availableDrinks": availableDrinkArray
])
}
} else if message.contains(where: { $0.key == "request" && $0.value as! String == WCMeteriosMessageTypes.BookDrink.rawValue }) {
case WCMeteriosMessageTypes.BookDrink.rawValue:
// Book the given drink at the backend
Task {
do {
@@ -83,23 +76,15 @@ class WCManager: NSObject, WCSessionDelegate {
])
}
}
} else {
log("Error: received unknown request. \(message)")
default:
// Malformed message from watch
replyHandler([
"error": "request contains no request",
])
}
#endif // os(iOS)
}
// requestConnectionInfo requests User ID and Host address from the paired device
func requestConnectionInfo(replyHandler: @escaping (Int, String) -> Void, errorHandler: @escaping ((any Error)?) -> Void) {
session.sendMessage([
"request": WCMeteriosMessageTypes.ConnectionInfo.rawValue
], replyHandler: { reply in
replyHandler(reply["userID"] as! Int, reply["hostAddr"] as! String)
}, errorHandler: { error in
errorHandler(error)
})
}
// requestDrinksList requests the list of drinks available at the backend from the paired device
func requestDrinksList(replyHandler: @escaping (Array<Drink>, Array<Drink>) -> Void, errorHandler: @escaping ((any Error)?) -> Void) {
session.sendMessage([
@@ -125,21 +110,9 @@ class WCManager: NSObject, WCSessionDelegate {
"request": WCMeteriosMessageTypes.BookDrink.rawValue,
"drinkID": drinkID,
], replyHandler: { reply in
let salut = reply["salut"] as! String
replyHandler(salut)
replyHandler(reply["salut"] as! String)
}, errorHandler: { error in
errorHandler(error)
})
}
private func log(_ line: String) {
#if os(iOS)
let prefix = "[WCM@iOS]"
#elseif os(watchOS)
let prefix = "[WCM@wOS]"
#else
let prefix = "[WCM@?OS]"
#endif // os(...)
print("\(prefix) \(line)")
}
}