inital commit
This commit is contained in:
47
server/app/main.py
Normal file
47
server/app/main.py
Normal file
@@ -0,0 +1,47 @@
|
||||
from contextlib import asynccontextmanager
|
||||
|
||||
from fastapi import FastAPI
|
||||
from fastapi.middleware.cors import CORSMiddleware
|
||||
|
||||
from app.api.v1 import router as api_v1_router
|
||||
from app.db.bootstrap import bootstrap_dev_data, create_all_tables
|
||||
from app.db.session import SessionLocal
|
||||
from app.settings import settings
|
||||
|
||||
|
||||
@asynccontextmanager
|
||||
async def lifespan(app: FastAPI):
|
||||
if settings.app_env == "dev" and settings.dev_bootstrap_enabled:
|
||||
create_all_tables()
|
||||
with SessionLocal() as session:
|
||||
bootstrap_dev_data(session, api_key_secret=settings.dev_bootstrap_api_key)
|
||||
yield
|
||||
|
||||
|
||||
app = FastAPI(title="MultiMailer Server", version="0.2.0", lifespan=lifespan)
|
||||
|
||||
origins = [item.strip() for item in settings.cors_origins.split(",") if item.strip()]
|
||||
if origins:
|
||||
app.add_middleware(
|
||||
CORSMiddleware,
|
||||
allow_origins=["*"] if "*" in origins else origins,
|
||||
allow_credentials=True,
|
||||
allow_methods=["*"],
|
||||
allow_headers=["*"],
|
||||
)
|
||||
|
||||
app.include_router(api_v1_router)
|
||||
|
||||
|
||||
@app.get("/health")
|
||||
def health():
|
||||
return {
|
||||
"status": "ok",
|
||||
"env": settings.app_env,
|
||||
"api": {"version": "v1", "auth": "api-key"},
|
||||
"storage": {
|
||||
"endpoint": settings.s3_endpoint_url,
|
||||
"bucket": settings.s3_bucket,
|
||||
"region": settings.s3_region,
|
||||
},
|
||||
}
|
||||
Reference in New Issue
Block a user