코딩캠프/AI 웹개발 취업캠프

[AI 웹개발 취업캠프] 64Day - 프로젝트 15일차

고랑E 2023. 10. 20. 22:51
728x90

오늘은 정보 수정을 해야겠다

 

정보 수정할 모든 데이터는 닉네임, 패스워드이고 이 2개만 하면되서 비교적으로 간단한거같다..아마두 ㅋㅋ

 

main.py

#상단 부분에 update_user_info

from BE.crud import create_user, get_user, verify_password, get_user_info, update_user_info
@app.patch("/users/{userId}")
def update_user(userId: int, db: Session = Depends(get_db)):
    update_user_info(db, userId)
    return JSONResponse(content={"message": "정보가 수정되었습니다."}, status_code=200)

 

 

crud.py

def update_user_info(db: Session, userId: int):
    user_info_db = db.query(User).filter(User.id == userId).first()
    if not user_info_db:
        return None

    if update_user_info.nickname is not None:
        user_info_db.nickname = update_user_info.nickname

    if update_user_info.password is not None:
        user_info_db.password = bcrypt.hashpw(update_user_info.password.encode('utf-8'), bcrypt.gensalt()).decode('utf-8')
    
    db.commit()
    db.refresh(user_info_db)
    return user_info_db

 

라고 정신없이 적었고 서버를 실행하고 해봤다

 

띠옹??

 

아.. ㅋㅋㅋ 바디데이터를 안보내줬구낰ㅋㅋ 

 

 

schemas.py

class UserUpdate(BaseModel):
    nickname: str = None
    password: str = None

를 추가 하고

 

main.py

# 상단에 UserUpdate 추가

from BE.schemas import UserCreate, UserLogin, UserUpdate
#update_user 보내주게 수정

@app.patch("/users/{userId}")
def update_user(update_user: UserUpdate, userId: int, db: Session = Depends(get_db)):
    update_user_info(db, userId, update_user)
    return JSONResponse(content={"message": "정보가 수정되었습니다."}, status_code=200)

 

crud.py

 

여기도 수정해줬다 ㅜㅜ ㅋㅋ

def update_user_info(db: Session, userId: int, update_user: UserUpdate):
    user_info_db = db.query(User).filter(User.id == userId).first()
    if not user_info_db:
        return None

    if update_user.nickname is not None:
        user_info_db.nickname = update_user.nickname

    if update_user.password is not None:
        user_info_db.password = bcrypt.hashpw(update_user.password.encode('utf-8'), bcrypt.gensalt()).decode('utf-8')
    
    db.commit()
    db.refresh(user_info_db)
    return user_info_db

 

 

아이 너무 잘 돼~

 

 

 

 

 

본 후기는 정보통신산업진흥원(NIPA)에서 주관하는 <AI 서비스완성! AI+웹개발 취업캠프 - 프론트엔드&백엔드> 과정 학습/프로젝트/과제 기록으로 작성되었습니다.