| import os
|
| from motor.motor_asyncio import AsyncIOMotorClient
|
| from dotenv import load_dotenv
|
|
|
| load_dotenv()
|
|
|
|
|
| MONGODB_URL = os.getenv("MONGODB_URL", "mongodb://localhost:27017")
|
| DATABASE_NAME = os.getenv("DATABASE_NAME", "fake_news_detector")
|
|
|
|
|
| client: AsyncIOMotorClient = None
|
| db = None
|
|
|
|
|
| async def connect_to_mongodb():
|
| """Connect to MongoDB database"""
|
| global client, db
|
| try:
|
| client = AsyncIOMotorClient(MONGODB_URL)
|
| db = client[DATABASE_NAME]
|
|
|
| await client.admin.command('ping')
|
| print(f"✅ Connected to MongoDB: {DATABASE_NAME}")
|
| except Exception as e:
|
| print(f"❌ Failed to connect to MongoDB: {e}")
|
| raise e
|
|
|
|
|
| async def close_mongodb_connection():
|
| """Close MongoDB connection"""
|
| global client
|
| if client:
|
| client.close()
|
| print("MongoDB connection closed")
|
|
|
|
|
| def get_database():
|
| """Get database instance"""
|
| return db
|
|
|
|
|
| def get_users_collection():
|
| """Get users collection"""
|
| return db["users"]
|
|
|
|
|
| def get_predictions_collection():
|
| """Get predictions history collection"""
|
| return db["predictions"]
|
|
|