added create_network(), delete_network(), create_subnet(), delete_subnet(), process_t...
[plcapi.git] / PLC / RestAPI.py
index 1e4f8ed..19e96cc 100644 (file)
@@ -16,6 +16,10 @@ get_response = """
 </body></html>
 """
 
+def prepare_response(result):
+    response = {'response': result}
+    return jsonify(response)
+
 @app.route('/')
 def api_root():
     return 'Welcome'
@@ -24,13 +28,43 @@ def api_root():
 def AuthCheck():
     if request.method == 'POST':
         args = [request.json.get('auth')]
-        return api.call(None, 'AuthCheck', *args)
+        result = api.call(request.remote_addr, 'AuthCheck', *args)
+        return prepare_response(result)
     return get_response
       
 @app.route('/roles', methods=['GET', 'POST'])
-def GetRoles():
+def roles():
     if request.method == 'POST':
-        logger.error(request.data) 
-        return jsonify(**request.json)
+        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/<role_id>', 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)
+