locks/app/routers/acquire.py
emmatveev 31d98b67cf
All checks were successful
Deploy Dev / Build (pull_request) Successful in 6s
Deploy Dev / Push (pull_request) Successful in 8s
Deploy Dev / Deploy dev (pull_request) Successful in 11s
fix
2024-12-02 21:41:37 +03:00

21 lines
472 B
Python

import fastapi
import pydantic
from app.storage.mongo import locks
class RequestBody(pydantic.BaseModel):
name: str
ttl: int
router = fastapi.APIRouter()
@router.post('/api/v1/acquire', status_code=fastapi.status.HTTP_202_ACCEPTED, responses={'409': {'description': 'Conflict'}})
async def execute(body: RequestBody):
try:
await locks.acquire(body.name, ttl=body.ttl)
except locks.ConflictException:
raise fastapi.HTTPException(409)