V6D1TokensAppFactory
This commit is contained in:
parent
455dcdced7
commit
668eb581c4
v6d1tokens
@ -4,54 +4,44 @@ from aiohttp import web
|
||||
from nacl.exceptions import BadSignatureError
|
||||
from v6d0auth import certs
|
||||
|
||||
__all__ = ('get_app',)
|
||||
__all__ = ('V6D1TokensAppFactory',)
|
||||
|
||||
from v6d0auth.appfactory import AppFactory
|
||||
|
||||
from v6d1tokens.tdb import TDB
|
||||
|
||||
|
||||
def define_routes(routes: web.RouteTableDef, tdb: TDB):
|
||||
print(certs.vkey.encode().hex())
|
||||
class V6D1TokensAppFactory(AppFactory):
|
||||
def __init__(self, tdb: TDB):
|
||||
self.tdb = tdb
|
||||
|
||||
@routes.get('/')
|
||||
async def home(_request: web.Request):
|
||||
return web.Response(body='v6d1tokens\n')
|
||||
def define_routes(self, routes: web.RouteTableDef):
|
||||
print(certs.vkey.encode().hex())
|
||||
|
||||
@routes.post('/reg')
|
||||
async def reg(request: web.Request):
|
||||
try:
|
||||
await tdb.reg(await request.read())
|
||||
except BadSignatureError:
|
||||
raise web.HTTPUnauthorized
|
||||
except json.JSONDecodeError:
|
||||
raise web.HTTPBadRequest
|
||||
else:
|
||||
raise web.HTTPOk
|
||||
@routes.get('/')
|
||||
async def home(_request: web.Request):
|
||||
return web.Response(body='v6d1tokens\n')
|
||||
|
||||
@routes.post('/get')
|
||||
async def get(request: web.Request):
|
||||
try:
|
||||
token_encrypted = await tdb.get(await request.read())
|
||||
except BadSignatureError:
|
||||
raise web.HTTPUnauthorized
|
||||
except json.JSONDecodeError:
|
||||
raise web.HTTPBadRequest
|
||||
except KeyError:
|
||||
raise web.HTTPNotFound
|
||||
else:
|
||||
return web.Response(body=token_encrypted)
|
||||
@routes.post('/reg')
|
||||
async def reg(request: web.Request):
|
||||
try:
|
||||
await self.tdb.reg(await request.read())
|
||||
except BadSignatureError:
|
||||
raise web.HTTPUnauthorized
|
||||
except json.JSONDecodeError:
|
||||
raise web.HTTPBadRequest
|
||||
else:
|
||||
raise web.HTTPOk
|
||||
|
||||
|
||||
def app_routes(tdb: TDB) -> web.RouteTableDef:
|
||||
routes = web.RouteTableDef()
|
||||
define_routes(routes, tdb)
|
||||
return routes
|
||||
|
||||
|
||||
def app_with_routes(routes: web.RouteTableDef):
|
||||
app = web.Application()
|
||||
app.add_routes(routes)
|
||||
return app
|
||||
|
||||
|
||||
def get_app(tdb: TDB) -> web.Application:
|
||||
return app_with_routes(app_routes(tdb))
|
||||
@routes.post('/get')
|
||||
async def get(request: web.Request):
|
||||
try:
|
||||
token_encrypted = await self.tdb.get(await request.read())
|
||||
except BadSignatureError:
|
||||
raise web.HTTPUnauthorized
|
||||
except json.JSONDecodeError:
|
||||
raise web.HTTPBadRequest
|
||||
except KeyError:
|
||||
raise web.HTTPNotFound
|
||||
else:
|
||||
return web.Response(body=token_encrypted)
|
||||
|
@ -2,15 +2,14 @@ import asyncio
|
||||
|
||||
from v6d0auth.run_app import run_app
|
||||
|
||||
from v6d1tokens.app import get_app
|
||||
from v6d1tokens.app import V6D1TokensAppFactory
|
||||
from v6d1tokens.tdb import TDB
|
||||
|
||||
|
||||
async def main():
|
||||
tdb = TDB()
|
||||
app = get_app(tdb)
|
||||
async with tdb.db:
|
||||
await run_app(app)
|
||||
await run_app(V6D1TokensAppFactory(tdb).app())
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
Reference in New Issue
Block a user