diff options
| author | Alon Levy <alon@pobox.com> | 2015-04-10 19:22:27 +0200 |
|---|---|---|
| committer | Alon Levy <alon@pobox.com> | 2015-04-10 19:22:27 +0200 |
| commit | 7d5a73b23570fb7c88e01a1dbb7f7012c49003dd (patch) | |
| tree | 9b32e62eb0d32980a6b4eb45081eafe5ffd815ed /src | |
| parent | 3d1b371ebf53ec81ca49a430b16f5af343207e67 (diff) | |
server: implement doc rename
Diffstat (limited to 'src')
| -rw-r--r-- | src/server/db_op.py | 24 | ||||
| -rw-r--r-- | src/server/rz_kernel.py | 16 |
2 files changed, 37 insertions, 3 deletions
diff --git a/src/server/db_op.py b/src/server/db_op.py index 76a5d2eb..7fa32cca 100644 --- a/src/server/db_op.py +++ b/src/server/db_op.py @@ -851,4 +851,28 @@ class DBO_rzdoc__lookup_by_name(DB_op): rzdoc.id = rzdoc_dict['id'] return rzdoc +class DBO_rzdoc__rename(DB_op): + + def __init__(self, rzdoc_cur_name, rzdoc_new_name): + """ + @return: [rzdoc] of [] if no doc with the given name was found + """ + super(DBO_rzdoc__rename, self).__init__() + + q_arr = ['match (n:%s {name: {cur_name}}) set n.name = {new_name}' % (neo4j_schema.META_LABEL__RZDOC_TYPE), + 'return n'] + + param_set = {'cur_name': rzdoc_cur_name, 'new_name': rzdoc_new_name} + db_q = DB_Query(q_arr, param_set) + self.add_db_query(db_q) + + def process_result_set(self): + rzdoc_dict_set = DB_op.process_result_set(self) + if not rzdoc_dict_set: return None + + rzdoc_dict = rzdoc_dict_set.pop() + rzdoc = RZDoc(rzdoc_name=rzdoc_dict['name']) + rzdoc.id = rzdoc_dict['id'] + return rzdoc + diff --git a/src/server/rz_kernel.py b/src/server/rz_kernel.py index 2debd293..2f35ec2d 100644 --- a/src/server/rz_kernel.py +++ b/src/server/rz_kernel.py @@ -6,9 +6,9 @@ import logging import traceback from concurrent.futures import ThreadPoolExecutor -from db_op import DBO_diff_commit__attr, DBO_block_chain__commit, DBO_rzdoc__create, \ - DBO_rzdoc__lookup_by_name, DBO_rzdoc__clone, DBO_rzdoc__delete, DBO_rzdoc__list, \ - DBO_block_chain__init +from db_op import (DBO_diff_commit__attr, DBO_block_chain__commit, DBO_rzdoc__create, + DBO_rzdoc__lookup_by_name, DBO_rzdoc__clone, DBO_rzdoc__delete, DBO_rzdoc__list, + DBO_block_chain__init, DBO_rzdoc__rename) from db_op import DBO_diff_commit__topo from model.graph import Topo_Diff from model.model import RZDoc @@ -297,6 +297,16 @@ class RZ_Kernel(object): # - clear cache mapping entry # - unsubscribe all rzdoc readers + def rzdoc__rename(self, cur_name, new_name): + op = DBO_rzdoc__rename(cur_name, new_name) + + rzdoc = self.db_ctl.exec_op(op) + return rzdoc # may be None + # FIXME: + # - broadcast rename event + # - update cache mapping entry + # - notify all rzdoc readers + def rzdoc__list(self, rzdoc=None, ctx=None): """ List available RZDocs |
