19542190c899f45ea32b794b54b147444a6ad4aa
[plcapi.git] / PLC / RestAPI.py
1 from flask import Flask, url_for, request, Response, jsonify
2 app = Flask(__name__)
3
4 from PLC.API import PLCAPI
5 from PLC.Config import Config
6 from PLC.Logger import logger
7
8 api = PLCAPI()
9
10 get_response = """
11 <html><head>
12 <title>PLCAPI Nova JSON REST Interface</title>
13 </head><body>
14 <h1>PLCAPI Nova JSON REST Interface</h1>
15 <p>Please use HTTP to access the PLCAPI. </p>
16 </body></html>
17 """
18
19 def prepare_response(result):
20     response = {'response': result}
21     return jsonify(response)
22
23 @app.route('/')
24 def api_root():
25     return 'Welcome'
26
27 @app.route('/auth', methods=['GET', 'POST'])
28 def AuthCheck():
29     if request.method == 'POST':
30         args = [request.json.get('auth')]
31         result = api.call(request.remote_addr, 'AuthCheck', *args)
32         return prepare_response(result)
33     return get_response
34       
35 @app.route('/roles', methods=['GET', 'POST'])
36 def GetRoles():
37     if request.method == 'POST':
38         args = [request.json.get('auth')]
39         result = api.call(request.remote_addr, 'GetRoles', *args)
40         return prepare_response(result)
41     return get_response 
42