Source code for fixie_creds.handlers

"""Tornado handlers for interfacing with fixie credentials."""

from fixie.request_handler import RequestHandler

from fixie_creds.cache import CACHE


[docs]class Register(RequestHandler): schema = {'user': {'type': 'string', 'empty': False}, 'email': {'type': 'string', 'empty': False}, }
[docs] def post(self): token, flag = CACHE.register(**self.request.arguments) if flag: response = {'token': token, 'status': True} else: response = {'token': '<not-a-token>', 'status': False, 'message': token} self.write(response)
[docs]class Verify(RequestHandler): schema = {'user': {'type': 'string', 'empty': False}, 'token': {'type': 'string', 'regex': '[0-9a-fA-F]+'}, } response_keys = ('verified', 'message', 'status')
[docs] def post(self): resp = CACHE.verify(**self.request.arguments) response = dict(zip(self.response_keys, resp)) self.write(response)
[docs]class Deregister(RequestHandler): schema = {'user': {'type': 'string', 'empty': False}, 'token': {'type': 'string', 'regex': '[0-9a-fA-F]+'}, } response_keys = ('message', 'status')
[docs] def post(self): resp = CACHE.deregister(**self.request.arguments) response = dict(zip(self.response_keys, resp)) self.write(response)
[docs]class Reset(RequestHandler): schema = {'user': {'type': 'string', 'empty': False}, 'email': {'type': 'string', 'empty': False}, }
[docs] def post(self): token, flag = CACHE.reset(**self.request.arguments) if flag: response = {'token': token, 'status': True} else: response = {'token': '<not-a-token>', 'status': False, 'message': token} self.write(response)
HANDLERS = [ ('/verify', Verify), ('/register', Register), ('/deregister', Deregister), ('/reset', Reset), ]