summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLV-426 <lv-426@taproot.org.il>2015-03-23 16:59:09 +0200
committerLV-426 <lv-426@taproot.org.il>2015-04-01 22:20:31 +0300
commit1e125b0a6a28b635b44d7fcc61c29a3af0f181f4 (patch)
treeac6f7361dbce591a096b0b147c0025e885b8542d
parente08630c5e073a2f6d3b30086d2f371f2c7127850 (diff)
DB_op: wip: DBO_rzdoc__new, DBO_rzdoc__open
-rw-r--r--src/server/db_op.py34
-rw-r--r--src/server/rz_api_common.py3
-rw-r--r--src/server/rz_api_rest.py17
3 files changed, 54 insertions, 0 deletions
diff --git a/src/server/db_op.py b/src/server/db_op.py
index 9a726be7..87088f76 100644
--- a/src/server/db_op.py
+++ b/src/server/db_op.py
@@ -733,3 +733,37 @@ class DBO_rz_clone(DB_op):
topo_diff = Topo_Diff(node_set_add=ret_n_set,
link_set_add=ret_l_set)
return topo_diff
+
+class DBO_rzdoc__new(DB_op):
+
+ def __init__(self, rzdoc):
+ """
+ create a new rhizi doc
+ """
+ super(DBO_rzdoc__new, self).__init__()
+
+ q_arr = ['merge (n:%s {attr_dict})' % (neo4j_cypher.META_LABEL__RZ_DOC),
+ 'return n']
+
+ rzdoc_id = rzdoc.id
+ rzdoc_name = rzdoc.name
+ param_set = {'attr_dict': {'id': rzdoc_id, 'name': rzdoc_name}}
+
+ db_q = DB_Query(q_arr, param_set)
+ self.add_db_query(db_q)
+
+class DBO_rzdoc__lookup_by_name(DB_op):
+
+ def __init__(self, name):
+ """
+ create a new rhizi doc
+ """
+ super(DBO_rzdoc__new, self).__init__()
+
+ q_arr = ['match (n:%s {name: {name}})' % (neo4j_cypher.META_LABEL__RZ_DOC),
+ 'return n']
+
+ param_set = {'name': name}
+ db_q = DB_Query(q_arr, param_set)
+ self.add_db_query(db_q)
+
diff --git a/src/server/rz_api_common.py b/src/server/rz_api_common.py
index d5d2510d..aac3b527 100644
--- a/src/server/rz_api_common.py
+++ b/src/server/rz_api_common.py
@@ -45,3 +45,6 @@ def validate_obj__attr_diff(attr_diff):
for attr_name in node_attr_diff_set['__attr_write'].keys():
if 'id' == attr_name:
raise Exception('validation error: Attr_Diff: forbidden attribute change: \'id\', n_id: ' + n_id)
+
+def map_rzdoc_name_to_rzdoc_id(rzdoc_name):
+ return rzdoc_name.lower().replace(' ', '_')
diff --git a/src/server/rz_api_rest.py b/src/server/rz_api_rest.py
index 29998128..ac3a5c6e 100644
--- a/src/server/rz_api_rest.py
+++ b/src/server/rz_api_rest.py
@@ -42,6 +42,23 @@ def __context__common():
return ret
+def rzdoc__new():
+ # TODO: add doc node, set doc label, associate user-doc
+
+ def sanitize_input(req):
+ return request.get_json().get('rzdoc_name')
+
+ ctx = __context__common()
+ rzdoc_name = sanitize_input(request)
+ try:
+ kernel = flask.current_app.kernel
+ rzdoc = kernel.rzdoc__new(rzdoc_name, ctx)
+ return common_resp_handle(data=rzdoc)
+ except Exception as e:
+ log.error(e.message)
+ log.error(traceback.print_exc())
+ return common_resp_handle(error=e)
+
def diff_commit__topo():
"""
REST API wrapper around diff_commit__topo():