64 lines
2.4 KiB
Python
64 lines
2.4 KiB
Python
from contextlib import asynccontextmanager
|
|
|
|
from fastapi import FastAPI
|
|
from fastapi.middleware.cors import CORSMiddleware
|
|
from starlette.middleware.trustedhost import TrustedHostMiddleware
|
|
|
|
from api.config.settings import get_settings
|
|
from api.database.mongodb import db
|
|
from api.middleware.security_headers import SecurityHeadersMiddleware
|
|
|
|
# Routers
|
|
from api.routers.test_mongo import router as test_mongo_router
|
|
from api.routers.value_function import router as value_router
|
|
from api.routers.docmf_build import router as docmf_build_router
|
|
from api.routers.docmf_evaluate import router as docmf_eval_router
|
|
from api.routers.docmf_simple_validation import router as simple_validation_router
|
|
from api.routers.docmf_validation import router as validation_router
|
|
from api.routers.auth import router as auth_router
|
|
from api.routers.history import router as history_router
|
|
from api.routers.test_mongo import router as test_mongo_router
|
|
from api.routers.docit2mf_build import router as docit2mf_router
|
|
from api.routers.google_auth import router as google_auth_router
|
|
|
|
@asynccontextmanager
|
|
async def lifespan(app: FastAPI):
|
|
yield
|
|
|
|
settings = get_settings()
|
|
|
|
app = FastAPI(lifespan=lifespan)
|
|
|
|
app.add_middleware(SecurityHeadersMiddleware, settings=settings)
|
|
|
|
if settings.is_production:
|
|
app.add_middleware(
|
|
TrustedHostMiddleware,
|
|
allowed_hosts=settings.trusted_hosts,
|
|
)
|
|
|
|
cors_origins = settings.cors_allowed_origins
|
|
cors_kwargs = {
|
|
"allow_methods": ["*"],
|
|
"allow_headers": ["*"],
|
|
}
|
|
if cors_origins == ["*"]:
|
|
cors_kwargs["allow_origins"] = ["*"]
|
|
cors_kwargs["allow_credentials"] = False
|
|
else:
|
|
cors_kwargs["allow_origins"] = cors_origins
|
|
cors_kwargs["allow_credentials"] = True
|
|
|
|
app.add_middleware(CORSMiddleware, **cors_kwargs)
|
|
|
|
app.include_router(test_mongo_router, prefix="/api")
|
|
app.include_router(value_router, prefix="/api/criteria/doc")
|
|
app.include_router(docmf_build_router, prefix="/api/criteria/doc-mf")
|
|
app.include_router(docmf_eval_router, prefix="/api/criteria/doc-mf")
|
|
app.include_router(simple_validation_router, prefix="/api/criteria/doc-mf")
|
|
app.include_router(validation_router, prefix="/api/criteria/doc-mf")
|
|
app.include_router(test_mongo_router, prefix="/api")
|
|
app.include_router(auth_router, prefix="/api")
|
|
app.include_router(history_router, prefix="/api")
|
|
app.include_router(docit2mf_router, prefix="/api")
|
|
app.include_router(google_auth_router, prefix="/api") |