def add_profile_pic(*, image: Image = Depends(upload_image), db: Session = Depends(database.get_db), current_user: User = Depends( auth.get_current_active_user)): user = user_repo.get(db, id=current_user.id) user_repo.add_profile_pic(db, db_obj=user, image=image) return {"url": image.url}
def test_get_user(db: Session) -> None: password = random_lower_string() username = random_email() user_in = UserCreate(email=username, password=password, is_superuser=True) user = user_repo.create(db, obj_in=user_in) user_2 = user_repo.get(db, id=user.id) assert user_2 assert user.email == user_2.email assert jsonable_encoder(user) == jsonable_encoder(user_2)
def test_update_user(db: Session) -> None: password = random_lower_string() email = random_email() user_in = UserCreate(email=email, password=password, is_superuser=True) user = user_repo.create(db, obj_in=user_in) new_password = random_lower_string() user_in_update = UserUpdate(password=new_password, is_superuser=True) user_repo.update(db, db_obj=user, obj_in=user_in_update) user_2 = user_repo.get(db, id=user.id) assert user_2 assert user.email == user_2.email assert verify_password(new_password, user_2.hashed_password)
def get_current_user(db: Session = Depends(get_db), token: str = Depends(reusable_oauth2)) -> User: try: payload = jwt.decode(token, settings.SECRET_KEY, algorithms=[security.ALGORITHM]) token_data = TokenPayload(**payload) except (jwt.JWTError, ValidationError): raise HTTPException( status_code=status.HTTP_403_FORBIDDEN, detail="Could not validate credentials", ) user = user_repo.get(db, id=token_data.sub) if not user: raise HTTPException(status_code=404, detail="User not found") return user
def get_user(usr_id: int, db: Session = Depends(database.get_db)): user = user_repo.get(db, id=usr_id) if not user: raise HTTPException(status_code=status.HTTP_404_NOT_FOUND, detail="user not found") return user