setu / Backend /main.py
khagu's picture
chore: finally untrack large database files
3998131
from fastapi import FastAPI , Request
from fastapi.middleware.cors import CORSMiddleware
from motor.motor_asyncio import AsyncIOMotorClient
from core.config import settings
from db.mongodb import db_instance
from routes import auth
from contextlib import asynccontextmanager
from fastapi.exceptions import RequestValidationError
from fastapi.responses import JSONResponse
## CORS Setup
@asynccontextmanager
async def lifespan(app: FastAPI):
## Starting logic
db_instance.client = AsyncIOMotorClient(settings.mongodb_url)
print("Succesfully Connected to MongoDB")
yield
db_instance.client.close()
print("MongoDB connection closed")
app = FastAPI(title="FastAPI Mongo Auth",lifespan=lifespan)
app.add_middleware(
CORSMiddleware,
allow_origins=["*"],
allow_credentials= True,
allow_methods = ["*"],
allow_headers = ["*"],
)
app.include_router(auth.router)
@app.exception_handler(RequestValidationError)
async def validation_exception_handler(request: Request, exc: RequestValidationError):
print("❌ Validation Error:")
print(exc.errors()) # This will print in your terminal
print("📦 Request body:", await request.body())
return JSONResponse(
status_code=422,
content={"detail": exc.errors()}
)