From 7ef11157c9af8dcddbc52f063f8f362bddc6c36f Mon Sep 17 00:00:00 2001 From: Victor Shyba Date: Mon, 29 May 2017 04:02:20 -0300 Subject: [feature] make /incoming persist doc on CouchDB -- Resolves: #8827 --- server/src/leap/soledad/server/_incoming.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'server/src/leap/soledad') diff --git a/server/src/leap/soledad/server/_incoming.py b/server/src/leap/soledad/server/_incoming.py index 1583e362..a9845af1 100644 --- a/server/src/leap/soledad/server/_incoming.py +++ b/server/src/leap/soledad/server/_incoming.py @@ -18,11 +18,30 @@ A twisted resource that saves externally delivered documents into user's db. """ from twisted.web.resource import Resource +from leap.soledad.common.document import ServerDocument +from ._config import get_config +from leap.soledad.common.couch.state import CouchServerState +import json __all__ = ['IncomingResource'] +def _default_backend(): + conf = get_config() + return CouchServerState(conf['couch_url'], create_cmd=conf['create_cmd']) + + class IncomingResource(Resource): + isLeaf = True + + def __init__(self, backend_factory=None): + self.factory = backend_factory or _default_backend() + def render_PUT(self, request): + uuid, doc_id = request.postpath + db = self.factory.open_database(uuid) + doc = ServerDocument(doc_id) + doc.content = json.loads(request.content.read()) + db.put_doc(doc) return '' -- cgit v1.2.3