Files
sdb2-backend/app/repositories/user_oauth.py
JSC 6068599a47
All checks were successful
Backend CI / lint (push) Successful in 9m49s
Backend CI / test (push) Successful in 6m15s
Refactor test cases for improved readability and consistency
- Adjusted function signatures in various test files to enhance clarity by aligning parameters.
- Updated patching syntax for better readability across test cases.
- Improved formatting and spacing in test assertions and mock setups.
- Ensured consistent use of async/await patterns in async test functions.
- Enhanced comments for better understanding of test intentions.
2025-08-01 20:53:30 +02:00

62 lines
1.9 KiB
Python

"""Repository for user OAuth operations."""
from sqlmodel import select
from sqlmodel.ext.asyncio.session import AsyncSession
from app.core.logging import get_logger
from app.models.user_oauth import UserOauth
from app.repositories.base import BaseRepository
logger = get_logger(__name__)
class UserOauthRepository(BaseRepository[UserOauth]):
"""Repository for user OAuth operations."""
def __init__(self, session: AsyncSession) -> None:
"""Initialize repository with database session."""
super().__init__(UserOauth, session)
async def get_by_provider_user_id(
self,
provider: str,
provider_user_id: str,
) -> UserOauth | None:
"""Get user OAuth by provider and provider user ID."""
try:
statement = select(UserOauth).where(
UserOauth.provider == provider,
UserOauth.provider_user_id == provider_user_id,
)
result = await self.session.exec(statement)
return result.first()
except Exception:
logger.exception(
"Failed to get user OAuth by provider user ID: %s:%s",
provider,
provider_user_id,
)
raise
async def get_by_user_id_and_provider(
self,
user_id: int,
provider: str,
) -> UserOauth | None:
"""Get user OAuth by user ID and provider."""
try:
statement = select(UserOauth).where(
UserOauth.user_id == user_id,
UserOauth.provider == provider,
)
result = await self.session.exec(statement)
except Exception:
logger.exception(
"Failed to get user OAuth by user ID and provider: %s:%s",
user_id,
provider,
)
raise
else:
return result.first()