20 lines
611 B
Python
20 lines
611 B
Python
from typing import Iterable, Optional
|
|
|
|
from sqlalchemy import select
|
|
from sqlalchemy.ext.asyncio import AsyncSession
|
|
|
|
from .base import BaseRepository
|
|
from ..models import Prompt
|
|
|
|
|
|
class PromptRepository(BaseRepository[Prompt]):
|
|
model = Prompt
|
|
|
|
async def get_by_name(self, name: str) -> Optional[Prompt]:
|
|
result = await self.session.execute(select(Prompt).where(Prompt.name == name))
|
|
return result.scalars().first()
|
|
|
|
async def list_all(self) -> Iterable[Prompt]:
|
|
result = await self.session.execute(select(Prompt).order_by(Prompt.name))
|
|
return result.scalars().all()
|