18 lines
507 B
Python
18 lines
507 B
Python
"""Role repository for database queries."""
|
|
|
|
from sqlalchemy import select
|
|
from sqlalchemy.ext.asyncio import AsyncSession
|
|
|
|
from models import Role
|
|
|
|
|
|
class RoleRepository:
|
|
"""Repository for role-related database queries."""
|
|
|
|
def __init__(self, db: AsyncSession):
|
|
self.db = db
|
|
|
|
async def get_by_name(self, name: str) -> Role | None:
|
|
"""Get a role by name."""
|
|
result = await self.db.execute(select(Role).where(Role.name == name))
|
|
return result.scalar_one_or_none()
|