diff options
| author | LV-426 <lv-426@taproot.org.il> | 2015-05-04 18:30:11 +0300 |
|---|---|---|
| committer | LV-426 <lv-426@taproot.org.il> | 2015-05-05 19:28:08 +0300 |
| commit | 1664140ae7cbf1ee4140317fb7b23b28e42aacdd (patch) | |
| tree | ec0fadef5cd3c4273c4dad9be43edaa4a9bd8861 /src | |
| parent | a49706a925758817fc38f103661ef977f429105d (diff) | |
load_node_set_by_id_attr(): converting to use kernel
Diffstat (limited to 'src')
| -rw-r--r-- | src/server/rz_api_rest.py | 39 | ||||
| -rw-r--r-- | src/server/rz_kernel.py | 4 |
2 files changed, 24 insertions, 19 deletions
diff --git a/src/server/rz_api_rest.py b/src/server/rz_api_rest.py index 06cd284d..38748ea5 100644 --- a/src/server/rz_api_rest.py +++ b/src/server/rz_api_rest.py @@ -4,28 +4,27 @@ Rhizi REST web API: - make use of rz_api_common for common API logic """ +from flask import current_app from flask import request from flask import session -from flask import current_app - import flask import logging +from db_op import DBO_match_node_set_by_id_attribute, \ + DBO_load_link_set, DBO_match_node_id_set, DBO_diff_commit__topo from model.graph import Attr_Diff from model.graph import Topo_Diff +from model.model import Link +from rz_api import rz_mainpage from rz_api_common import sanitize_input__attr_diff, \ __sanitize_input, sanitize_input__rzdoc_name from rz_api_common import sanitize_input__topo_diff from rz_api_common import validate_obj__attr_diff +from rz_kernel import RZDoc_Exception__already_exists from rz_req_handling import common_resp_handle__success, make_response__json, \ HTTP_STATUS__204_NO_CONTENT, HTTP_STATUS__201_CREATED, \ common_resp_handle__client_error, \ common_rest_req_exception_handler, common_resp_handle__server_error -from db_op import DBO_match_node_set_by_id_attribute, \ - DBO_load_link_set, DBO_match_node_id_set, DBO_diff_commit__topo -from model.model import Link -from rz_api import rz_mainpage -from rz_kernel import RZDoc_Exception__already_exists log = logging.getLogger('rhizi') @@ -61,18 +60,15 @@ def __context__common(rzdoc_name=None): ret.rzdoc = current_app.kernel.cache_lookup__rzdoc(s_rzdoc_name) return ret -def __load_node_set_by_id_attr_common(id_set): +def __load_node_set_by_id_attr_common(rzdoc_name, id_set): """ @param f_k: optional attribute filter key @param f_vset: possible key values to match against """ - op = DBO_match_node_set_by_id_attribute(id_set=id_set) - try: - n_set = db_ctl.exec_op(op) - return common_resp_handle__success(data=n_set) - except Exception as e: - log.exception(e) - return common_resp_handle__client_error(error='unable to load node with ids: {0}'.format(id_set)) + ctx = __context__common(rzdoc_name) + kernel = flask.current_app.kernel + _, commit_ret = kernel.load_node_set_by_id_attr(id_set, ctx) + return common_resp_handle__success(data=commit_ret) def diff_commit__set(): """ @@ -113,6 +109,7 @@ def load_link_set_by_link_ptr_set(): assert False +@common_rest_req_exception_handler def load_node_set_by_id_attr(): """ load node-set by ID attribute @@ -122,12 +119,16 @@ def load_node_set_by_id_attr(): an empty list if the requested node is not found @raise exception: on error """ - req_json = request.get_json() - id_set = req_json['id_set'] - __sanitize_input(id_set) + def sanitize_input(req): + req_json = request.get_json() + rzdoc_name = req_json['rzdoc_name'] + id_set = req_json['id_set'] + return rzdoc_name, id_set + + rzdoc_name, id_set = sanitize_input(request) - return __load_node_set_by_id_attr_common(id_set) + return __load_node_set_by_id_attr_common(rzdoc_name, id_set) def match_node_set_by_attr_filter_map(attr_filter_map): """ diff --git a/src/server/rz_kernel.py b/src/server/rz_kernel.py index 573b4a68..7b99c357 100644 --- a/src/server/rz_kernel.py +++ b/src/server/rz_kernel.py @@ -209,6 +209,10 @@ class RZ_Kernel(object): op = QT_RZDOC_Meta_NS_Filter(rzdoc)(op) self.db_ctl.exec_op(op) + def load_node_set_by_id_attr(self, id_set, ctx=None): + op = DBO_match_node_set_by_id_attribute(id_set=id_set) + self.db_ctl.exec_op(op) + def rzdoc__reader_subscribe(self, remote_socket_addr=None, rzdoc_name=None, |
