parent
a18bd82654
commit
563298e1ed
|
|
@ -14,7 +14,7 @@ from app.schemas.user_schemas import UserIn, UserOut, UpdateUserRequest, UserLog
|
||||||
users_router = APIRouter()
|
users_router = APIRouter()
|
||||||
|
|
||||||
|
|
||||||
@users_router.post("/register", response_model=UserOut)
|
@users_router.post("/register")
|
||||||
async def register(user_in: UserIn):
|
async def register(user_in: UserIn):
|
||||||
await validate_username(user_in.username)
|
await validate_username(user_in.username)
|
||||||
await validate_password(user_in.password)
|
await validate_password(user_in.password)
|
||||||
|
|
@ -23,10 +23,15 @@ async def register(user_in: UserIn):
|
||||||
|
|
||||||
lang_pref = await Language.get(code=user_in.lang_pref)
|
lang_pref = await Language.get(code=user_in.lang_pref)
|
||||||
|
|
||||||
new_user = await User.create(name=user_in.username,
|
new_user, created = await User.get_or_create(
|
||||||
pwd_hashed=hashed_pwd,
|
name=user_in.username,
|
||||||
language=lang_pref, # 后续检查参数是否正确
|
defaults={
|
||||||
portrait=user_in.portrait)
|
"pwd_hashed": hashed_pwd,
|
||||||
|
"language": lang_pref,
|
||||||
|
"portrait": user_in.portrait,},
|
||||||
|
)
|
||||||
|
if not created:
|
||||||
|
raise HTTPException(status_code=400, detail="Username already exists")
|
||||||
return {
|
return {
|
||||||
"id": new_user.id,
|
"id": new_user.id,
|
||||||
"message": "register success",
|
"message": "register success",
|
||||||
|
|
@ -56,6 +61,7 @@ async def user_modification(updated_user: UpdateUserRequest, current_user: User
|
||||||
if updated_user.new_password:
|
if updated_user.new_password:
|
||||||
current_user.password_hash = hash_password(updated_user.new_password)
|
current_user.password_hash = hash_password(updated_user.new_password)
|
||||||
|
|
||||||
|
|
||||||
@users_router.post("/login")
|
@users_router.post("/login")
|
||||||
async def user_login(user_in: UserLoginRequest):
|
async def user_login(user_in: UserLoginRequest):
|
||||||
user = await User.get_or_none(name=user_in.name)
|
user = await User.get_or_none(name=user_in.name)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue