File size: 980 Bytes
fade1d6 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
from typing import Optional
from motor.motor_asyncio import AsyncIOMotorClient, AsyncIOMotorDatabase, AsyncIOMotorCollection
from . import __init__ # noqa: F401
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
|