deepshield-api / backend /db /mongodb.py
vanshpatil16's picture
DeepShield API — 7-detector image deepfake detection
6be0044
Raw
History Blame Contribute Delete
1.01 kB
"""MongoDB connection and initialization."""
from motor.motor_asyncio import AsyncIOMotorClient, AsyncIOMotorDatabase
from backend.core.config import settings
_client: AsyncIOMotorClient | None = None
_db: AsyncIOMotorDatabase | None = None
async def connect_db() -> None:
"""Initialize MongoDB connection."""
global _client, _db
_client = AsyncIOMotorClient(settings.mongodb_url)
_db = _client[settings.mongodb_database]
# Create indexes
await _db.analysis_history.create_index("created_at")
await _db.analysis_history.create_index("verdict")
print(f"[OK] Connected to MongoDB: {settings.mongodb_database}")
async def close_db() -> None:
"""Close MongoDB connection."""
global _client
if _client:
_client.close()
print("[OK] Closed MongoDB connection")
def get_db() -> AsyncIOMotorDatabase:
"""Get database instance."""
if _db is None:
raise RuntimeError("Database not initialized. Call connect_db() first.")
return _db