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