Finance-Accounts/ar-aging-app/backend/app/api/main.py

50 lines
1.2 KiB
Python

"""FastAPI application entrypoint."""
from __future__ import annotations
from contextlib import asynccontextmanager
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from .. import APP_NAME, APP_VERSION
from ..config import CORS_ORIGINS
from ..db.database import init_db
from .routes import (
sessions, files, processing, results, settings as settings_routes, export, ar, control,
analytics,
)
@asynccontextmanager
async def lifespan(_app: FastAPI):
init_db()
yield
app = FastAPI(title=APP_NAME, version=APP_VERSION, lifespan=lifespan)
app.add_middleware(
CORSMiddleware,
allow_origins=CORS_ORIGINS,
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
@app.get("/api/health")
def health() -> dict:
return {"status": "ok", "app": APP_NAME, "version": APP_VERSION}
app.include_router(sessions.router)
app.include_router(files.router)
app.include_router(processing.router)
app.include_router(results.router)
app.include_router(settings_routes.router)
app.include_router(settings_routes.rules_router)
app.include_router(export.router)
app.include_router(ar.router)
app.include_router(control.router)
app.include_router(analytics.router)