From 7b0b77dcb398f748c87f6bd09e012cdce9b920ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=96=B9=20=E6=9F=8F?= Date: Tue, 10 Dec 2024 21:18:12 +0900 Subject: [PATCH] bugfix get_flows_by_appid again --- backend/app/db/cruddb/dbapp.py | 42 +++++++++++++++++++--------------- 1 file changed, 24 insertions(+), 18 deletions(-) diff --git a/backend/app/db/cruddb/dbapp.py b/backend/app/db/cruddb/dbapp.py index 91f33ff..cad3ab0 100644 --- a/backend/app/db/cruddb/dbapp.py +++ b/backend/app/db/cruddb/dbapp.py @@ -17,7 +17,7 @@ class dbflowhistory(crudbase): super().__init__(model=models.FlowHistory) def get_flows_by_appid_version(self,db: Session,domainurl:str,appid:str,version:int): - return db.execute(super().get_by_conditions({"domainurl":domainurl,"appid":appid, "version":version})).scalars().first() + return db.execute(super().get_by_conditions({"domainurl":domainurl,"appid":appid, "version":version})).scalars().all() dbflowhistory = dbflowhistory() @@ -29,10 +29,10 @@ class dbflow(crudbase): return None def get_flow_by_flowid(self,db: Session,flowid:str): - return db.execute(super().get_by_conditions({"flowid":flowid})).scalars().first() + return db.execute(super().get_by_conditions({"flowid":flowid})).scalars().all() def get_flows_by_appid(self,db: Session,domainurl:str,appid:str): - return db.execute(select(models.Flow).filter(and_(models.Flow.domainurl == domainurl,models.Flow.appid == appid))).scalars().first() + return db.execute(select(models.Flow).filter(and_(models.Flow.domainurl == domainurl,models.Flow.appid == appid))).scalars().all() def create_flow(self,db: Session, domainurl: str, flow: schemas.FlowIn,userid:int): @@ -142,18 +142,24 @@ class dbapp(crudbase): db_app.updateuserid = userid db.add(db_app) - flow = dbflow.get_flows_by_appid(db, domainurl, appid) - if not flow: - return None - flowhistory = dbflowhistory.get_flows_by_appid_version(db, domainurl, appid, version) - if not flowhistory: - return None - flow.flowid = flowhistory.flowid - flow.eventid=flowhistory.eventid - flow.name=flowhistory.name - flow.content=flowhistory.content - flow.updateuserid=userid - db.add(flow) + flows = dbflow.get_flows_by_appid(db, domainurl, appid) + for flow in flows: + db.delete(flow) + db.flush() + flowhistorys = dbflowhistory.get_flows_by_appid_version(db, domainurl, appid, version) + for flow in flowhistorys: + db_flow = models.Flow( + flowid = flow.flowid, + appid = flow.appid, + eventid = flow.eventid, + domainurl = flow.domainurl, + name = flow.name, + content = flow.content, + version = db_app.version, + updateuserid = userid, + createuserid = userid + ) + db.add(db_flow) db.commit() db.refresh(db_app) return db_app @@ -161,9 +167,9 @@ class dbapp(crudbase): def delete_app(self,db: Session, domainurl: str,appid: str ): db_app =self.get_app(db,domainurl,appid) if db_app: - db_flow = dbflow.get_flows_by_appid(db,domainurl,appid) - if db_flow: - db.delete(db_flow) + flows = dbflow.get_flows_by_appid(db,domainurl,appid) + for flow in flows: + db.delete(flow) db.delete(db_app) db.commit() return db_app