from flask import Flask, url_for, request, Response, jsonify app = Flask(__name__) from PLC.API import PLCAPI from PLC.Config import Config from PLC.Logger import logger api = PLCAPI() get_response = """ PLCAPI Nova JSON REST Interface

PLCAPI Nova JSON REST Interface

Please use HTTP to access the PLCAPI.

""" def prepare_response(result): response = {'response': result} return jsonify(response) @app.route('/') def api_root(): return 'Welcome' @app.route('/auth', methods=['GET', 'POST']) def AuthCheck(): if request.method == 'POST': args = [request.json.get('auth')] result = api.call(request.remote_addr, 'AuthCheck', *args) return prepare_response(result) return get_response @app.route('/roles', methods=['GET', 'POST']) def roles(): if request.method == 'POST': args = [request.json.get('auth')] result = api.call(request.remote_addr, 'GetRoles', *args) return prepare_response(result) return get_response @app.route('/role', methods=['GET', 'POST', 'PUT', 'DELETE']) @app.route('/role/', methods=['GET', 'POST', 'PUT', 'DELETE']) def role(role_id=None): method='GetRoles' if request.method == 'POST': args = [request.json.get('auth')] role = request.json.get('role') if not role_id: method = 'AddRole' args.append(role) else: if not role: method = 'GetRoles' # GetRoles doesnt support filtering #args.append(role_id) else: method = 'GetRoles' elif request.method == 'PUT': # There is no UpdateRole method pass elif request.method == 'Delete': method = 'DeleteRole' args = [request.json.get('auth'), role_id] result = api.call(request.remote_addr, method, *args) return prepare_response(result)