locks/app/storage/mongo/locks.py
2024-12-02 20:10:32 +03:00

24 lines
500 B
Python

import bson
import datetime
import pydantic
from app.storage.mongo import database
from app.utils import time
from bson import codec_options
collection = database.get_collection("locks", codec_options=codec_options.CodecOptions(tz_aware=True))
class Lock(pydantic.BaseModel):
name: str
locked_until: pydantic.AwareDatetime
async def acquire(lock: Lock):
await collection.insert_one(lock.model_dump())
async def release(name: str):
await collection.delete_one({'name': name})