Files
g0v0-server/app/router/private/username.py
2025-08-12 10:21:26 +00:00

46 lines
1.3 KiB
Python

from __future__ import annotations
from app.database.lazer_user import User
from app.dependencies.database import get_db
from .router import router
from fastapi import Body, Depends, HTTPException
from sqlmodel import select
from sqlmodel.ext.asyncio.session import AsyncSession
@router.post(
"/rename",
name="修改用户名",
)
async def user_rename(
user_id: int = Body(..., description="要修改名称的用户 ID"),
new_name: str = Body(..., description="新的用户名"),
session: AsyncSession = Depends(get_db),
# currentUser: User = Depends(get_current_user)
):
"""修改用户名
为指定用户修改用户名,并将原用户名添加到历史用户名列表中
错误情况:
- 404: 找不到指定用户
- 409: 新用户名已被占用
返回:
- 成功: None
"""
current_user = (await session.exec(select(User).where(User.id == user_id))).first()
if current_user is None:
raise HTTPException(404, "User not found")
samename_user = (
await session.exec(select(User).where(User.username == new_name))
).first()
if samename_user:
raise HTTPException(409, "Username Exisits")
current_user.previous_usernames.append(current_user.username)
current_user.username = new_name
await session.commit()
return None