diff --git a/src/gunpla/base_gundam.py b/src/gunpla/base_gundam.py index bd538c0..a675aeb 100644 --- a/src/gunpla/base_gundam.py +++ b/src/gunpla/base_gundam.py @@ -24,17 +24,6 @@ def get_config_file(self) -> str: """ raise Exception("Not implemented") - def add_routes(self, webserver: server) -> None: - """ - Given a server adds all endpoints for Leds and lightshows - """ - webserver.add_route("/led//on", self.led_on, methods=["GET"]) - webserver.add_route("/led//off", self.led_off, methods=["GET"]) - webserver.add_route("/all/on", self.all_on, methods=["GET"]) - webserver.add_route("/all/off", self.all_off, methods=["GET"]) - for lightshow in self.config['lightshow']: - webserver.add_route(f"/lightshow/{lightshow['path']}", getattr(self, lightshow['method']), methods=["GET"]) - def led_on(self, request: Request, led_name: str) -> Response: """ Turns a Single LED on by name @@ -69,6 +58,7 @@ def all_on(self, request: Request) -> Response: return Response(f"All on\n {leds} ", 200) except Exception as ex: return Response(str(ex), 500) + def _all_leds_on(self) -> str: """ Turns all LEDs on diff --git a/src/webserver.py b/src/webserver.py index be92840..097093d 100644 --- a/src/webserver.py +++ b/src/webserver.py @@ -59,11 +59,25 @@ def main(self): logging.error("Server failed to connect") sys.exit("Cannot start server") + server.set_callback(self.catchall) + + self._add_routes() + + server.run() + + def _add_routes(self): + """ + Given a server adds all endpoints for Leds and lightshows + """ server.add_route("/", self.index, methods=["GET"]) server.add_route("/index", self.index, methods=["GET"]) server.add_route("/canary", self.canary, methods=["GET"]) server.set_callback(self.catchall) - self.gundam.add_routes(server) - - server.run() + server.add_route("/led//on", self.gundam.led_on, methods=["GET"]) + server.add_route("/led//off", self.gundam.led_off, methods=["GET"]) + server.add_route("/all/on", self.gundam.all_on, methods=["GET"]) + server.add_route("/all/off", self.gundam.all_off, methods=["GET"]) + for lightshow in self.gundam.config['lightshow']: + server.add_route(f"/lightshow/{lightshow['path']}", getattr(self, lightshow['method']), + methods=["GET"])