diff --git a/api/api_v1/endpoints/project.py b/api/api_v1/endpoints/project.py index ec48932..4f8a331 100644 --- a/api/api_v1/endpoints/project.py +++ b/api/api_v1/endpoints/project.py @@ -76,16 +76,14 @@ async def read_project(request: Request, @router.get("/detail") -async def read_project(request: Request, +async def detail(request: Request, game: str, db: AsyncIOMotorDatabase = Depends(get_database), ck: CKDrive = Depends(get_ck_db), current_user: schemas.UserDB = Depends(deps.get_current_user) ): """查看项目信息""" - res = await crud.project.read_project(db, username=request.user.username, game=game) - if res: - res = res[0] + res = await crud.project.find_one(db, {'game': game}) event_count = await ck.count(game, 'event') user_count = await ck.count(game, 'user_view') event_type_count = await ck.distinct_count(game, 'event', '#event_name') @@ -204,6 +202,31 @@ async def members(request: Request, # return schemas.Msg(code=0, msg='ok') +@router.post("/clean") +async def read_kanban( + data_in: schemas.ProjectClean, + db: AsyncIOMotorDatabase = Depends(get_database), + current_user: schemas.UserDB = Depends(deps.get_current_user) +): + """ + 清理项目 删除项目所有内容 + :param data_in: + :param db: + :param current_user: + :return: + """ + # 删除 报表 + await crud.report.delete(db, {'project_id': data_in.project_id}) + # 删除 空间 + await crud.space.delete(db, {'project_id': data_in.project_id}) + # 删除 文件夹 + await crud.folder.delete(db, {'project_id': data_in.project_id}) + # 删除 看板 + await crud.dashboard.delete(db, {'project_id': data_in.project_id}) + + return schemas.Msg(code=0, msg='ok') + + @router.post("/kanban") async def read_kanban( data_in: schemas.ProjectKanban, diff --git a/crud/crud_report.py b/crud/crud_report.py index dad1e3f..cb5c2a2 100644 --- a/crud/crud_report.py +++ b/crud/crud_report.py @@ -28,4 +28,6 @@ class CRUDReport(CRUDBase): return res + + report = CRUDReport('report') diff --git a/schemas/project.py b/schemas/project.py index 17a83e4..41845d4 100644 --- a/schemas/project.py +++ b/schemas/project.py @@ -32,6 +32,10 @@ class ProjectDetail(BaseModel): project_id: str +class ProjectClean(BaseModel): + project_id: str + + class ProjectRename(BaseModel): project_id: str rename: str