xbackend/api/api_v1/user_label/controller.py
2021-10-25 17:08:33 +08:00

105 lines
3.9 KiB
Python

from fastapi import APIRouter, Request, Depends
from motor.motor_asyncio import AsyncIOMotorDatabase
import schemas
from api import deps
from api.api_v1.user_label import service
from db import get_database
router = APIRouter()
@router.post("/save")
async def save(request: Request,
data_in: schemas.UserLabelSave,
game: str,
db: AsyncIOMotorDatabase = Depends(get_database),
current_user: schemas.UserDB = Depends(deps.get_current_user)
) -> schemas.Msg:
"""用户标签保存"""
await service.save(db, data_in, request.user.username, game)
return schemas.Msg(code=0, msg='ok')
@router.get("/list")
async def get_list(request: Request,
# project_id: str,
game: str,
db: AsyncIOMotorDatabase = Depends(get_database),
current_user: schemas.UserDB = Depends(deps.get_current_user)
) -> schemas.Msg:
"""读取项目保存的用户标签"""
data = await service.get_list(db, game)
return schemas.Msg(code=0, msg='ok', data=data)
@router.post("/detail")
async def get_detail(request: Request,
game: str,
data_id: schemas.UserLabelDetail,
db: AsyncIOMotorDatabase = Depends(get_database),
current_user: schemas.UserDB = Depends(deps.get_current_user)
) -> schemas.Msg:
"""读取用户标签详细"""
data = await service.get_detail(db, data_id.label_id)
return schemas.Msg(code=0, msg='ok', data=data)
@router.post("/del")
async def delete(request: Request,
game: str,
data_id: schemas.UserLabelDel,
db: AsyncIOMotorDatabase = Depends(get_database),
current_user: schemas.UserDB = Depends(deps.get_current_user)
) -> schemas.Msg:
"""删除用户标签"""
data = await service.delete(db, data_id.label_id)
return schemas.Msg(code=0, msg='ok', data=data)
@router.post("/sql")
async def sql(request: Request,
data_in: schemas.UserLabelJson2Sql,
game: str,
# db: AsyncIOMotorDatabase = Depends(get_database),
current_user: schemas.UserDB = Depends(deps.get_current_user)
) -> schemas.Msg:
"""自定义用户标签 sql测试"""
data = await service.json2sql(game, data_in.cluster_name)
return schemas.Msg(code=0, msg='ok', data=data)
@router.post("/cluster_user_list")
async def cluster_user_list(request: Request,
game: str,
data_id: schemas.ReadClusterUser,
# db: AsyncIOMotorDatabase = Depends(get_database),
current_user: schemas.UserDB = Depends(deps.get_current_user)
) -> schemas.Msg:
"""获取该标签用户列表"""
data = await service.get_cluster_user(game, data_id.cluster_name, data_id.page, data_id.limit)
return schemas.Msg(code=0, msg='ok', data=data)
@router.post("/cluster_user_count")
async def cluster_user_count(request: Request,
data_in: schemas.UserLabelJson2Sql,
game: str,
current_user: schemas.UserDB = Depends(deps.get_current_user)
) -> schemas.Msg:
"""获取该标签用户数量"""
data = await service.get_cluster_user_count(game, data_in.cluster_name)
return schemas.Msg(code=0, msg='ok', data=data)
@router.post("/copy")
async def copy(request: Request,
data_in: schemas.UserLabelCopy,
game: str,
current_user: schemas.UserDB = Depends(deps.get_current_user)
) -> schemas.Msg:
"""复制标签到其他项目"""
await service.copy_to(data_in.to_game, data_in.label_id_list, request.user.usernam)
return schemas.Msg(code=0, msg='ok')