diff options
| author | LV-426 <lv-426@taproot.org.il> | 2015-05-12 20:18:36 +0300 |
|---|---|---|
| committer | LV-426 <lv-426@taproot.org.il> | 2015-05-12 20:18:36 +0300 |
| commit | f5e8aeb9a15bef3b05929280bb44936328cd5a3b (patch) | |
| tree | 4b5d14e3ae4d94514a955ee73534c72487220eb0 /src/server/model/model.py | |
| parent | fd2b65d265b3e2d25a8649d89d7fce3befb6ad0c (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.py | 36 |
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): |
