From cf6ca270ea59b3a2afbdd83e65c8e81760f85633 Mon Sep 17 00:00:00 2001 From: "W. Trevor King" Date: Mon, 18 Jan 2010 14:05:59 -0500 Subject: Add ancestors support to HTTP storage --- libbe/command/serve.py | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) (limited to 'libbe/command') diff --git a/libbe/command/serve.py b/libbe/command/serve.py index 5dbd2b4..c466900 100644 --- a/libbe/command/serve.py +++ b/libbe/command/serve.py @@ -66,7 +66,9 @@ class BERequestHandler (server.BaseHTTPRequestHandler): data = self.parse_query(query) try: - if path == ['children']: + if path == ['ancestors']: + content,ctype = self.handle_ancestors(data) + elif path == ['children']: content,ctype = self.handle_children(data) elif len(path) > 1 and path[0] == 'get': content,ctype = self.handle_get('/'.join(path[1:]), data) @@ -180,6 +182,21 @@ class BERequestHandler (server.BaseHTTPRequestHandler): self.send_response(200) return (None,None) + def handle_ancestors(self, data): + if not 'id' in data: + self.send_error(406, 'Missing query key id') + raise _HandlerError() + elif data['id'] == 'None': + data['id'] = None + id = data['id'] + if not 'revision' in data or data['revision'] == 'None': + data['revision'] = None + revision = data['revision'] + content = '\n'.join(self.s.ancestors(id, revision)) + ctype = 'application/octet-stream' + self.send_response(200) + return content,ctype + def handle_children(self, data): if not 'id' in data: self.send_error(406, 'Missing query key id') -- cgit