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 core.routers.auth.services import get_current_user_form_http
|
||||||
|
|
||||||
from . import schema
|
from . import schema
|
||||||
|
from .schema import UpdateUserIn
|
||||||
|
|
||||||
user_router = APIRouter(prefix='/user', tags=['用户模块'])
|
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)
|
@user_router.post('/follow/{user_id}/', summary='新增/取消关注用户', response_model=base_schema.BaseResponse)
|
||||||
async def follow_user(
|
async def follow_user(
|
||||||
user_id: int,
|
user_id: int,
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ from datetime import date
|
|||||||
from typing import Optional
|
from typing import Optional
|
||||||
|
|
||||||
from fastapi.openapi.models import Schema
|
from fastapi.openapi.models import Schema
|
||||||
from pydantic import BaseModel
|
from pydantic import BaseModel, constr
|
||||||
|
|
||||||
|
|
||||||
class User(BaseModel):
|
class User(BaseModel):
|
||||||
@@ -38,3 +38,9 @@ class UserFollows(BaseModel):
|
|||||||
user_id: int
|
user_id: int
|
||||||
gender: Optional[int] = None
|
gender: Optional[int] = None
|
||||||
avatar_url: 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