92 lines
3.4 KiB
Python
92 lines
3.4 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, project_id)
|
|
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.label_id)
|
|
return schemas.Msg(code=0, msg='ok', data=data)
|
|
|
|
|
|
@router.post("/cluster_user_list")
|
|
async def cluster_user(request: Request,
|
|
data_in: schemas.UserLabelJson2Sql,
|
|
game: str,
|
|
# db: AsyncIOMotorDatabase = Depends(get_database),
|
|
current_user: schemas.UserDB = Depends(deps.get_current_user)
|
|
) -> schemas.Msg:
|
|
"""获取该标签用户"""
|
|
data = await service.get_cluster_user(game, data_in.label_id)
|
|
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.label_id)
|
|
return schemas.Msg(code=0, msg='ok', data=data)
|