50 lines
1.2 KiB
Python
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)
|