summaryrefslogtreecommitdiff
path: root/src/server/rz_api_rest.py
diff options
context:
space:
mode:
authorLV-426 <lv-426@taproot.org.il>2015-01-13 18:09:44 +0200
committerLV-426 <lv-426@taproot.org.il>2015-01-13 18:09:44 +0200
commit1983d480c3f7d818926a38c3419aecc4b69a00fc (patch)
tree595e475155fb4f54aaa43b1df6fd9af764def5e7 /src/server/rz_api_rest.py
parent233d9de48df7e32701500177203b36c5b27c2a1e (diff)
wip: rz_req_handling.py
Diffstat (limited to 'src/server/rz_api_rest.py')
-rw-r--r--src/server/rz_api_rest.py42
1 files changed, 8 insertions, 34 deletions
diff --git a/src/server/rz_api_rest.py b/src/server/rz_api_rest.py
index bad0cfa7..03a83f3a 100644
--- a/src/server/rz_api_rest.py
+++ b/src/server/rz_api_rest.py
@@ -23,39 +23,13 @@ from model.graph import Topo_Diff
from rz_api_common import sanitize_input__attr_diff
from rz_api_common import sanitize_input__topo_diff
from rz_api_common import validate_obj__attr_diff
+from rz_req_handling import common_resp_handle
log = logging.getLogger('rhizi')
db_ctl = None # injected: DB controller
-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)
-
-def __common_resp_handle(data=None, error=None):
- """
- provide common response handling
-
- @data must be json serializable
- @error will be serialized with str()
- """
- if error is None:
- error_str = ""
- else:
- error_str = str(error) # convert any Exception objects to serializable form
- ret_data = __response_wrap(data, error_str)
- resp = jsonify(ret_data) # this will create a Flask Response object
-
- resp.headers['Access-Control-Allow-Origin'] = '*'
-
- # more response processing
-
- return resp
-
def diff_commit__topo():
"""
REST API wrapper around diff_commit__topo():
@@ -72,16 +46,16 @@ def diff_commit__topo():
try:
topo_diff = sanitize_input(request)
except Exception as e:
- return __common_resp_handle(error='malformed input')
+ return common_resp_handle(error='malformed input')
try:
kernel = flask.current_app.kernel
_, commit_ret = kernel.diff_commit__topo(topo_diff)
- return __common_resp_handle(data=commit_ret)
+ return common_resp_handle(data=commit_ret)
except Exception as e:
log.error(e.message)
log.error(traceback.print_exc())
- return __common_resp_handle(error=e)
+ return common_resp_handle(error=e)
def diff_commit__attr():
"""
@@ -96,22 +70,22 @@ def diff_commit__attr():
def on_error(e):
# handle DB ERRORS, eg. name attr change error
- return __common_resp_handle(error='error occurred')
+ return common_resp_handle(error='error occurred')
try:
attr_diff = sanitize_input(request)
validate_obj__attr_diff(attr_diff)
except Exception as e:
- return __common_resp_handle(error='malformed input')
+ return common_resp_handle(error='malformed input')
try:
kernel = flask.current_app.kernel
_, commit_ret = kernel.diff_commit__attr(attr_diff)
- return __common_resp_handle(data=commit_ret)
+ return common_resp_handle(data=commit_ret)
except Exception as e:
log.error(e.message)
log.error(traceback.print_exc())
- return __common_resp_handle(error=e)
+ return common_resp_handle(error=e)
def diff_commit__vis():
pass