编写后端
This commit is contained in:
50
backend/app/api/endpoints/users.py
Normal file
50
backend/app/api/endpoints/users.py
Normal file
@@ -0,0 +1,50 @@
|
||||
"""
|
||||
用户 API 接口
|
||||
"""
|
||||
from fastapi import APIRouter, HTTPException, status, Depends
|
||||
from app.schemas.user import UserPublic, UserUpdate
|
||||
from app.crud.user import user_crud
|
||||
from app.core.security import get_current_user_id
|
||||
from app.core.logger import app_logger
|
||||
|
||||
router = APIRouter(prefix="/users", tags=["用户"])
|
||||
|
||||
|
||||
@router.get("/me", response_model=UserPublic)
|
||||
async def get_current_user(user_id: str = Depends(get_current_user_id)):
|
||||
"""获取当前用户信息"""
|
||||
user = await user_crud.get_by_id(user_id)
|
||||
if not user:
|
||||
raise HTTPException(
|
||||
status_code=status.HTTP_404_NOT_FOUND,
|
||||
detail="用户不存在"
|
||||
)
|
||||
return user
|
||||
|
||||
|
||||
@router.put("/me", response_model=UserPublic)
|
||||
async def update_current_user(
|
||||
user_update: UserUpdate,
|
||||
user_id: str = Depends(get_current_user_id)
|
||||
):
|
||||
"""更新当前用户信息"""
|
||||
user = await user_crud.update(user_id, **user_update.model_dump(exclude_unset=True))
|
||||
if not user:
|
||||
raise HTTPException(
|
||||
status_code=status.HTTP_404_NOT_FOUND,
|
||||
detail="用户不存在"
|
||||
)
|
||||
app_logger.info(f"User updated: {user.username}")
|
||||
return user
|
||||
|
||||
|
||||
@router.get("/{user_id}", response_model=UserPublic)
|
||||
async def get_user(user_id: str):
|
||||
"""获取指定用户信息"""
|
||||
user = await user_crud.get_by_id(user_id)
|
||||
if not user:
|
||||
raise HTTPException(
|
||||
status_code=status.HTTP_404_NOT_FOUND,
|
||||
detail="用户不存在"
|
||||
)
|
||||
return user
|
||||
Reference in New Issue
Block a user