From f689feb8b60bb3906be34c31cf487da1a7f8d13f Mon Sep 17 00:00:00 2001 From: f4exb Date: Wed, 19 Dec 2018 14:42:34 +0100 Subject: [PATCH] Reverse API: renamed server example and added channel settings handling --- swagger/sdrangel/examples/reverseapi.py | 57 +++++++++++++++++++++++++ swagger/sdrangel/examples/server.py | 33 -------------- 2 files changed, 57 insertions(+), 33 deletions(-) create mode 100644 swagger/sdrangel/examples/reverseapi.py delete mode 100644 swagger/sdrangel/examples/server.py diff --git a/swagger/sdrangel/examples/reverseapi.py b/swagger/sdrangel/examples/reverseapi.py new file mode 100644 index 000000000..6c61affee --- /dev/null +++ b/swagger/sdrangel/examples/reverseapi.py @@ -0,0 +1,57 @@ +''' Test reverse API +Run with: +export FLASK_APP=reverseapi.py +export FLASK_ENV=development # for debug mode and auto reload +flask run +''' +from flask import Flask +from flask import request, jsonify +app = Flask(__name__) + + +@app.route('/sdrangel') +def hello_sdrangel(): + return 'Hello, SDRangel!' + + +@app.route('/sdrangel/deviceset//device/run', methods=['GET', 'POST', 'DELETE']) +def device_run(deviceset_index): + ''' Reply with the expected reply of a working device ''' + if request.method == 'POST': + print("Start device %d" % deviceset_index) + reply = { "state": "idle" } + return jsonify(reply) + elif request.method == 'DELETE': + print("Stop device %d" % deviceset_index) + reply = { "state": "running" } + return jsonify(reply) + elif request.method == 'GET': + return "RUN device %d" % deviceset_index + + +@app.route('/sdrangel/deviceset//device/settings', methods=['GET', 'PATCH', 'PUT']) +def device_settings(deviceset_index): + ''' Reply with a copy of the device setting structure received ''' + content = request.get_json(silent=True) + if request.method == 'PATCH': + print("Partial update of device %d" % deviceset_index) + return jsonify(content) + if request.method == 'PUT': + print("Full update of device %d" % deviceset_index) + return jsonify(content) + if request.method == 'GET': + return 'GET settings for device %d' % deviceset_index + + +@app.route('/sdrangel/deviceset//channel//settings', methods=['GET', 'PATCH', 'PUT']) +def channel_settings(deviceset_index, channel_index): + ''' Reply with a copy of the channel setting structure received ''' + content = request.get_json(silent=True) + if request.method == 'PATCH': + print("Partial update of device %d channel %d" % (deviceset_index, channel_index)) + return jsonify(content) + if request.method == 'PUT': + print("Full update of device %d channel %d" % (deviceset_index, channel_index)) + return jsonify(content) + if request.method == 'GET': + return 'GET settings for device %d and channel %d' % (deviceset_index, channel_index) diff --git a/swagger/sdrangel/examples/server.py b/swagger/sdrangel/examples/server.py deleted file mode 100644 index 1d44a3852..000000000 --- a/swagger/sdrangel/examples/server.py +++ /dev/null @@ -1,33 +0,0 @@ -from flask import Flask -from flask import request, jsonify -app = Flask(__name__) - - -@app.route('/sdrangel') -def hello_sdrangel(): - return 'Hello, SDRangel!' - - -@app.route('/sdrangel/deviceset//device/run', methods=['GET', 'POST', 'DELETE']) -def device_run(deviceset_index): - if request.method == 'POST': - print("Start device %d" % deviceset_index) - reply = { "state": "idle" } - return jsonify(reply) - elif request.method == 'DELETE': - print("Stop device %d" % deviceset_index) - reply = { "state": "running" } - return jsonify(reply) - elif request.method == 'GET': - return "RUN device %d" % deviceset_index - - -@app.route('/sdrangel/deviceset//device/settings', methods=['GET', 'PATCH', 'PUT']) -def device_settings(deviceset_index): - content = request.get_json(silent=True) - if request.method == 'PATCH': - return jsonify(content) - if request.method == 'PUT': - return jsonify(content) - if request.method == 'GET': - return 'GET settings'