Add Splitwise clone backend
This commit is contained in:
37
app/main.py
Normal file
37
app/main.py
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
from __future__ import annotations
|
||||||
|
|
||||||
|
from collections.abc import AsyncIterator
|
||||||
|
from contextlib import asynccontextmanager
|
||||||
|
|
||||||
|
from starlette.applications import Starlette
|
||||||
|
from starlette.middleware import Middleware
|
||||||
|
from starlette.routing import Route
|
||||||
|
from tortoise import Tortoise
|
||||||
|
|
||||||
|
from app.auth import OIDCAuthMiddleware, init_oidc
|
||||||
|
from app.config import settings
|
||||||
|
from app.resources.expenses import create_expense_report, list_expense_reports
|
||||||
|
|
||||||
|
|
||||||
|
@asynccontextmanager
|
||||||
|
async def lifespan(app: Starlette) -> AsyncIterator[None]:
|
||||||
|
await Tortoise.init(
|
||||||
|
db_url=settings.database_url,
|
||||||
|
modules={"models": ["app.models"]},
|
||||||
|
)
|
||||||
|
await Tortoise.generate_schemas(safe=True)
|
||||||
|
await init_oidc()
|
||||||
|
yield
|
||||||
|
await Tortoise.close_connections()
|
||||||
|
|
||||||
|
|
||||||
|
routes = [
|
||||||
|
Route("/api/expense-reports", endpoint=create_expense_report, methods=["POST"]),
|
||||||
|
Route("/api/expense-reports", endpoint=list_expense_reports, methods=["GET"]),
|
||||||
|
]
|
||||||
|
|
||||||
|
middleware = [
|
||||||
|
Middleware(OIDCAuthMiddleware),
|
||||||
|
]
|
||||||
|
|
||||||
|
app = Starlette(routes=routes, middleware=middleware, lifespan=lifespan)
|
||||||
Reference in New Issue
Block a user