bugfix edit_flow
This commit is contained in:
@@ -293,34 +293,41 @@ async def flow_create(
|
|||||||
|
|
||||||
|
|
||||||
@r.put(
|
@r.put(
|
||||||
"/flow/{flowid}", response_model=Flow|None, response_model_exclude_none=True
|
"/flow", tags=["App"],
|
||||||
|
response_model=ApiReturnModel[Flow|None],
|
||||||
|
response_model_exclude_none=True
|
||||||
)
|
)
|
||||||
async def flow_edit(
|
async def flow_edit(
|
||||||
request: Request,
|
request: Request,
|
||||||
flowid: str,
|
|
||||||
flow: FlowIn,
|
flow: FlowIn,
|
||||||
user=Depends(get_current_active_user),
|
user=Depends(get_current_active_user),
|
||||||
db=Depends(get_db),
|
db=Depends(get_db),
|
||||||
):
|
):
|
||||||
try:
|
try:
|
||||||
domain = domainService.get_default_domain(db, user.id) #get_activedomain(db, user.id)
|
domain = domainService.get_default_domain(db, user.id)
|
||||||
if not domain:
|
if not domain:
|
||||||
return None
|
return ApiReturnModel(data = None)
|
||||||
return edit_flow(db,domain.url, flow,user.id)
|
return ApiReturnModel(data = appService.edit_flow(db,domain.url, flow,user.id))
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
raise APIException('platform:flow',request.url._url,f"Error occurred while edit flow:",e)
|
raise APIException('platform:flow',request.url._url,f"Error occurred while edit flow:",e)
|
||||||
|
|
||||||
|
|
||||||
@r.delete(
|
@r.delete(
|
||||||
"/flow/{flowid}", response_model=Flow, response_model_exclude_none=True
|
"/flow/{flowid}", tags=["App"],
|
||||||
|
response_model=ApiReturnModel[Flow|None],
|
||||||
|
response_model_exclude_none=True
|
||||||
)
|
)
|
||||||
async def flow_delete(
|
async def flow_delete(
|
||||||
request: Request,
|
request: Request,
|
||||||
flowid: str,
|
flowid: str,
|
||||||
|
user=Depends(get_current_active_user),
|
||||||
db=Depends(get_db),
|
db=Depends(get_db),
|
||||||
):
|
):
|
||||||
try:
|
try:
|
||||||
return delete_flow(db, flowid)
|
domain = domainService.get_default_domain(db, user.id)
|
||||||
|
if not domain:
|
||||||
|
return ApiReturnModel(data = None)
|
||||||
|
return ApiReturnModel(data = appService.delete_flow(db, flowid))
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
raise APIException('platform:flow',request.url._url,f"Error occurred while delete flow:",e)
|
raise APIException('platform:flow',request.url._url,f"Error occurred while delete flow:",e)
|
||||||
|
|
||||||
|
|||||||
@@ -28,6 +28,9 @@ class dbflow(crudbase):
|
|||||||
def get_domain_apps(self):
|
def get_domain_apps(self):
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
def get_flow_by_flowid(self,db: Session,flowid:str):
|
||||||
|
return db.execute(super().get_by_conditions({"flowid":flowid})).scalars().first()
|
||||||
|
|
||||||
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().all()
|
return db.execute(select(models.Flow).filter(and_(models.Flow.domainurl == domainurl,models.Flow.appid == appid))).scalars().all()
|
||||||
|
|
||||||
@@ -58,7 +61,7 @@ class dbflow(crudbase):
|
|||||||
db.commit()
|
db.commit()
|
||||||
db.refresh(db_flow)
|
db.refresh(db_flow)
|
||||||
return db_flow
|
return db_flow
|
||||||
|
|
||||||
dbflow = dbflow()
|
dbflow = dbflow()
|
||||||
|
|
||||||
|
|
||||||
@@ -174,4 +177,25 @@ class dbapp(crudbase):
|
|||||||
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):
|
||||||
return dbflow.create_flow(db,domainurl,flow,userid)
|
return dbflow.create_flow(db,domainurl,flow,userid)
|
||||||
|
|
||||||
|
def edit_flow(self,db: Session, domainurl: str, flow: schemas.FlowIn,userid:int):
|
||||||
|
db_flow = dbflow.get_flow_by_flowid(db, flow.flowid)
|
||||||
|
if not db_flow:
|
||||||
|
return dbflow.create_flow(db,domainurl,flow,userid)
|
||||||
|
db_flow.appid =flow.appid
|
||||||
|
db_flow.eventid=flow.eventid
|
||||||
|
db_flow.domainurl=domainurl
|
||||||
|
db_flow.name=flow.name
|
||||||
|
db_flow.content=flow.content
|
||||||
|
db_flow.updateuserid = userid
|
||||||
|
db.add(db_flow)
|
||||||
|
db.commit()
|
||||||
|
db.refresh(db_flow)
|
||||||
|
return db_flow
|
||||||
|
|
||||||
|
def delete_flow(self,db: Session, flowid: str):
|
||||||
|
db_flow = dbflow.get_flow_by_flowid(db,flowid)
|
||||||
|
if db_flow:
|
||||||
|
return dbflow.delete(db,db_flow.id)
|
||||||
|
return None
|
||||||
|
|
||||||
appService = dbapp()
|
appService = dbapp()
|
||||||
@@ -1,3 +1,4 @@
|
|||||||
|
import logging
|
||||||
def test_create_flow(test_client,test_domain,test_app_id,login_user):
|
def test_create_flow(test_client,test_domain,test_app_id,login_user):
|
||||||
test_flow={
|
test_flow={
|
||||||
"flowid": "73e82bee-76a2-4347-a069-e21bf5e21111",
|
"flowid": "73e82bee-76a2-4347-a069-e21bf5e21111",
|
||||||
@@ -18,6 +19,34 @@ def test_create_flow(test_client,test_domain,test_app_id,login_user):
|
|||||||
assert data["data"]["eventid"] == test_flow["eventid"]
|
assert data["data"]["eventid"] == test_flow["eventid"]
|
||||||
assert data["data"]["content"] == test_flow["content"]
|
assert data["data"]["content"] == test_flow["content"]
|
||||||
|
|
||||||
|
def test_delete_flow(test_client,test_domain,test_app_id,login_user):
|
||||||
|
response = test_client.delete("/api/flow/73e82bee-76a2-4347-a069-e21bf5e21111",headers={"Authorization": "Bearer " + login_user})
|
||||||
|
data = response.json()
|
||||||
|
logging.error(data)
|
||||||
|
assert response.status_code == 200
|
||||||
|
assert "data" in data
|
||||||
|
assert data["data"] is not None
|
||||||
|
|
||||||
|
def test_edit_flow(test_client,test_domain,test_app_id,login_user):
|
||||||
|
test_flow={
|
||||||
|
"flowid": "73e82bee-76a2-4347-a069-e21bf5e21111",
|
||||||
|
"appid": test_app_id,
|
||||||
|
"appname": "test_app_new",
|
||||||
|
"eventid": "abc",
|
||||||
|
"name": "保存をクリックしたとき",
|
||||||
|
"content": ""
|
||||||
|
}
|
||||||
|
response = test_client.put("/api/flow", json=test_flow,headers={"Authorization": "Bearer " + login_user})
|
||||||
|
assert response.status_code == 200
|
||||||
|
data = response.json()
|
||||||
|
assert "data" in data
|
||||||
|
assert data["data"] is not None
|
||||||
|
assert data["data"]["domainurl"] == test_domain.url
|
||||||
|
assert data["data"]["flowid"] == test_flow["flowid"]
|
||||||
|
assert data["data"]["appid"] == test_flow["appid"]
|
||||||
|
assert data["data"]["eventid"] == test_flow["eventid"]
|
||||||
|
assert data["data"]["content"] == test_flow["content"]
|
||||||
|
|
||||||
def test_appversions_update(test_client,test_domain,test_app_id,login_user):
|
def test_appversions_update(test_client,test_domain,test_app_id,login_user):
|
||||||
app_version ={
|
app_version ={
|
||||||
"versionname": "version1",
|
"versionname": "version1",
|
||||||
|
|||||||
Reference in New Issue
Block a user