|
from fastapi import FastAPI, Request
|
|
from starlette.middleware.cors import CORSMiddleware
|
|
from fastapi.responses import JSONResponse
|
|
from api.logger import setup_logger
|
|
from api.routes import router
|
|
|
|
logger = setup_logger(__name__)
|
|
|
|
def create_app():
|
|
app = FastAPI()
|
|
|
|
|
|
app.add_middleware(
|
|
CORSMiddleware,
|
|
allow_origins=["*"],
|
|
allow_credentials=True,
|
|
allow_methods=["*"],
|
|
allow_headers=["*"],
|
|
)
|
|
|
|
|
|
app.include_router(router)
|
|
|
|
@app.exception_handler(Exception)
|
|
async def global_exception_handler(request: Request, exc: Exception):
|
|
logger.error(f"An error occurred: {str(exc)}")
|
|
return JSONResponse(
|
|
status_code=500,
|
|
content={"message": "An internal server error occurred."},
|
|
)
|
|
|
|
return app
|
|
|
|
app = create_app()
|
|
|