Add versioned HTTP API routes
This commit is contained in:
@@ -1,16 +1,17 @@
|
||||
import json
|
||||
|
||||
|
||||
class HttpClient:
|
||||
def __init__(self, requests_module, base_url="http://192.168.4.1"):
|
||||
self.requests = requests_module
|
||||
self.base_url = base_url.rstrip("/")
|
||||
if not self.base_url.endswith("/api/v1"):
|
||||
self.base_url = f"{self.base_url}/api/v1"
|
||||
|
||||
def get_status(self):
|
||||
response = self.requests.get(f"{self.base_url}/status")
|
||||
return response.json()
|
||||
|
||||
def set_relay(self, relay, enabled):
|
||||
state = "on" if enabled else "off"
|
||||
response = self.requests.get(f"{self.base_url}/relay/{relay}/{state}")
|
||||
response = self.requests.post(
|
||||
f"{self.base_url}/relay/set",
|
||||
json={"id": relay, "state": enabled},
|
||||
)
|
||||
return response.json()
|
||||
|
||||
@@ -24,6 +24,8 @@ class AppState:
|
||||
}
|
||||
|
||||
self.relays = {
|
||||
"relay_1": False,
|
||||
"relay_2": False,
|
||||
"starlink": False,
|
||||
"fridge": False,
|
||||
}
|
||||
@@ -51,8 +53,8 @@ class AppState:
|
||||
self.network.update(message.get("network", {}))
|
||||
|
||||
def update_from_relay_response(self, message):
|
||||
relay = message.get("relay")
|
||||
enabled = message.get("enabled")
|
||||
relay = message.get("relay", message.get("id"))
|
||||
enabled = message.get("enabled", message.get("state"))
|
||||
|
||||
if relay in self.relays and enabled is not None:
|
||||
self.relays[relay] = bool(enabled)
|
||||
|
||||
Reference in New Issue
Block a user