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')