Mercurial > wiki
view server.py @ 23:6c84924cb63a
Made cid an int.
author | Atul Varma <varmaa@toolness.com> |
---|---|
date | Thu, 12 Feb 2009 19:25:23 -0800 |
parents | 1850638c1da5 |
children | b094768c285b |
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=('Edit me by holding shift while clicking ' 'on me.')) } CID_PATH = re.compile(r'/(\d+)') @atulweb.wsgiapp def application(environ, start_response): if environ['REQUEST_METHOD'] == 'GET': path = environ['PATH_INFO'] if path == '/status': return atulweb.Response(status, 'application/json') else: match = CID_PATH.match(path) if match: cid = int(match.group(1)) if cid in changesets: return atulweb.Response(changesets[cid], 'application/json') else: raise atulweb.HttpError('not found') else: raise atulweb.HttpError('not found') elif environ['REQUEST_METHOD'] == 'PUT': match = CID_PATH.match(environ['PATH_INFO']) if match: cid = int(match.group(1)) if cid == status['max_changeset'] + 1: status['max_changeset'] = cid req = atulweb.Request(environ) changeset = req.get_input('application/json') changesets[cid] = changeset else: raise atulweb.HttpError('bad request', 'invalid changeset id') else: raise atulweb.HttpError('bad request') else: raise atulweb.HttpError('method not allowed') if __name__ == '__main__': atulweb.main(application)