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