119 instance dependencies
This commit is contained in:
+1
-1
@@ -51,7 +51,7 @@
|
||||
|
||||
//variables.framework.docs={};
|
||||
variables.framework.docs.APIName="Deck API";
|
||||
variables.framework.docs.APIVersion="0.118"; /*$ git config --global --unset user.password*/
|
||||
variables.framework.docs.APIVersion="0.119"; /*$ git config --global --unset user.password*/
|
||||
|
||||
|
||||
variables.framework.globalHeaders = structNew();
|
||||
|
||||
@@ -179,7 +179,65 @@
|
||||
AND 1=0
|
||||
</cfif>
|
||||
order by so.svc_operation_id
|
||||
</cfquery>
|
||||
|
||||
<!--- Проблема зависимостей. Чтобы их увидеть, нам нужно состояние, а его нет в реляционном виде.
|
||||
Значит, придется парсить стейт
|
||||
но чтобы получить все сервисы, которые зависят от данного, придется им отпарсить все стейты, что нереально
|
||||
Значит, придется заняться нормализаций стейта (приведением в реляционный вид) - впрочем, ничего сильно сложного в этом нет
|
||||
А есть смысл делать это в одну строну? наверно, есть - чтобы не забираться в операцию
|
||||
--->
|
||||
|
||||
<!--- видимо, достаточно нам параметров операции create... но можно и все параметры перебрать --->
|
||||
<cfquery name="local.qCfsParam" result="local.result">
|
||||
select
|
||||
p.svc_operation_cfs_param
|
||||
,p.label
|
||||
,p.descr
|
||||
,r.svc_id as ref_svc_id
|
||||
,r.svc as ref_svc
|
||||
,r.code as ref_code
|
||||
from svc_operation_cfs_param p
|
||||
join svc_operation o on (p.svc_operation_id=o.svc_operation_id)
|
||||
join svc on (o.svc_id=svc.svc_id)
|
||||
join svc r on (p.ref_svc_id=r.svc_id)
|
||||
where svc.svc_id=<cfqueryparam cfsqltype="cf_sql_integer" value="#qInstance.service_id#" null=#!isValid('integer',qInstance.service_id)#/>
|
||||
AND o.operation='create'
|
||||
</cfquery>
|
||||
|
||||
<cfset var dependencies=[]/>
|
||||
<!--- <cfset var dependencies=#local.qCfsParam#/> --->
|
||||
<cfloop query="local.qCfsParam">
|
||||
<cfset var paramName = this.helper.snake2camel(local.qCfsParam.svc_operation_cfs_param)/>
|
||||
<cfset var instanceData="#deserializeJson(qCurrentState.instance_data)#"/>
|
||||
<cfif structKeyExists(instanceData, "params") AND structKeyExists(instanceData.params, paramName)>
|
||||
<cfset var refKey = structFind(instanceData.params, paramName)/>
|
||||
<cfif isValid("guid",refKey)>
|
||||
<!--- *** нужно укрепить изоляцию и проконтролировать принадлежность инстанса данному тенанту --->
|
||||
<cfquery name="qDependency">
|
||||
select e.display_name, e.is_auxiliary
|
||||
from instance e
|
||||
where e.instance_uid = <cfqueryparam cfsqltype="cf_sql_other" value="#refKey#" null=#!isValid('guid',refKey)#/>
|
||||
</cfquery>
|
||||
<cfset var rec = {
|
||||
"param":"#svc_operation_cfs_param#",
|
||||
"descr":"#descr#",
|
||||
"svcId":#ref_svc_id#,
|
||||
"svc":"#ref_svc#",
|
||||
"code":"#ref_code#",
|
||||
"label":"#label#",
|
||||
"uid":"#refKey#",
|
||||
"displayName":"#qDependency.display_name#",
|
||||
"isAuxiliary": #request.castToBool(qDependency.is_auxiliary)#
|
||||
}/>
|
||||
<cfset arrayAppend(dependencies, rec)/>
|
||||
</cfif>
|
||||
</cfif>
|
||||
</cfloop>
|
||||
|
||||
|
||||
|
||||
<!--- ---------------------------------------------------------------------------------- --->
|
||||
|
||||
|
||||
<cfset var out=structNew("linked")/>
|
||||
@@ -285,6 +343,7 @@
|
||||
<cfset arrayAppend(out.instance.availableOperations, this.helper.appendRecord(structNew("linked"), "", local.availableOperationTitleMap, local.qAvailableOperation, this.helper.snake2camel))/>
|
||||
</cfloop>
|
||||
|
||||
<cfset "out.instance.dependencies"=#dependencies#/>
|
||||
<!--- <cfset "out.instance.availableResourceRealms"=[]/>
|
||||
<cfloop query=#local.qAvailableResourceRealm#>
|
||||
<cfset arrayAppend(out.instance.availableResourceRealms, this.helper.appendRecord(structNew("linked"), "", local.realmTitleMap, local.qAvailableResourceRealm, this.helper.snake2camel))/>
|
||||
|
||||
@@ -102,7 +102,7 @@
|
||||
<m:field formatter=#request.castToBool#>p.is_sensitive</m:field>
|
||||
</m:field_set>
|
||||
from svc_operation_cfs_param p
|
||||
where p.svc_operation_id=<cfqueryparam cfsqltype="cf_sql_other" value="#arguments.svcOperationId#" null=#!isValid('integer',arguments.svcOperationId)#/>
|
||||
where p.svc_operation_id=<cfqueryparam cfsqltype="cf_sql_integer" value="#arguments.svcOperationId#" null=#!isValid('integer',arguments.svcOperationId)#/>
|
||||
order by p.sort, p.svc_operation_cfs_param_id
|
||||
</cfquery>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user