feat(user): 新增用户信息上传接口

This commit is contained in:
xingc
2025-04-22 18:27:34 +08:00
parent b843e02039
commit ad83a47e6b
2 changed files with 22 additions and 1 deletions

View File

@@ -18,6 +18,7 @@ from core.routers.auth.schema import LoginUser
from core.routers.auth.services import get_current_user_form_http
from . import schema
from .schema import UpdateUserIn
user_router = APIRouter(prefix='/user', tags=['用户模块'])
@@ -100,6 +101,20 @@ async def get_all_followers(
}
@user_router.post('/me/update', summary='更新用户信息', response_model=base_schema.BaseResponse[schema.User])
async def update_me(
payload: schema.UpdateUserIn,
login_user: LoginUser = Depends(get_current_user_form_http),
db_session: AsyncSession = Depends(get_async_session)
):
db_crud = CRUD(db_session, User)
result = await db_crud.update(payload.model_dump(exclude_none=True), filters={'user_id': login_user.user_id})
if result is None:
raise HTTPException(status_code=status.HTTP_400_BAD_REQUEST, detail='无法操作')
return {'data': result}
@user_router.post('/follow/{user_id}/', summary='新增/取消关注用户', response_model=base_schema.BaseResponse)
async def follow_user(
user_id: int,

View File

@@ -8,7 +8,7 @@ from datetime import date
from typing import Optional
from fastapi.openapi.models import Schema
from pydantic import BaseModel
from pydantic import BaseModel, constr
class User(BaseModel):
@@ -38,3 +38,9 @@ class UserFollows(BaseModel):
user_id: int
gender: Optional[int] = None
avatar_url: Optional[int] = None
class UpdateUserIn(BaseModel):
nickname: Optional[constr(max_length=20)] = None
gender: Optional[int] = None
avatar_url: Optional[constr(pattern='^http[a-zA-Z0-9:/\.]+')] = None