users.py 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. from typing import List
  2. from passlib.hash import sha256_crypt
  3. from sqlalchemy.orm import Session
  4. from models.users import User as UserModel
  5. from schemas.users import User as UserSchema
  6. def get_user(db: Session, user_id: int) -> UserModel:
  7. return db.query(UserModel).filter(UserModel.id == user_id).first()
  8. def get_users(db: Session, skip: int = 0, limit: int = 100) -> List[UserModel]:
  9. return db.query(UserModel).offset(skip).limit(limit).all()
  10. def get_user_by_username(db: Session, username: str) -> UserModel:
  11. return db.query(UserModel).filter(UserModel.username == username).first()
  12. def get_user_by_token(db: Session, token: str) -> UserModel:
  13. return db.query(UserModel).filter(UserModel.token == token).first()
  14. def create_user(db: Session, user: UserSchema) -> UserModel:
  15. hashed_password = sha256_crypt.encrypt(user.password)
  16. db_user = UserModel(
  17. username=user.username,
  18. password=hashed_password,
  19. token=user.token,
  20. company_id=user.company_id,
  21. )
  22. db.add(db_user)
  23. db.commit()
  24. db.refresh(db_user)
  25. return db_user
  26. def update_password(db: Session, db_user: UserModel, new_password: str) -> UserModel:
  27. new_hashed_password = sha256_crypt.encrypt(new_password)
  28. db_user.password = new_hashed_password
  29. db.commit()
  30. db.refresh(db_user)
  31. return db_user