Mercurial > wiki
view server.py @ 28:602baadb535a default tip
Added a requesthandler infrastructure to atulweb.
author | Atul Varma <varmaa@toolness.com> |
---|---|
date | Wed, 11 Mar 2009 23:19:18 -0500 |
parents | 52f02c6edfa9 |
children |
line wrap: on
line source
import re import atulweb status = dict(max_changeset = 0) changesets = { 0: dict(date='Thu Feb 12 2009 19:03:56 GMT-0800 (PST)', content=open('static-files/wiki.txt', 'r').read()) } class RequestHandler(object): NOUNS = {'csid': re.compile(r'\d+')} def status(self): 'GET /status' return atulweb.Response(status, 'application/json') def get_doc(self, csid): 'GET /{csid}' csid = int(csid) if csid in changesets: return atulweb.Response(changesets[csid], 'application/json') else: raise atulweb.HttpError('not found') def put_doc(self, csid): 'PUT /{csid}' csid = int(csid) if csid == status['max_changeset'] + 1: status['max_changeset'] = csid req = atulweb.Request(self.environ) try: changeset = req.get_input('application/json') except ValueError: raise atulweb.HttpError('bad request', 'invalid json data') changesets[csid] = changeset return atulweb.Response('changeset committed.') else: raise atulweb.HttpError('bad request', 'invalid changeset id') if __name__ == '__main__': atulweb.main(atulweb.make_wsgiapp(RequestHandler()))