From 1e125b0a6a28b635b44d7fcc61c29a3af0f181f4 Mon Sep 17 00:00:00 2001 From: LV-426 Date: Mon, 23 Mar 2015 16:59:09 +0200 Subject: DB_op: wip: DBO_rzdoc__new, DBO_rzdoc__open --- src/server/db_op.py | 34 ++++++++++++++++++++++++++++++++++ src/server/rz_api_common.py | 3 +++ src/server/rz_api_rest.py | 17 +++++++++++++++++ 3 files changed, 54 insertions(+) (limited to 'src/server') 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(): -- cgit v1.3.1