19 lines
668 B
Python
19 lines
668 B
Python
from sqlalchemy import select
|
|
from sqlalchemy.ext.asyncio import AsyncSession
|
|
|
|
from app.model.platform import RequestIdempotency
|
|
|
|
|
|
class IdempotencyRepository:
|
|
def __init__(self, session: AsyncSession) -> None:
|
|
self.session = session
|
|
|
|
async def find(self, user_id: int, agent_type: str, key: str) -> RequestIdempotency | None:
|
|
statement = select(RequestIdempotency).where(
|
|
RequestIdempotency.user_id == user_id,
|
|
RequestIdempotency.agent_type == agent_type,
|
|
RequestIdempotency.idempotency_key == key,
|
|
)
|
|
result = await self.session.execute(statement)
|
|
return result.scalar_one_or_none()
|