105 lines
3.9 KiB
Python
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')
|