Coverage for app / repositories / user_repository.py: 100%
14 statements
« prev ^ index » next coverage.py v7.13.5, created at 2026-03-21 22:41 +0300
« prev ^ index » next coverage.py v7.13.5, created at 2026-03-21 22:41 +0300
1from sqlalchemy import select
2from sqlalchemy.ext.asyncio import AsyncSession
4from app.models import User
7class UserRepository:
8 @staticmethod
9 async def get_by_id(db: AsyncSession, user_id: int) -> User | None:
10 """
11 Ищет пользователя с указанными идентификатором.
12 """
13 query = select(User).where(User.id == user_id)
14 result = await db.execute(query)
15 return result.scalar_one_or_none()
17 @staticmethod
18 async def get_by_email(db: AsyncSession, email: str) -> User | None:
19 """
20 Ищет пользователя по адресу электронной почты.
21 """
22 query = select(User).where(User.email == email)
23 result = await db.execute(query)
24 return result.scalar_one_or_none()