summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/db_op.py36
-rw-r--r--src/server/model/model.py36
2 files changed, 41 insertions, 31 deletions
diff --git a/src/server/db_op.py b/src/server/db_op.py
index 1bea8bf7..b8939f8d 100644
--- a/src/server/db_op.py
+++ b/src/server/db_op.py
@@ -1,15 +1,12 @@
-import base64
from copy import deepcopy
-import gzip
import hashlib
-import json
import logging
import re
import StringIO as sio
from model.graph import Attr_Diff
from model.graph import Topo_Diff
-from model.model import Link, RZDoc
+from model.model import Link, RZDoc, RZCommit
from neo4j_cypher import DB_Query, DB_result_set
import neo4j_schema
from neo4j_util import cfmt
@@ -192,24 +189,6 @@ class DB_composed_op(DB_op):
ret.append(s_result_set)
return ret
-def obj_from_blob(blob):
- """
- @return json.loads(gzip_decompress(base64_decode(blob)))
- """
- blob_gzip = base64.decodestring(blob)
- blob = gzip.zlib.decompress(blob_gzip)
- return json.loads(blob)
-
-def obj_to_blob(obj):
- """
- @return: blob = base64(gzip(json.dumps(obj)))
- """
- obj_str = json.dumps(obj)
- blob_gzip = gzip.zlib.compress(obj_str)
- blob_base64 = base64.encodestring(blob_gzip)
-
- return blob_base64
-
class DBO_block_chain__commit(DB_op):
"""
Rhizi version control
@@ -233,7 +212,7 @@ class DBO_block_chain__commit(DB_op):
"""
super(DBO_block_chain__commit, self).__init__()
- blob = obj_to_blob(commit_obj)
+ blob = RZCommit.blob_from_diff_obj(commit_obj)
hash_value = self.calc_blob_hash(blob)
l_id = generate_random_id__uuid()
@@ -827,12 +806,11 @@ class DBO_rzdoc__commit_log(DB_op):
# root commit, done
break
# TODO: get author
- diff = obj_from_blob(commit['blob'])
- diff['meta'] = dict(
- ts_created=commit['ts_created'],
- author='Anonymous' if user is None else user['user_name'],
- commit=commit['hash'],
- )
+ diff = RZCommit.diff_obj_from_blob(commit['blob'])
+ diff['meta'] = dict(ts_created=commit['ts_created'],
+ author='Anonymous' if user is None else user['user_name'],
+ commit=commit['hash'],
+ )
if None is not operation and 'sentence' in operation:
diff['meta']['sentence'] = operation['sentence']
ret.append(diff)
diff --git a/src/server/model/model.py b/src/server/model/model.py
index 724a59db..1f97d69b 100644
--- a/src/server/model/model.py
+++ b/src/server/model/model.py
@@ -1,3 +1,35 @@
+import base64
+import gzip
+import json
+
+class RZCommit():
+ """
+ Rhizi Commit object
+
+ Currently this object is substituted by either a diff object, this currently
+ acts as a model stub.
+ """
+
+ @staticmethod
+ def diff_obj_from_blob(blob):
+ """
+ @return json.loads(gzip_decompress(base64_decode(blob)))
+ """
+ blob_gzip = base64.decodestring(blob)
+ blob = gzip.zlib.decompress(blob_gzip)
+ return json.loads(blob)
+
+ @staticmethod
+ def blob_from_diff_obj(obj):
+ """
+ @return: blob = base64(gzip(json.dumps(obj)))
+ """
+ obj_str = json.dumps(obj)
+ blob_gzip = gzip.zlib.compress(obj_str)
+ blob_base64 = base64.encodestring(blob_gzip)
+
+ return blob_base64
+
class Link():
"""
documentation anchor - this class currently carries no implementation
@@ -38,8 +70,8 @@ class Link():
class RZDoc():
- def __init__(self, rzdoc_name = None):
- self.id = None # set upon DB commit
+ def __init__(self, rzdoc_name=None):
+ self.id = None # set upon DB commit
self.name = rzdoc_name
def __eq__(self, other):