From 563298e1ede650496ef6699b2bc1e2bf504f92c6 Mon Sep 17 00:00:00 2001 From: Miyamizu-MitsuhaSang <2510681107@qq.com> Date: Thu, 4 Sep 2025 14:17:53 +0800 Subject: [PATCH] =?UTF-8?q?user.py:=20=E4=BF=AE=E5=A4=8D=E6=B3=A8=E5=86=8C?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3/register?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/users.py | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/app/api/users.py b/app/api/users.py index 930605d..8d26974 100644 --- a/app/api/users.py +++ b/app/api/users.py @@ -14,7 +14,7 @@ from app.schemas.user_schemas import UserIn, UserOut, UpdateUserRequest, UserLog users_router = APIRouter() -@users_router.post("/register", response_model=UserOut) +@users_router.post("/register") async def register(user_in: UserIn): await validate_username(user_in.username) 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) - new_user = await User.create(name=user_in.username, - pwd_hashed=hashed_pwd, - language=lang_pref, # 后续检查参数是否正确 - portrait=user_in.portrait) + new_user, created = await User.get_or_create( + name=user_in.username, + defaults={ + "pwd_hashed": hashed_pwd, + "language": lang_pref, + "portrait": user_in.portrait,}, + ) + if not created: + raise HTTPException(status_code=400, detail="Username already exists") return { "id": new_user.id, "message": "register success", @@ -56,6 +61,7 @@ async def user_modification(updated_user: UpdateUserRequest, current_user: User if updated_user.new_password: current_user.password_hash = hash_password(updated_user.new_password) + @users_router.post("/login") async def user_login(user_in: UserLoginRequest): user = await User.get_or_none(name=user_in.name)