bugfix get_flows_by_appid again

This commit is contained in:
2024-12-10 21:18:12 +09:00
parent 64aa2de133
commit 7b0b77dcb3

View File

@@ -17,7 +17,7 @@ class dbflowhistory(crudbase):
super().__init__(model=models.FlowHistory) super().__init__(model=models.FlowHistory)
def get_flows_by_appid_version(self,db: Session,domainurl:str,appid:str,version:int): 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() dbflowhistory = dbflowhistory()
@@ -29,10 +29,10 @@ class dbflow(crudbase):
return None return None
def get_flow_by_flowid(self,db: Session,flowid:str): 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): 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): 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_app.updateuserid = userid
db.add(db_app) db.add(db_app)
flow = dbflow.get_flows_by_appid(db, domainurl, appid) flows = dbflow.get_flows_by_appid(db, domainurl, appid)
if not flow: for flow in flows:
return None db.delete(flow)
flowhistory = dbflowhistory.get_flows_by_appid_version(db, domainurl, appid, version) db.flush()
if not flowhistory: flowhistorys = dbflowhistory.get_flows_by_appid_version(db, domainurl, appid, version)
return None for flow in flowhistorys:
flow.flowid = flowhistory.flowid db_flow = models.Flow(
flow.eventid=flowhistory.eventid flowid = flow.flowid,
flow.name=flowhistory.name appid = flow.appid,
flow.content=flowhistory.content eventid = flow.eventid,
flow.updateuserid=userid domainurl = flow.domainurl,
db.add(flow) name = flow.name,
content = flow.content,
version = db_app.version,
updateuserid = userid,
createuserid = userid
)
db.add(db_flow)
db.commit() db.commit()
db.refresh(db_app) db.refresh(db_app)
return db_app return db_app
@@ -161,9 +167,9 @@ class dbapp(crudbase):
def delete_app(self,db: Session, domainurl: str,appid: str ): def delete_app(self,db: Session, domainurl: str,appid: str ):
db_app =self.get_app(db,domainurl,appid) db_app =self.get_app(db,domainurl,appid)
if db_app: if db_app:
db_flow = dbflow.get_flows_by_appid(db,domainurl,appid) flows = dbflow.get_flows_by_appid(db,domainurl,appid)
if db_flow: for flow in flows:
db.delete(db_flow) db.delete(flow)
db.delete(db_app) db.delete(db_app)
db.commit() db.commit()
return db_app return db_app