From fbc00d7932a717a227389040a96443e61b597d7c Mon Sep 17 00:00:00 2001 From: xengineering Date: Sun, 13 Sep 2020 20:50:54 +0200 Subject: Implement API --- main.py | 37 +++++++++++++++++++++++++++++++++---- 1 file changed, 33 insertions(+), 4 deletions(-) (limited to 'main.py') diff --git a/main.py b/main.py index 88b4032..aa60a95 100755 --- a/main.py +++ b/main.py @@ -21,28 +21,57 @@ """ +import os from waitress import serve -from flask import Flask, render_template, current_app +from flask import Flask, render_template, current_app, request app = Flask(__name__) -@app.route('/') +@app.route('/', methods=['GET']) def index(): return render_template('index.html') -@app.route('/static/css/') +@app.route('/static/css/', methods=['GET']) def css(css_file): return current_app.send_static_file("css/{}".format(css_file)) -@app.route('/favicon.ico') +@app.route('/static/js/', methods=['GET']) +def js(js_file): + return current_app.send_static_file("js/{}".format(js_file)) + + +@app.route('/favicon.ico', methods=['GET']) def favicon(): return current_app.send_static_file("img/favicon.ico") +@app.route('/api', methods=['POST']) +def api(): + data = request.json + + print("Data: {}".format(data)) + + try: + command = data["cmd"] + except: + return "Please provide a valid 'cmd' entry in the json dictionary!" + + if command == "poweroff": + retval = {"return_value":"ok","request":data} + os.system("sudo poweroff") + elif command == "reboot": + retval = {"return_value":"ok","request":data} + os.system("sudo reboot") + else: + retval = {"return_value":"unknown command","request":data} + + return retval + + if __name__ == '__main__': serve(app, listen='*:8080') # production server / bind to port #serve(app, unix_socket='/run/web-template/unix.sock') # production server / unix domain socket -- cgit v1.2.3-70-g09d2