From 311d30269ea11f355d085a115ca33e401b0c444b Mon Sep 17 00:00:00 2001 From: wuaho Date: Thu, 29 Jul 2021 20:24:56 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BC=96=E8=BE=91=E6=8A=A5=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/api_v1/endpoints/dashboard.py | 16 ++++++++++++++++ crud/base.py | 3 ++- schemas/dashboard.py | 21 +++++++++++++-------- 3 files changed, 31 insertions(+), 9 deletions(-) diff --git a/api/api_v1/endpoints/dashboard.py b/api/api_v1/endpoints/dashboard.py index d8566c8..06e88bc 100644 --- a/api/api_v1/endpoints/dashboard.py +++ b/api/api_v1/endpoints/dashboard.py @@ -25,6 +25,22 @@ async def create( return schemas.Msg(code=0, msg='ok', data='创建成功') +@router.post('/edit_show_report') +async def edit_show_report( + request: Request, + data_in: schemas.EditShowReport, + db: AsyncIOMotorDatabase = Depends(get_database), + current_user: schemas.UserDB = Depends(deps.get_current_user) +) -> schemas.Msg: + report_id = data_in.config.report_id + res = await crud.dashboard.update_one(db, {'_id': data_in.dashboard_id, 'reports.report_id': report_id}, + {'$set': {f'reports.$.{k}': v for k, v in data_in.config.dict().items()}}) + if res.modified_count == 1: + return schemas.Msg(code=0, msg='ok', data=data_in.config) + elif res.modified_count == 0: + return schemas.Msg(code=-1, msg='没有修改', data=dict()) + + @router.post("/delete") async def delete( request: Request, diff --git a/crud/base.py b/crud/base.py index 4669680..310db8a 100644 --- a/crud/base.py +++ b/crud/base.py @@ -39,7 +39,8 @@ class CRUDBase: return await db[self.coll_name].delete_many(filter, collation, hint, session) async def update_one(self, db, filter, update, upsert=False): - return await db[self.coll_name].update_one(filter, update, upsert) + res = await db[self.coll_name].update_one(filter, update, upsert) + return res async def update_many(self, db, filter, update, upsert=False): return await db[self.coll_name].update_many(filter, update, upsert) diff --git a/schemas/dashboard.py b/schemas/dashboard.py index 6f6431d..3467af0 100644 --- a/schemas/dashboard.py +++ b/schemas/dashboard.py @@ -28,6 +28,19 @@ class DashboardDelete(BaseModel): ids: List[str] +class Report(BaseModel): + name: str + report_id: str + graph_type: str + model: str + graph_size: str + + +class EditShowReport(BaseModel): + dashboard_id: str + config: Report + + class Category(str, Enum): project = 'kanban' space = 'space' @@ -44,14 +57,6 @@ class DashboardCopy(BaseModel): dest_project_id: str -class Report(BaseModel): - name: str - report_id: str - graph_type: str - model: str - graph_size: str - - class AddReport(DBBase): report_ids: List[Report]