Spaces:
Sleeping
Sleeping
| from fastapi import HTTPException, status | |
| from motor.motor_asyncio import AsyncIOMotorClient, AsyncIOMotorDatabase | |
| from core.config import settings | |
| client: AsyncIOMotorClient | None = None | |
| db: AsyncIOMotorDatabase | None = None | |
| async def connect_to_mongo(): | |
| """Connect to MongoDB.""" | |
| global client, db | |
| client = AsyncIOMotorClient(settings.MONGODB_URL) | |
| db = client[settings.MONGODB_DB_NAME] | |
| # Force an actual round-trip so startup fails fast on bad URI/network/auth. | |
| await client.admin.command("ping") | |
| print("Connected to MongoDB") | |
| async def close_mongo_connection(): | |
| """Close MongoDB connection.""" | |
| global client | |
| if client: | |
| client.close() | |
| print("Closed MongoDB connection") | |
| def get_db() -> AsyncIOMotorDatabase: | |
| """Get database instance.""" | |
| if db is None: | |
| raise HTTPException( | |
| status_code=status.HTTP_503_SERVICE_UNAVAILABLE, | |
| detail="Database is not initialized", | |
| ) | |
| return db | |