TIF_E41253310/Backend/app/repositories/user.py

20 lines
778 B
Python

from typing import Optional
from sqlalchemy.orm import Session
from app.models.user import User
from app.repositories.base import BaseRepository
class UserRepository(BaseRepository[User]):
"""
User repository containing operations specific to the User entity.
"""
def get_by_username(self, db: Session, username: str) -> Optional[User]:
"""Find a user by their username."""
return db.query(self.model).filter(self.model.username == username).first()
def get_by_email(self, db: Session, email: str) -> Optional[User]:
"""Find a user by their email address."""
return db.query(self.model).filter(self.model.email == email).first()
# Instantiate user repository to be imported elsewhere
user_repository = UserRepository(User)