summaryrefslogtreecommitdiff
path: root/src/server
diff options
context:
space:
mode:
authorLV-426 <lv-426@taproot.org.il>2015-03-23 17:01:15 +0200
committerLV-426 <lv-426@taproot.org.il>2015-04-01 22:20:31 +0300
commit4f1188e30afc6d86f5ff33c8bfc959cb8fe058a5 (patch)
tree5e742baebe4280fde928d898d7bccfb0fa8cf24f /src/server
parent1e125b0a6a28b635b44d7fcc61c29a3af0f181f4 (diff)
follow rzdoc_xx var naming convention
Diffstat (limited to 'src/server')
-rw-r--r--src/server/neo4j_cypher.py24
-rw-r--r--src/server/rz_api_rest.py20
2 files changed, 26 insertions, 18 deletions
diff --git a/src/server/neo4j_cypher.py b/src/server/neo4j_cypher.py
index 579385da..ae626b57 100644
--- a/src/server/neo4j_cypher.py
+++ b/src/server/neo4j_cypher.py
@@ -1,12 +1,14 @@
"""
-Cypher language parser
- - clear logical separation between lexing/parsing still missing
- - e_XXX class object should be considered internal
+Neo4j DB object
"""
+
+from enum import Enum
+from neo4j_cypher_parser import Cypher_Parser, e_clause__where, e_keyword, \
+ e_value, e_label_set, p_node, p_path, e_ident, p_rel
import re
-from collections import defaultdict
import logging
-from enum import Enum
+import neo4j_cypher_parser
+from decorator import __call__
#
# meta label schema
@@ -89,14 +91,14 @@ class Query_Transformation(object):
class QT_Node_Filter__Doc_ID_Label(Query_Transformation):
- def __init__(self, doc_id):
- self.doc_id = doc_id
+ def __init__(self, rzdoc_id):
+ self.rzdoc_id = rzdoc_id
def apply_to_single_query(self, dbq):
- doc_id_label = META_LABEL__RZ_DOC_PREFIX + self.doc_id
+ rzdoc_id_label = META_LABEL__RZ_DOC_PREFIX + self.rzdoc_id
rgx__doc_label = re.compile(r'%s[\w\d_]+' % (META_LABEL__RZ_DOC_PREFIX))
- assert None != rgx__doc_label.match(doc_id_label), 'Illegal doc ID label: %s' % (doc_id_label) # validate doc label
+ assert None != rgx__doc_label.match(rzdoc_id_label), 'Illegal doc ID label: %s' % (rzdoc_id_label) # validate doc label
q_type = dbq.query_struct_type
c_set = [] # clause set
@@ -120,7 +122,7 @@ class QT_Node_Filter__Doc_ID_Label(Query_Transformation):
if isinstance(n, e_ident) and n.parent.__class__ in [p_node]:
lbl_set = n.spawn_sibling__adjacent(e_label_set)
lbl = lbl_set.spawn_child(e_value)
- lbl.value = doc_id_label
+ lbl.value = rzdoc_id_label
for p_exp in p_node_or_path_set:
p_exp.tree_walk__pre(f_visit=f_visit)
@@ -129,7 +131,7 @@ class QT_Node_Filter__Doc_ID_Label(Query_Transformation):
for lbl_set in set_of_lbl_set:
if isinstance(lbl_set.parent, p_node):
lbl = lbl_set.spawn_child(e_value)
- lbl.value = doc_id_label
+ lbl.value = rzdoc_id_label
# log.debug('db_q trans: in clause: %s, out clause: %s' % (cur_clause, new_clause))
diff --git a/src/server/rz_api_rest.py b/src/server/rz_api_rest.py
index ac3a5c6e..b3d5dc40 100644
--- a/src/server/rz_api_rest.py
+++ b/src/server/rz_api_rest.py
@@ -30,7 +30,7 @@ log = logging.getLogger('rhizi')
db_ctl = None # injected: DB controller
-def __context__common():
+def __context__common(rzdoc_id=None):
"""
build a common rquest context to pass along with a kernel diff commit:
- set user_name
@@ -40,6 +40,7 @@ def __context__common():
if session.has_key('username'):
ret['user_name'] = session['username']
+ ret['rzdoc_id'] = rzdoc_id
return ret
def rzdoc__new():
@@ -66,18 +67,20 @@ def diff_commit__topo():
- handle success/error outcomes
"""
def sanitize_input(req):
+ rzdoc_name = request.get_json().get('rzdoc_name')
topo_diff_dict = request.get_json()['topo_diff']
topo_diff = Topo_Diff.from_json_dict(topo_diff_dict)
sanitize_input__topo_diff(topo_diff)
- return topo_diff;
+ return rzdoc_name, topo_diff
try:
- topo_diff = sanitize_input(request)
+ rzdoc_name, topo_diff = sanitize_input(request)
except Exception as e:
return common_resp_handle(error='malformed input')
- ctx = __context__common()
+ rzdoc_id = map_rzdoc_name_to_rzdoc_id(rzdoc_name)
+ ctx = __context__common(rzdoc_id=rzdoc_id)
try:
kernel = flask.current_app.kernel
_, commit_ret = kernel.diff_commit__topo(topo_diff, ctx)
@@ -92,23 +95,26 @@ def diff_commit__attr():
commit a graph attribute diff
"""
def sanitize_input(req):
+ rzdoc_name = request.get_json().get('rzdoc_name')
attr_diff_dict = request.get_json()['attr_diff']
attr_diff = Attr_Diff.from_json_dict(attr_diff_dict)
sanitize_input__attr_diff(attr_diff)
- return attr_diff;
+
+ return rzdoc_name, attr_diff;
def on_error(e):
# handle DB ERRORS, eg. name attr change error
return common_resp_handle(error='error occurred')
try:
- attr_diff = sanitize_input(request)
+ rzdoc_name, attr_diff = sanitize_input(request)
validate_obj__attr_diff(attr_diff)
except Exception as e:
return common_resp_handle(error='malformed input')
- ctx = __context__common()
+ rzdoc_id = map_rzdoc_name_to_rzdoc_id(rzdoc_name)
+ ctx = __context__common(rzdoc_id=rzdoc_id)
try:
kernel = flask.current_app.kernel
_, commit_ret = kernel.diff_commit__attr(attr_diff, ctx)