32 lines
1011 B
Python
32 lines
1011 B
Python
from contextlib import asynccontextmanager
|
|
from fastapi import FastAPI
|
|
|
|
from .db import init_db, stop_db
|
|
from .user import user_router, get_auth_router
|
|
|
|
from .entity import entity_router
|
|
from .template import template_router
|
|
from .contract import contract_router
|
|
|
|
|
|
@asynccontextmanager
|
|
async def lifespan(app: FastAPI):
|
|
await init_db()
|
|
yield
|
|
await stop_db()
|
|
|
|
app = FastAPI(root_path="/api/v1", lifespan=lifespan)
|
|
|
|
app.include_router(get_auth_router(), prefix="/auth", tags=["auth"], )
|
|
app.include_router(user_router, prefix="/users", tags=["users"], )
|
|
|
|
multitenant_prefix = "/{instance}/{firm}"
|
|
|
|
app.include_router(entity_router, prefix=f"{multitenant_prefix}/entity", tags=["entity"], )
|
|
app.include_router(template_router, prefix=f"{multitenant_prefix}/template", tags=["template"], )
|
|
app.include_router(contract_router, prefix=f"{multitenant_prefix}/contract", tags=["contract"], )
|
|
|
|
if __name__ == '__main__':
|
|
import uvicorn
|
|
uvicorn.run("main:app", host='0.0.0.0', port=8000, reload=True)
|