diff --git a/backend/app/api/api_v1/routers/kintone.py b/backend/app/api/api_v1/routers/kintone.py
index 41dd61b..b1c826a 100644
--- a/backend/app/api/api_v1/routers/kintone.py
+++ b/backend/app/api/api_v1/routers/kintone.py
@@ -156,10 +156,10 @@ def getsettingfromexcel(df):
des = df.iloc[2,2]
return {"name":appname,"description":des}
-def getsettingfromkintone(app:str,c:config.KINTONE_ENV):
- headers={config.API_V1_AUTH_KEY:c.API_V1_AUTH_VALUE}
+def getsettingfromkintone(app:str,env:config.KINTONE_ENV):
+ headers={config.API_V1_AUTH_KEY:env.API_V1_AUTH_VALUE}
params = {"app":app}
- url = f"{c.BASE_URL}{config.API_V1_STR}/app/settings.json"
+ url = f"{env.BASE_URL}{config.API_V1_STR}/app/settings.json"
r = httpx.get(url,headers=headers,params=params)
return r.json()
@@ -171,24 +171,24 @@ def analysesettings(excel,kintone):
updatesettings[key] = excel[key]
return updatesettings
-def createkintoneapp(name:str,c:config.KINTONE_ENV):
- headers={config.API_V1_AUTH_KEY:c.API_V1_AUTH_VALUE,"Content-Type": "application/json"}
+def createkintoneapp(name:str,env:config.KINTONE_ENV):
+ headers={config.API_V1_AUTH_KEY:env.API_V1_AUTH_VALUE,"Content-Type": "application/json"}
data = {"name":name}
- url = f"{c.BASE_URL}{config.API_V1_STR}/preview/app.json"
+ url = f"{env.BASE_URL}{config.API_V1_STR}/preview/app.json"
r = httpx.post(url,headers=headers,data=json.dumps(data))
return r.json()
-def updateappsettingstokintone(app:str,updates:dict,c:config.KINTONE_ENV):
- headers={config.API_V1_AUTH_KEY:c.API_V1_AUTH_VALUE,"Content-Type": "application/json"}
- url = f"{c.BASE_URL}{config.API_V1_STR}/preview/app/settings.json"
+def updateappsettingstokintone(app:str,updates:dict,env:config.KINTONE_ENV):
+ headers={config.API_V1_AUTH_KEY:env.API_V1_AUTH_VALUE,"Content-Type": "application/json"}
+ url = f"{env.BASE_URL}{config.API_V1_STR}/preview/app/settings.json"
data = {"app":app}
data.update(updates)
r = httpx.put(url,headers=headers,data=json.dumps(data))
return r.json()
-def addfieldstokintone(app:str,fields:dict,c:config.KINTONE_ENV,revision:str = None):
- headers={config.API_V1_AUTH_KEY:c.API_V1_AUTH_VALUE,"Content-Type": "application/json"}
- url = f"{c.BASE_URL}{config.API_V1_STR}/preview/app/form/fields.json"
+def addfieldstokintone(app:str,fields:dict,env:config.KINTONE_ENV,revision:str = None):
+ headers={config.API_V1_AUTH_KEY:env.API_V1_AUTH_VALUE,"Content-Type": "application/json"}
+ url = f"{env.BASE_URL}{config.API_V1_STR}/preview/app/form/fields.json"
if revision != None:
data = {"app":app,"revision":revision,"properties":fields}
else:
@@ -197,43 +197,43 @@ def addfieldstokintone(app:str,fields:dict,c:config.KINTONE_ENV,revision:str = N
r.raise_for_status()
return r.json()
-def updatefieldstokintone(app:str,revision:str,fields:dict,c:config.KINTONE_ENV):
- headers={config.API_V1_AUTH_KEY:c.API_V1_AUTH_VALUE,"Content-Type": "application/json"}
- url = f"{c.BASE_URL}{config.API_V1_STR}/preview/app/form/fields.json"
+def updatefieldstokintone(app:str,revision:str,fields:dict,env:config.KINTONE_ENV):
+ headers={config.API_V1_AUTH_KEY:env.API_V1_AUTH_VALUE,"Content-Type": "application/json"}
+ url = f"{env.BASE_URL}{config.API_V1_STR}/preview/app/form/fields.json"
data = {"app":app,"properties":fields}
r = httpx.put(url,headers=headers,data=json.dumps(data))
return r.json()
-def deletefieldsfromkintone(app:str,revision:str,fields:dict,c:config.KINTONE_ENV):
- headers={config.API_V1_AUTH_KEY:c.API_V1_AUTH_VALUE,"Content-Type": "application/json"}
- url = f"{c.BASE_URL}{config.API_V1_STR}/preview/app/form/fields.json"
+def deletefieldsfromkintone(app:str,revision:str,fields:dict,env:config.KINTONE_ENV):
+ headers={config.API_V1_AUTH_KEY:env.API_V1_AUTH_VALUE,"Content-Type": "application/json"}
+ url = f"{env.BASE_URL}{config.API_V1_STR}/preview/app/form/fields.json"
params = {"app":app,"revision":revision,"fields":fields}
#r = httpx.delete(url,headers=headers,content=json.dumps(params))
r = httpx.request(method="DELETE",url=url,headers=headers,content=json.dumps(params))
return r.json()
-def deoployappfromkintone(app:str,revision:str,c:config.KINTONE_ENV):
- headers={config.API_V1_AUTH_KEY:c.API_V1_AUTH_VALUE,"Content-Type": "application/json"}
- url = f"{c.BASE_URL}{config.API_V1_STR}/preview/app/deploy.json"
+def deoployappfromkintone(app:str,revision:str,env:config.KINTONE_ENV):
+ headers={config.API_V1_AUTH_KEY:env.API_V1_AUTH_VALUE,"Content-Type": "application/json"}
+ url = f"{env.BASE_URL}{config.API_V1_STR}/preview/app/deploy.json"
data = {"apps":[{"app":app,"revision":revision}],"revert": False}
r = httpx.post(url,headers=headers,data=json.dumps(data))
return r.json
# 既定項目に含めるアプリのフィールドのみ取得する
# スペース、枠線、ラベルを含まない
-def getfieldsfromkintone(app:str,c:config.KINTONE_ENV):
- headers={config.API_V1_AUTH_KEY:c.API_V1_AUTH_VALUE}
+def getfieldsfromkintone(app:str,env:config.KINTONE_ENV):
+ headers={config.API_V1_AUTH_KEY:env.API_V1_AUTH_VALUE}
params = {"app":app}
- url = f"{c.BASE_URL}{config.API_V1_STR}/app/form/fields.json"
+ url = f"{env.BASE_URL}{config.API_V1_STR}/app/form/fields.json"
r = httpx.get(url,headers=headers,params=params)
return r.json()
# フォームに配置するフィールドのみ取得する
# スペース、枠線、ラベルも含める
-def getformfromkintone(app:str,c:config.KINTONE_ENV):
- headers={config.API_V1_AUTH_KEY:c.API_V1_AUTH_VALUE}
+def getformfromkintone(app:str,env:config.KINTONE_ENV):
+ headers={config.API_V1_AUTH_KEY:env.API_V1_AUTH_VALUE}
params = {"app":app}
- url = f"{c.BASE_URL}{config.API_V1_STR}/form.json"
+ url = f"{env.BASE_URL}{config.API_V1_STR}/form.json"
r = httpx.get(url,headers=headers,params=params)
return r.json()
@@ -286,10 +286,10 @@ def analysefields(excel,kintone):
return {"update":updatefields,"add":addfields,"del":delfields}
-def getprocessfromkintone(app:str,c:config.KINTONE_ENV):
- headers={config.API_V1_AUTH_KEY:c.API_V1_AUTH_VALUE}
+def getprocessfromkintone(app:str,env:config.KINTONE_ENV):
+ headers={config.API_V1_AUTH_KEY:env.API_V1_AUTH_VALUE}
params = {"app":app}
- url = f"{c.BASE_URL}{config.API_V1_STR}/app/status.json"
+ url = f"{env.BASE_URL}{config.API_V1_STR}/app/status.json"
r = httpx.get(url,headers=headers,params=params)
return r.json()
@@ -374,24 +374,24 @@ def getkintoneorgs(c:config.KINTONE_ENV):
r = httpx.get(url,headers=headers,params=params)
return r.json()
-def uploadkintonefiles(file,c:config.KINTONE_ENV):
+def uploadkintonefiles(file,env:config.KINTONE_ENV):
if (file.endswith('alc_runtime.js') and config.DEPLOY_MODE == "DEV"):
return {'fileKey':file}
upload_files = {'file': open(file,'rb')}
- headers={config.API_V1_AUTH_KEY:c.API_V1_AUTH_VALUE}
+ headers={config.API_V1_AUTH_KEY:env.API_V1_AUTH_VALUE}
data ={'name':'file','filename':os.path.basename(file)}
- url = f"{c.BASE_URL}/k/v1/file.json"
+ url = f"{env.BASE_URL}/k/v1/file.json"
r = httpx.post(url,headers=headers,data=data,files=upload_files)
#{"name":data['filename'],'fileKey':r['fileKey']}
return r.json()
-def updateappjscss(app,uploads,c:config.KINTONE_ENV):
+def updateappjscss(app,uploads,env:config.KINTONE_ENV):
dsjs = []
dscss = []
#mobile側
mbjs = []
mbcss = []
- customize = getappcustomize(app, c)
+ customize = getappcustomize(app, env)
current_js = customize['desktop'].get('js', [])
current_css = customize['desktop'].get('css', [])
current_mobile_js = customize['mobile'].get('js', [])
@@ -430,16 +430,16 @@ def updateappjscss(app,uploads,c:config.KINTONE_ENV):
ds ={'js':dsjs,'css':dscss}
mb ={'js':mbjs,'css':mbcss}
data = {'app':app,'scope':'ALL','desktop':ds,'mobile':mb,'revision':customize["revision"]}
- headers={config.API_V1_AUTH_KEY:c.API_V1_AUTH_VALUE,"Content-Type": "application/json"}
- url = f"{c.BASE_URL}{config.API_V1_STR}/preview/app/customize.json"
+ headers={config.API_V1_AUTH_KEY:env.API_V1_AUTH_VALUE,"Content-Type": "application/json"}
+ url = f"{env.BASE_URL}{config.API_V1_STR}/preview/app/customize.json"
print(json.dumps(data))
r = httpx.put(url,headers=headers,data=json.dumps(data))
return r.json()
#kintone カスタマイズ情報
-def getappcustomize(app,c:config.KINTONE_ENV):
- headers={config.API_V1_AUTH_KEY:c.API_V1_AUTH_VALUE}
- url = f"{c.BASE_URL}{config.API_V1_STR}/preview/app/customize.json"
+def getappcustomize(app,env:config.KINTONE_ENV):
+ headers={config.API_V1_AUTH_KEY:env.API_V1_AUTH_VALUE}
+ url = f"{env.BASE_URL}{config.API_V1_STR}/preview/app/customize.json"
params = {"app":app}
r = httpx.get(url,headers=headers,params=params)
return r.json()
@@ -451,9 +451,9 @@ def getTempPath(filename):
fpath = os.path.join(rootdir,"Temp",filename)
return fpath
-def createappjs(domainid,app):
+def createappjs(domain_url,app):
db = SessionLocal()
- flows = get_flows_by_app(db,domainid,app)
+ flows = get_flows_by_app(db,domain_url,app)
db.close()
content={}
for flow in flows:
@@ -521,7 +521,7 @@ async def upload(request:Request,files:t.List[UploadFile] = File(...)):
return {"files": [file.filename for file in files]}
@r.post("/updatejscss")
-async def jscss(request:Request,app:str,files:t.List[UploadFile] = File(...),env = Depends(getkintoneenv)):
+async def jscss(request:Request,app:str,files:t.List[UploadFile] = File(...),env:config.KINTONE_ENV = Depends(getkintoneenv)):
try:
jscs=[]
for file in files:
@@ -542,21 +542,21 @@ async def jscss(request:Request,app:str,files:t.List[UploadFile] = File(...),env
raise APIException('kintone:updatejscss',request.url._url, f"Error occurred while update js/css {file.filename} is not an Excel file",e)
@r.get("/app")
-async def app(request:Request,app:str,c:config.KINTONE_ENV=Depends(getkintoneenv)):
+async def app(request:Request,app:str,env:config.KINTONE_ENV=Depends(getkintoneenv)):
try:
- headers={config.API_V1_AUTH_KEY:c.API_V1_AUTH_VALUE}
- url = f"{c.BASE_URL}{config.API_V1_STR}/app.json"
+ headers={config.API_V1_AUTH_KEY:env.API_V1_AUTH_VALUE}
+ url = f"{env.BASE_URL}{config.API_V1_STR}/app.json"
params ={"id":app}
r = httpx.get(url,headers=headers,params=params)
return r.json()
except Exception as e:
- raise APIException('kintone:app',request.url._url, f"Error occurred while get app({c.DOMAIN_NAME}->{app}):",e)
+ raise APIException('kintone:app',request.url._url, f"Error occurred while get app({env.DOMAIN_NAME}->{app}):",e)
@r.get("/allapps")
-async def allapps(request:Request,c:config.KINTONE_ENV=Depends(getkintoneenv)):
+async def allapps(request:Request,env:config.KINTONE_ENV=Depends(getkintoneenv)):
try:
- headers={config.API_V1_AUTH_KEY:c.API_V1_AUTH_VALUE}
- url = f"{c.BASE_URL}{config.API_V1_STR}/apps.json"
+ headers={config.API_V1_AUTH_KEY:env.API_V1_AUTH_VALUE}
+ url = f"{env.BASE_URL}{config.API_V1_STR}/apps.json"
offset = 0
limit = 100
all_apps = []
@@ -572,17 +572,17 @@ async def allapps(request:Request,c:config.KINTONE_ENV=Depends(getkintoneenv)):
return {"apps": all_apps}
except Exception as e:
- raise APIException('kintone:allapps', request.url._url, f"Error occurred while get allapps({c.DOMAIN_NAME}):", e)
+ raise APIException('kintone:allapps', request.url._url, f"Error occurred while get allapps({env.DOMAIN_NAME}):", e)
@r.get("/appfields")
-async def appfields(request:Request,app:str,env = Depends(getkintoneenv)):
+async def appfields(request:Request,app:str,env:config.KINTONE_ENV = Depends(getkintoneenv)):
try:
return getfieldsfromkintone(app,env)
except Exception as e:
raise APIException('kintone:appfields',request.url._url, f"Error occurred while get app fileds({env.DOMAIN_NAME}->{app}):",e)
@r.get("/allfields")
-async def allfields(request:Request,app:str,env = Depends(getkintoneenv)):
+async def allfields(request:Request,app:str,env:config.KINTONE_ENV = Depends(getkintoneenv)):
try:
field_resp = getfieldsfromkintone(app,env)
form_resp = getformfromkintone(app,env)
@@ -591,38 +591,38 @@ async def allfields(request:Request,app:str,env = Depends(getkintoneenv)):
raise APIException('kintone:allfields',request.url._url, f"Error occurred while get form fileds({env.DOMAIN_NAME}->{app}):",e)
@r.get("/appprocess")
-async def appprocess(request:Request,app:str,env = Depends(getkintoneenv)):
+async def appprocess(request:Request,app:str,env:config.KINTONE_ENV = Depends(getkintoneenv)):
try:
return getprocessfromkintone(app,env)
except Exception as e:
raise APIException('kintone:appprocess',request.url._url, f"Error occurred while get app process({env.DOMAIN_NAME}->{app}):",e)
@r.get("/alljscss")
-async def alljscs(request:Request,app:str,c:config.KINTONE_ENV=Depends(getkintoneenv)):
+async def alljscs(request:Request,app:str,env:config.KINTONE_ENV=Depends(getkintoneenv)):
try:
- headers={config.API_V1_AUTH_KEY:c.API_V1_AUTH_VALUE}
- url = f"{c.BASE_URL}{config.API_V1_STR}/app/customize.json"
+ headers={config.API_V1_AUTH_KEY:env.API_V1_AUTH_VALUE}
+ url = f"{env.BASE_URL}{config.API_V1_STR}/app/customize.json"
params = {"app":app}
r = httpx.get(url,headers=headers,params=params)
return r.json()
except Exception as e:
- raise APIException('kintone:alljscss',request.url._url, f"Error occurred while get app js/css({c.DOMAIN_NAME}->{app}):",e)
+ raise APIException('kintone:alljscss',request.url._url, f"Error occurred while get app js/css({env.DOMAIN_NAME}->{app}):",e)
@r.post("/createapp",)
-async def createapp(request:Request,name:str,c:config.KINTONE_ENV=Depends(getkintoneenv)):
+async def createapp(request:Request,name:str,env:config.KINTONE_ENV=Depends(getkintoneenv)):
try:
- headers={config.API_V1_AUTH_KEY:c.API_V1_AUTH_VALUE,"Content-Type": "application/json"}
+ headers={config.API_V1_AUTH_KEY:env.API_V1_AUTH_VALUE,"Content-Type": "application/json"}
data = {"name":name}
- url = f"{c.BASE_URL}{config.API_V1_STR}/preview/app.json"
+ url = f"{env.BASE_URL}{config.API_V1_STR}/preview/app.json"
r = httpx.post(url,headers=headers,data=json.dumps(data))
result = r.json()
if result.get("app") != None:
- url = f"{c.BASE_URL}{config.API_V1_STR}/preview/app/deploy.json"
+ url = f"{env.BASE_URL}{config.API_V1_STR}/preview/app/deploy.json"
data = {"apps":[result],"revert": False}
r = httpx.post(url,headers=headers,data=json.dumps(data))
return r.json
except Exception as e:
- raise APIException('kintone:createapp',request.url._url, f"Error occurred while create app({c.DOMAIN_NAME}->{name}):",e)
+ raise APIException('kintone:createapp',request.url._url, f"Error occurred while create app({env.DOMAIN_NAME}->{name}):",e)
@r.post("/createappfromexcel",)
@@ -761,7 +761,7 @@ async def createjstokintone(request:Request,app:str,env:config.KINTONE_ENV = Dep
try:
jscs=[]
files=[]
- files.append(createappjs(env.DOMAIN_ID, app))
+ files.append(createappjs(env.BASE_URL, app))
files.append(getTempPath('alc_runtime.js'))
files.append(getTempPath('alc_runtime.css'))
for file in files:
diff --git a/backend/app/api/api_v1/routers/platform.py b/backend/app/api/api_v1/routers/platform.py
index 6be8b66..06348b5 100644
--- a/backend/app/api/api_v1/routers/platform.py
+++ b/backend/app/api/api_v1/routers/platform.py
@@ -228,12 +228,14 @@ async def flow_create(
)
async def flow_edit(
request: Request,
+ flowid: str,
flow: FlowIn,
user=Depends(get_current_active_user),
db=Depends(get_db),
):
try:
- return edit_flow(db, flow,user.id)
+ domain = get_activedomain(db, user.id)
+ return edit_flow(db,domain.url, flow,user.id)
except Exception as e:
raise APIException('platform:flow',request.url._url,f"Error occurred while edit flow:",e)
diff --git a/backend/app/db/crud.py b/backend/app/db/crud.py
index 7e4f0f8..18ca4d7 100644
--- a/backend/app/db/crud.py
+++ b/backend/app/db/crud.py
@@ -239,14 +239,16 @@ def delete_flow(db: Session, flowid: str):
def edit_flow(
- db: Session, flow: schemas.FlowIn,userid:int
+ db: Session, domainurl: str, flow: schemas.FlowIn,userid:int
) -> schemas.Flow:
db_flow = get_flow(db, flow.flowid)
if not db_flow:
- raise HTTPException(status.HTTP_404_NOT_FOUND, detail="Flow not found")
+ #見つからない時新規作成
+ return create_flow(db,domainurl,flow,userid)
+
db_flow.appid =flow.appid,
db_flow.eventid=flow.eventid,
- db_flow.domainurl=flow.domainurl,
+ db_flow.domainurl=domainurl,
db_flow.name=flow.name,
db_flow.content=flow.content,
db_flow.updateuserid = userid,
@@ -266,8 +268,8 @@ def get_flows(db: Session, flowid: str):
def get_flow(db: Session, flowid: str):
flow = db.query(models.Flow).filter(models.Flow.flowid == flowid).first()
- if not flow:
- raise HTTPException(status_code=404, detail="Data not found")
+ # if not flow:
+ # raise HTTPException(status_code=404, detail="Data not found")
return flow
def get_flows_by_app(db: Session,domainurl: str, appid: str):
diff --git a/backend/app/db/schemas.py b/backend/app/db/schemas.py
index dd303d0..583c210 100644
--- a/backend/app/db/schemas.py
+++ b/backend/app/db/schemas.py
@@ -67,6 +67,7 @@ class AppList(Base):
domainurl: str
appname: str
appid:str
+ updateuser: UserOut
version:int
class AppVersion(BaseModel):
@@ -75,6 +76,7 @@ class AppVersion(BaseModel):
versionname: str
comment:str
appid:str
+
class TokenData(BaseModel):
id:int = 0
@@ -122,7 +124,7 @@ class Action(BaseModel):
class FlowIn(BaseModel):
flowid: str
- domainurl:str
+ # domainurl:str
appid: str
appname:str
eventid: str
diff --git a/frontend/src/components/DomainSelector.vue b/frontend/src/components/DomainSelector.vue
index c5747a6..2fb7c60 100644
--- a/frontend/src/components/DomainSelector.vue
+++ b/frontend/src/components/DomainSelector.vue
@@ -1,12 +1,15 @@
import { IDomainInfo } from 'src/types/ActionTypes';
import { useAuthStore,IUserState } from 'stores/useAuthStore';
-import { ref } from 'vue';
+import { ref, computed } from 'vue';
+import { useRoute } from 'vue-router';
const userStore = useAuthStore();
+const route = useRoute()
const domains = ref([]);
(async ()=>{
domains.value = await userStore.getUserDomains();
})();
+const isUnclickable = computed(()=>{
+ return route.path.startsWith('/FlowChart/') || domains.value === undefined || domains.value.length === 0;
+});
+
+
const onItemClick=(domain:IDomainInfo)=>{
console.log(domain);
userStore.setCurrentDomain(domain);
}
diff --git a/frontend/src/pages/AppManagement.vue b/frontend/src/pages/AppManagement.vue
index 254efab..3ca2a01 100644
--- a/frontend/src/pages/AppManagement.vue
+++ b/frontend/src/pages/AppManagement.vue
@@ -39,26 +39,13 @@
diff --git a/frontend/src/pages/FlowChart.vue b/frontend/src/pages/FlowChart.vue
index 506107d..2c0d150 100644
--- a/frontend/src/pages/FlowChart.vue
+++ b/frontend/src/pages/FlowChart.vue
@@ -3,11 +3,7 @@