| from typing import Optional |
| from motor.motor_asyncio import AsyncIOMotorClient, AsyncIOMotorDatabase, AsyncIOMotorCollection |
| from . import __init__ |
| from ..config.settings import MONGODB_URL, DATABASE_NAME, COLLECTION_NAME |
|
|
| _client: Optional[AsyncIOMotorClient] = None |
| _db: Optional[AsyncIOMotorDatabase] = None |
| _collection: Optional[AsyncIOMotorCollection] = None |
|
|
| async def connect_to_mongo() -> None: |
| global _client, _db, _collection |
| _client = AsyncIOMotorClient(MONGODB_URL) |
| _db = _client[DATABASE_NAME] |
| _collection = _db[COLLECTION_NAME] |
|
|
| async def close_mongo_connection() -> None: |
| global _client |
| if _client: |
| _client.close() |
|
|
| def get_db() -> AsyncIOMotorDatabase: |
| assert _db is not None, "DB not initialized. Call connect_to_mongo() first." |
| return _db |
|
|
| def get_collection() -> AsyncIOMotorCollection: |
| assert _collection is not None, "Collection not initialized. Call connect_to_mongo() first." |
| return _collection |
|
|