From 5d056170357acd0945899d7f0c40f530cbe816e0 Mon Sep 17 00:00:00 2001 From: Victor Shyba Date: Fri, 16 Sep 2016 19:33:06 -0300 Subject: [feature] server download stream from file object couchdb lib returns a file object representing the attachment. This commit dumps the read() call into the wsgi write() call. Doc representation uses 2 lines also, separating metadata from content. --- common/src/leap/soledad/common/couch/__init__.py | 5 ++--- common/src/leap/soledad/common/l2db/remote/http_app.py | 4 +++- 2 files changed, 5 insertions(+), 4 deletions(-) (limited to 'common/src') diff --git a/common/src/leap/soledad/common/couch/__init__.py b/common/src/leap/soledad/common/couch/__init__.py index d751747d..1a95e590 100644 --- a/common/src/leap/soledad/common/couch/__init__.py +++ b/common/src/leap/soledad/common/couch/__init__.py @@ -348,8 +348,7 @@ class CouchDatabase(object): result['_attachments'] = {} for file_name in attachment_file_names: result['_attachments'][file_name] = { - 'data': json.load( - self._database.get_attachment(result, file_name)) + 'data': self._database.get_attachment(result, file_name) } doc = self.__parse_doc_from_couch( result, result['_id'], @@ -432,7 +431,7 @@ class CouchDatabase(object): binascii.a2b_base64( result['_attachments']['u1db_content']['data'])) else: - doc.content = result['_attachments']['u1db_content']['data'] + doc._json = result['_attachments']['u1db_content']['data'] # determine if there are conflicts if check_for_conflicts \ and '_attachments' in result \ diff --git a/common/src/leap/soledad/common/l2db/remote/http_app.py b/common/src/leap/soledad/common/l2db/remote/http_app.py index 5cf6645e..a9680890 100644 --- a/common/src/leap/soledad/common/l2db/remote/http_app.py +++ b/common/src/leap/soledad/common/l2db/remote/http_app.py @@ -501,7 +501,9 @@ class HTTPResponder(object): self._write('\r\n') else: self._write(',\r\n') - self._write(json.dumps(entry)) + if type(entry) == dict: + entry = json.dumps(entry) + self._write(entry) def end_stream(self): "end stream (array)." -- cgit v1.2.3