데이터베이스에서 하나의 작업 단위, 여러 개의 작업이 하나로 묶여 모두 성공하거나, 모두 실패해야 하는 원칙을 가짐.
def signup(
self, db: Session, login_id: str, pwd: str, name: str, email: str
) -> User | None:
try:
hashed_pwd = self.get_hashed_pwd(pwd)
user = User(
login_id=login_id,
pwd=hashed_pwd,
name=name,
balance=BALANCE,
email=email,
)
db.add(user) # db에 변동사항 추가
db.commit() # mysql에 변경사항 적용
db.refresh(user) # 변경된 user를 return 해주기 위해서, user 새로고침
return user
except Exception as e:
print(e)
return None
else:
new_stock = MyStocks(
login_id=user.login_id,
stock_code=req.stock_code,
quantity=req.quantity,
access_token=user.access_token,
avg_price=req.stock_price / req.quantity,
)
db.add(new_stock)
db.commit()
return {"msg": "구매 완료"}