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

1from sqlalchemy import select 

2from sqlalchemy.ext.asyncio import AsyncSession 

3 

4from app.models import User 

5 

6 

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() 

16 

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()