Automated Action 794d172f85 Add user authentication system with login, signup, and JWT tokens
- Added user model and schema definitions
- Implemented JWT token authentication
- Created endpoints for user registration and login
- Added secure password hashing with bcrypt
- Set up SQLite database with SQLAlchemy
- Created Alembic migrations
- Added user management endpoints
- Included health check endpoint

generated with BackendIM... (backend.im)
2025-05-11 22:51:17 +00:00

35 lines
1.2 KiB
Python

from sqlalchemy.orm import Session
from app.models.user import User
from app.schemas.user import UserCreate
from typing import Optional
class UserRepository:
def get_by_id(self, db: Session, user_id: int) -> Optional[User]:
return db.query(User).filter(User.id == user_id).first()
def get_by_email(self, db: Session, email: str) -> Optional[User]:
return db.query(User).filter(User.email == email).first()
def get_by_username(self, db: Session, username: str) -> Optional[User]:
return db.query(User).filter(User.username == username).first()
def create(self, db: Session, user_data: dict) -> User:
user = User(**user_data)
db.add(user)
db.commit()
db.refresh(user)
return user
def update(self, db: Session, user: User, user_data: dict) -> User:
for key, value in user_data.items():
setattr(user, key, value)
db.commit()
db.refresh(user)
return user
def delete(self, db: Session, user: User) -> None:
db.delete(user)
db.commit()
def list(self, db: Session, skip: int = 0, limit: int = 100):
return db.query(User).offset(skip).limit(limit).all()