Coverage for src / fastapi_authly / contrib / tortoise_pg.py: 48%
21 statements
« prev ^ index » next coverage.py v7.13.1, created at 2026-01-20 11:54 +0800
« prev ^ index » next coverage.py v7.13.1, created at 2026-01-20 11:54 +0800
1# fastapi_authly.contrib.tortoise_pg
2from typing import Any, Optional
4from tortoise.exceptions import DoesNotExist
5from ..interfaces import UserRepository
6from ..schemas.user import UserCreate, UserPublic
7from ..models.user import User
10class TortoiseUserRepository(UserRepository):
11 async def get_by_name(self, username: str) -> Optional[User]:
12 try:
13 return await User.get(username=username)
14 except DoesNotExist:
15 return None
17 async def get_by_id(self, user_id: str | int) -> Optional[User]:
18 try:
19 return await User.get(id=int(user_id))
20 except DoesNotExist:
21 return None
23 async def create_user(self, user: UserCreate) -> User:
24 obj = await User.create(
25 username=user.username,
26 email=user.email,
27 hashed_password=user.password,
28 is_active=user.is_active,
29 is_superuser=user.is_superuser,
30 )
31 return obj
33 async def to_public(self, user: User) -> UserPublic:
34 return UserPublic.model_validate(user)