# api/app.py from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware from .routes import router as main_router from .logger import setup_logger from fastapi.responses import JSONResponse from fastapi import Request logger = setup_logger(__name__) def create_app(): app = FastAPI( title="NiansuhAI API Gateway", docs_url=None, # Disable Swagger UI redoc_url=None, # Disable ReDoc openapi_url=None, # Disable OpenAPI schema ) # CORS settings app.add_middleware( CORSMiddleware, allow_origins=["*"], # Adjust as needed for security allow_credentials=True, allow_methods=["*"], allow_headers=["*"], ) # Include main routes (which now include GizAI routes) app.include_router(main_router) # Global exception handler for better error reporting @app.exception_handler(Exception) async def global_exception_handler(request: Request, exc: Exception): logger.error(f"An error occurred: {str(exc)}", exc_info=True) return JSONResponse( status_code=500, content={"message": "An internal server error occurred."}, ) return app