add succesfull json messages and documentation

This commit is contained in:
john.sitarski 2023-06-15 14:58:31 +09:30
parent cb08de3688
commit 690ce165d7

View File

@ -23,7 +23,9 @@ def report():
--- ---
responses: responses:
200: 200:
description: JSON description: JSON with streams report.
400:
description: JSON with error message.
""" """
try: try:
r = requests.get("http://localhost:9997/v1/paths/list") r = requests.get("http://localhost:9997/v1/paths/list")
@ -35,8 +37,7 @@ def report():
return jsonify(j) return jsonify(j)
except Exception as e: except Exception as e:
error_message = {"error_message": e.message} return _error_message_json(e.message), 500
return jsonify(error_message), 500
@app.route('/radio/report') @app.route('/radio/report')
@ -63,25 +64,24 @@ def connect(radio):
required: true required: true
responses: responses:
200: 200:
description: Successfully connected to a radio. description: JSON with message successfully connected to a radio.
400: 400:
description: No radio device by that name is available. description: JSON with error message No radio device by that name is available.
500: 500:
description: Failed to connect to radio. description: JSON with error message failed to connect to radio.
""" """
if radio in radios: if radio in radios:
return "Radio device already connected", 400 return _error_message_json("Radio device already connected"), 400
devices = [dict(device) for device in soapy.Device.enumerate()] devices = [dict(device) for device in soapy.Device.enumerate()]
for device in devices: for device in devices:
if radio in device.values(): if radio in device.values():
try: try:
radios[radio] = Radio(radio, device) radios[radio] = Radio(radio, device)
return "", 200 return jsonify("message","successfully connected radio"), 200
except Exception as e: except Exception as e:
radios.pop(radio) radios.pop(radio)
error_message = {"error_message": e.message} return _error_message_json(e.message), 500
return jsonify(error_message), 500
return "Radio device not found", 400 return "Radio device not found", 400
@ -106,10 +106,9 @@ def disconnect(radio):
""" """
if radio in radios: if radio in radios:
radios.pop(radio) radios.pop(radio)
return "", 200 return jsonify("message","succesfully disconnected radio"), 200
else: else:
error_message = {"error_message": "Radio not connected"} return _error_message_json("Radio not connected"), 400
return jsonify(error_message), 400
@app.route('/radio/<radio>/configure/<frequency>') @app.route('/radio/<radio>/configure/<frequency>')
def configure(radio, frequency): def configure(radio, frequency):
@ -130,15 +129,14 @@ def configure(radio, frequency):
required: true required: true
responses: responses:
200: 200:
description: JSON description: JSON with radio configuration.
400: 400:
description: The specified radio is not connected. description: The specified radio is not connected.
""" """
if radio in radios: if radio in radios:
return jsonify(radios[radio].configure(frequency)) return jsonify(radios[radio].configure(frequency))
else: else:
error_message = {"error_message": "Radio not connected"} return _error_message_json("Radio not connected"), 400
return jsonify(error_message), 400
@app.route('/radio/<radio>/start') @app.route('/radio/<radio>/start')
def start_stream(radio): def start_stream(radio):
@ -152,13 +150,17 @@ def start_stream(radio):
in: path in: path
type: string type: string
required: true required: true
responses:
200:
description: JSON with message successful start of radio stream.
400:
description: JSON with error message.
""" """
try: try:
radios[radio].start_stream() radios[radio].start_stream()
return "", 200 return jsonify("message","successfully started radio stream"), 200
except Exception as e: except Exception as e:
error_message = {"error_message": e.message} return _error_message_json(e.message), 400
return jsonify(error_message), 400
@app.route('/radio/<radio>/end') @app.route('/radio/<radio>/end')
def end_stream(radio): def end_stream(radio):
@ -170,13 +172,18 @@ def end_stream(radio):
in: path in: path
type: string type: string
required: true required: true
responses:
200:
description: JSON with message successful termination of radio stream.
400:
description: JSON with error message.
""" """
try: try:
radios[radio].end_stream() radios[radio].end_stream()
return "", 200 return jsonify("message","successfully ended radio stream"), 200
except Exception as e: except Exception as e:
error_message = {"error_message": e.message} error_message = {"error_message": e.message}
return jsonify(error_message), 400 return _error_message_json(e.message), 400
@app.route('/radio/<radio>/info') @app.route('/radio/<radio>/info')
def radio_info(radio): def radio_info(radio):
@ -190,15 +197,14 @@ def radio_info(radio):
required: true required: true
responses: responses:
200: 200:
description: JSON description: JSON with radio information.
400: 400:
description: The specified radio is not connected. description: JSON with error message.
""" """
try: try:
return jsonify(radios[radio].get_info()) return jsonify(radios[radio].get_info())
except Exception as e: except Exception as e:
error_message = {"error_message": e.message} return _error_message_json(e.message), 400
return error_message, 400
tubes = {} tubes = {}
@ -221,16 +227,20 @@ def start_tuuube_stream(id):
in: path in: path
type: string type: string
required: true required: true
responses:
200:
description: JSON with message successful start of youtube stream.
400:
description: JSON with error message.
""" """
if id not in tubes: if id not in tubes:
tubes[id] = Tuuube(id) tubes[id] = Tuuube(id)
try: try:
tubes[id].start_stream() tubes[id].start_stream()
return "", 200 return jsonify("message","successfully started youtube stream"), 200
except Exception as e: except Exception as e:
error_message = {"error_message": e.message} return _error_message_json(e.message), 400
return jsonify(error_message), 400
@app.route('/tuuube/<id>/end') @app.route('/tuuube/<id>/end')
def end_tuuube_stream(id): def end_tuuube_stream(id):
@ -242,16 +252,29 @@ def end_tuuube_stream(id):
in: path in: path
type: string type: string
required: true required: true
responses:
200:
description: JSON with message successful termination of youtube stream.
400:
description: JSON with error message.
""" """
try: try:
tubes[id].end_stream() tubes[id].end_stream()
return "", 200 return jsonify("message","succesfully ended youtube stream"), 200
except Exception as e: except Exception as e:
error_message = {"error_message": e.message} return _error_message_json(e.message), 400
return jsonify(error_message), 400
"""
Helper function to return a JSON error message
parameters: error_message - the error message to return
returns: a JSON object with the error message
"""
def _error_message_json(error_message:str):
error_message = {"error_message": error_message}
return jsonify(error_message)
if __name__ == '__main__': if __name__ == '__main__':
import subprocess import subprocess