26 lines
688 B
Python
26 lines
688 B
Python
from motor.motor_asyncio import AsyncIOMotorClient, AsyncIOMotorDatabase
|
|
|
|
from app.config import settings
|
|
|
|
mongo_client: AsyncIOMotorClient | None = None
|
|
mongo_db: AsyncIOMotorDatabase | None = None
|
|
|
|
|
|
async def connect_mongo() -> None:
|
|
global mongo_client, mongo_db
|
|
mongo_client = AsyncIOMotorClient(settings.mongodb_url)
|
|
mongo_db = mongo_client[settings.mongodb_db]
|
|
|
|
|
|
async def close_mongo() -> None:
|
|
global mongo_client, mongo_db
|
|
if mongo_client:
|
|
mongo_client.close()
|
|
mongo_client = None
|
|
mongo_db = None
|
|
|
|
|
|
def get_mongo_db() -> AsyncIOMotorDatabase:
|
|
if mongo_db is None:
|
|
raise RuntimeError("MongoDB is not connected")
|
|
return mongo_db
|