summaryrefslogtreecommitdiff
path: root/src/server/model/model.py
diff options
context:
space:
mode:
authorLV-426 <lv-426@taproot.org.il>2015-05-12 20:18:36 +0300
committerLV-426 <lv-426@taproot.org.il>2015-05-12 20:18:36 +0300
commitf5e8aeb9a15bef3b05929280bb44936328cd5a3b (patch)
tree4b5d14e3ae4d94514a955ee73534c72487220eb0 /src/server/model/model.py
parentfd2b65d265b3e2d25a8649d89d7fce3befb6ad0c (diff)
RZCommit: host diff_obj_from_blob(), blob_from_diff_obj()
Diffstat (limited to 'src/server/model/model.py')
-rw-r--r--src/server/model/model.py36
1 files changed, 34 insertions, 2 deletions
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):