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