From 3008d35eb298b4ddc0b85a3e0114e4bc0c87fe45 Mon Sep 17 00:00:00 2001 From: LV-426 Date: Sun, 28 Sep 2014 18:24:14 +0300 Subject: Early Rhizi API prototype: - load_node_by_id_attr() - response_wrap() --- src-py/rhizi_api.py | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 src-py/rhizi_api.py diff --git a/src-py/rhizi_api.py b/src-py/rhizi_api.py new file mode 100644 index 00000000..246768aa --- /dev/null +++ b/src-py/rhizi_api.py @@ -0,0 +1,43 @@ +""" +Rhizi web API +""" +import os +import db_controller as dbc +import json +from flask import jsonify + +from flask import Flask +from flask import request + +webapp = Flask(__name__) +webapp.debug = True + +# injected: DB controller +db_ctl = None + +def __response_wrap(data=None, error=None): + """ + wrap response data/errors as dict - this should always be used when returning + data to allow easy return of list objects, assist in error case distinction, etc. + """ + return dict(data=data, error=error) + +@webapp.route("/load/node-single", methods=['POST']) +def load_node_by_id_attr(): + """ + @return: a list containing a single node whose id attribute matches 'id' or + an empty list if the requested node is not found + @raise exception: on error + """ + node_id = request.form['id'] + op = dbc.DBO_load_node_set_by_id_attribute([node_id]) + try: + n = db_ctl.exec_op(op) + ret = __response_wrap(n) + return jsonify(ret) + except Exception as e: + return jsonify('unable to load node with id: {0}'.format(node_id)) + +@webapp.route("/add/node-single") +def add_node(n): + pass -- cgit v1.3.1