From 9462f236b4fa31a04f464e354d30fdcca015a744 Mon Sep 17 00:00:00 2001 From: Andrea Mistrali Date: Mon, 29 Jul 2024 16:38:23 +0200 Subject: [PATCH] Add get and toggle methods to routes --- hsapi_client/routes.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/hsapi_client/routes.py b/hsapi_client/routes.py index a248c69..7eb22bb 100644 --- a/hsapi_client/routes.py +++ b/hsapi_client/routes.py @@ -17,6 +17,13 @@ class Route(HSAPICall): response = self.call('get') return v1ListRoutesResponse(**response.json()) + def get(self, routeId: int) -> Optional[v1Route | None]: + routes = self.list() + route = [r for r in routes.routes if r.id == routeId] + if route: + return route[0] + return None + def delete(self, routeId: str) -> None: self.call('delete', call_path=routeId) @@ -25,3 +32,10 @@ class Route(HSAPICall): def disable(self, routeId: int) -> None: self.call('post', f'{routeId}/disable') + + def toggle(self, routeId: int) -> None: + route = self.get(routeId) + if route and route.enabled: + self.disable(routeId) + else: + self.enable(routeId)