first ruggedy draft
This commit is contained in:
65
apps/api/mousehold_api/main.py
Normal file
65
apps/api/mousehold_api/main.py
Normal file
@@ -0,0 +1,65 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import uvicorn
|
||||
from fastapi import FastAPI
|
||||
from fastapi.middleware.cors import CORSMiddleware
|
||||
from mousehold_agent.server import create_router as create_agent_router
|
||||
|
||||
from .config import get_settings
|
||||
from .db import init_db
|
||||
from .routers import (
|
||||
accounts,
|
||||
auth,
|
||||
backup,
|
||||
connections,
|
||||
events,
|
||||
households,
|
||||
observations,
|
||||
projects,
|
||||
reconciliation,
|
||||
recurring,
|
||||
settlement,
|
||||
taxonomy,
|
||||
)
|
||||
|
||||
|
||||
def create_app() -> FastAPI:
|
||||
settings = get_settings()
|
||||
app = FastAPI(title=settings.app_name, version="0.1.0")
|
||||
app.add_middleware(
|
||||
CORSMiddleware,
|
||||
allow_origins=settings.cors_origins,
|
||||
allow_credentials=True,
|
||||
allow_methods=["*"],
|
||||
allow_headers=["*"],
|
||||
)
|
||||
|
||||
@app.on_event("startup")
|
||||
def startup() -> None:
|
||||
init_db()
|
||||
|
||||
@app.get("/health")
|
||||
def health() -> dict[str, str]:
|
||||
return {"status": "ok"}
|
||||
|
||||
app.include_router(households.router, prefix=settings.api_prefix)
|
||||
app.include_router(auth.router, prefix=settings.api_prefix)
|
||||
app.include_router(backup.router, prefix=settings.api_prefix)
|
||||
app.include_router(accounts.router, prefix=settings.api_prefix)
|
||||
app.include_router(observations.router, prefix=settings.api_prefix)
|
||||
app.include_router(events.router, prefix=settings.api_prefix)
|
||||
app.include_router(settlement.router, prefix=settings.api_prefix)
|
||||
app.include_router(reconciliation.router, prefix=settings.api_prefix)
|
||||
app.include_router(projects.router, prefix=settings.api_prefix)
|
||||
app.include_router(recurring.router, prefix=settings.api_prefix)
|
||||
app.include_router(taxonomy.router, prefix=settings.api_prefix)
|
||||
app.include_router(connections.router, prefix=settings.api_prefix)
|
||||
app.include_router(create_agent_router(), prefix=f"{settings.api_prefix.rstrip('/')}/agent")
|
||||
return app
|
||||
|
||||
|
||||
app = create_app()
|
||||
|
||||
|
||||
def run() -> None:
|
||||
uvicorn.run("mousehold_api.main:app", host="127.0.0.1", port=8000, reload=True)
|
||||
Reference in New Issue
Block a user