diff --git a/microservice.py b/microservice.py index 7d130a1..e4fd256 100755 --- a/microservice.py +++ b/microservice.py @@ -1,5 +1,6 @@ #! /usr/bin/env python3 +import routes import os import sys import requests @@ -18,7 +19,7 @@ swag = Swagger(app) radios = {} -@app.route("/GetReport") +@app.route(routes.endpoint_routes["b"]) def report(): """Get streams report from the RTSP relay. --- @@ -40,7 +41,7 @@ def report(): return _error_message_json(e.message), 500 -@app.route("/radio/report") +@app.route(routes.endpoint_routes["a"]) def radio_report(): """List radio devices available to the system. --- @@ -86,7 +87,7 @@ def connect(radio): return "Radio device not found", 400 -# TODO: reset might use this +@app.route(routes.endpoint_routes["f"]) def disconnect(radio): """Disconnect from a radio device. --- @@ -112,7 +113,7 @@ def disconnect(radio): # TODO: add post parameters... -@app.route("ALEModem/Configure") +@app.route(routes.endpoint_routes["c"]) def configure(): """Tune the radio to a frequency. You must connect to the radio before attempting to configure it. @@ -141,7 +142,7 @@ def configure(): return _error_message_json("Radio not connected"), 400 -@app.route("ALEModem/StartCall") +@app.route(routes.endpoint_routes["d"]) def start_stream(radio): """Start the radio stream. Once the stream has been started, connect to the stream at: @@ -159,14 +160,17 @@ def start_stream(radio): 400: description: JSON with error message. """ - try: - radios[radio].start_stream() - return jsonify("message", "successfully started radio stream"), 200 - except Exception as e: - return _error_message_json(e.message), 400 + if id is not None: + _start_tuuube_stream(id) + else: + try: + radios[radio].start_stream() + return jsonify("message", "successfully started radio stream"), 200 + except Exception as e: + return _error_message_json(e.message), 400 -@app.route("ALEModem/EndCall") +@app.route(routes.endpoint_routes["e"]) def end_stream(radio): """Terminate the radio stream. --- @@ -182,14 +186,17 @@ def end_stream(radio): 400: description: JSON with error message. """ - try: - radios[radio].end_stream() - return jsonify("message", "successfully ended radio stream"), 200 - except Exception as e: - return _error_message_json(e.message), 400 + if id is not None: + _end_tuuube_stream(id) + else: + try: + radios[radio].end_stream() + return jsonify("message", "successfully ended radio stream"), 200 + except Exception as e: + return _error_message_json(e.message), 400 -@app.route("/info") +@app.route(routes.endpoint_routes["g"]) def radio_info(radio): """Get information about a radio. --- @@ -214,8 +221,7 @@ def radio_info(radio): tubes = {} -@app.route("/tuuube//start") -def start_tuuube_stream(id): +def _start_tuuube_stream(id): """Start streaming from a youtube source. Once the stream has been started, connect to the stream at: rtsp://[host]:8554/tuuube/[id] @@ -248,8 +254,7 @@ def start_tuuube_stream(id): return _error_message_json(e.message), 400 -@app.route("/tuuube//end") -def end_tuuube_stream(id): +def _end_tuuube_stream(id): """Terminate the youtube stream. --- parameters: diff --git a/routes.py b/routes.py new file mode 100644 index 0000000..1e62f7a --- /dev/null +++ b/routes.py @@ -0,0 +1,10 @@ +endpoint_routes = { + "a": "", + "b": "", + "c": "", + "d": "", + "e": "", + "f":"", + "g":"" +} + \ No newline at end of file