cleanup(api): Move route registration to routes.

This commit is contained in:
2025-06-12 23:11:34 +10:00
parent 9e5c2f5777
commit 250b55634d
2 changed files with 19 additions and 48 deletions

View File

@@ -11,54 +11,14 @@ from datamodels import DataModel
from constants import DATA_VERSION
from modules.profiles.data import ProfileData
from routes import dbvar, datamodelsv, profiledatav, register_routes
from routes.stamps import routes as stamp_routes
from routes.documents import routes as doc_routes
from routes.users import routes as user_routes
from routes.specimens import routes as spec_routes
from routes.transactions import routes as txn_routes
from routes.events import routes as event_routes
from routes.lib import dbvar, datamodelsv, profiledatav
sys.path.insert(0, os.path.join(os.getcwd()))
sys.path.insert(0, os.path.join(os.getcwd(), "src"))
logger = logging.getLogger(__name__)
# TODO: Move the route table to the __init__ of routes
# Maybe we can join route tables together?
# Or we just expose an add_routes or register method
"""
- `/stamps` with `POST`, `PUT`, `GET`
- `/stamps/{stamp_id}` with `GET`, `PATCH`, `DELETE`
- `/documents` with `POST, GET`
- `/documents/{document_id}` with `GET`, `PATCH`, `DELETE`
- `/documents/{document_id}/stamps` which is passed to `/stamps` with `document_id` set.
- `/events` with `POST`, `GET`
- `/events/{event_id}` with `GET`, `PATCH`, `DELETE`
- `/events/{event_id}/document` which is passed to `/documents/{document_id}`
- `/events/{event_id}/user` which is passed to `/users/{user_id}`
- `/users` with `POST`, `GET`, `PATCH`, `DELETE`
- `/users/{user_id}` with `GET`, `PATCH`, `DELETE`
- `/users/{user_id}/events` which is passed to `/events`
- `/users/{user_id}/specimen` which is passed to `/specimens/{specimen_id}`
- `/users/{user_id}/specimens` which is passed to `/specimens`
- `/users/{user_id}/wallet` with `GET`
- `/users/{user_id}/transactions` which is passed to `/transactions`
- `/specimens` with `GET` and `POST`
- `/specimens/{specimen_id}` with `PATCH` and `DELETE`
- `/specimens/{specimen_id}/owner` which is passed to `/users/{user_id}`
- `/transactions` with `POST`, `GET`
- `/transactions/{transaction_id}` with `GET`, `PATCH`, `DELETE`
- `/transactions/{transaction_id}/user` which is passed to `/users/{user_id}`
"""
async def attach_db(app: web.Application):
db = Database(conf.data['args'])
async with db.open():
@@ -84,19 +44,14 @@ async def attach_db(app: web.Application):
async def test(request: web.Request) -> web.Response:
return web.Response(text="Hello World")
return web.Response(text="Welcome to the Dreamspace API. Please donate an important childhood memory to continue.")
def app_factory():
auth = key_auth_factory(conf.API['TOKEN'])
app = web.Application(middlewares=[auth])
app.cleanup_ctx.append(attach_db)
app.router.add_get('/', test)
app.router.add_routes(stamp_routes)
app.router.add_routes(doc_routes)
app.router.add_routes(user_routes)
app.router.add_routes(spec_routes)
app.router.add_routes(event_routes)
app.router.add_routes(txn_routes)
register_routes(app.router)
return app

16
src/routes/__init__.py Normal file
View File

@@ -0,0 +1,16 @@
from .stamps import routes as stamp_routes
from .documents import routes as doc_routes
from .users import routes as user_routes
from .specimens import routes as spec_routes
from .transactions import routes as txn_routes
from .events import routes as event_routes
from .lib import dbvar, datamodelsv, profiledatav
def register_routes(router):
router.add_routes(stamp_routes)
router.add_routes(doc_routes)
router.add_routes(user_routes)
router.add_routes(spec_routes)
router.add_routes(event_routes)
router.add_routes(txn_routes)