feat(user): 新增用户信息上传接口
This commit is contained in:
@@ -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,
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user