diff options
| author | LV-426 <lv-426@taproot.org.il> | 2015-01-13 18:09:44 +0200 |
|---|---|---|
| committer | LV-426 <lv-426@taproot.org.il> | 2015-01-13 18:09:44 +0200 |
| commit | 1983d480c3f7d818926a38c3419aecc4b69a00fc (patch) | |
| tree | 595e475155fb4f54aaa43b1df6fd9af764def5e7 /src/server/rz_api_rest.py | |
| parent | 233d9de48df7e32701500177203b36c5b27c2a1e (diff) | |
wip: rz_req_handling.py
Diffstat (limited to 'src/server/rz_api_rest.py')
| -rw-r--r-- | src/server/rz_api_rest.py | 42 |
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 |
