field_set, resourceRealm additional output
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.078";
|
||||
variables.framework.docs.APIVersion="0.079";
|
||||
|
||||
variables.framework.globalHeaders = structNew();
|
||||
variables.framework.globalHeaders["Access-Control-Expose-Headers"] = "Location";
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
<!--- 20201114 v0.6 добавлен атрибут "container" for json--->
|
||||
<!--- 20201201 v0.7 исправлен listOut--->
|
||||
<!--- 20210326 v0.8 formatter --->
|
||||
<!--- 20210326 v0.9 listOutKeepContent --->
|
||||
<!--- Используется в селекте для структурирования списка полей. Выводит вместо себя список через запятую, экспортирует Map со структурами выражение+заголовок, с ключом, соответствующим имени колонки в селекте (ключ вычисляется регулярным выражением) --->
|
||||
|
||||
<cfif thisTag.executionMode is "end">
|
||||
@@ -11,6 +12,7 @@
|
||||
<cfparam name="ATTRIBUTES.titleMapOut" default=""/>
|
||||
<cfparam name="ATTRIBUTES.lengthOut" default=""/>
|
||||
<cfparam name="ATTRIBUTES.listOut" default=""/><!---возвращаемый список полей через запятую для селекта. Если не задан (чаще всего так), этот список возвращается в виде контента тега --->
|
||||
<cfparam name="ATTRIBUTES.listOutKeepContent" default=false/><!--- указывает listOut не очищать контент --->
|
||||
|
||||
<cfparam name="thisTag.fieldsArray" type="array"/><!--- Вложенные теги field отдают сюда свои данные --->
|
||||
|
||||
@@ -42,6 +44,15 @@
|
||||
<cfif len(ATTRIBUTES.listOut)>
|
||||
<cfset "CALLER.#ATTRIBUTES.listOut#"=preserveSingleQuotes(list)/>
|
||||
<cfset thisTag.generatedContent=""/>
|
||||
</cfif>
|
||||
|
||||
<cfif len(ATTRIBUTES.listOut)><!--- *** некрасиво --->
|
||||
<cfset "CALLER.#ATTRIBUTES.listOut#"=preserveSingleQuotes(list)/>
|
||||
<cfif listOutKeepContent>
|
||||
<cfset thisTag.generatedContent=preserveSingleQuotes(list)/>
|
||||
<cfelse>
|
||||
<cfset thisTag.generatedContent=""/>
|
||||
</cfif>
|
||||
<cfelse>
|
||||
<cfset thisTag.generatedContent=preserveSingleQuotes(list)/>
|
||||
</cfif>
|
||||
|
||||
@@ -37,6 +37,7 @@
|
||||
<m:field>e.updater_id</m:field>
|
||||
<m:field>u.login as updater_login</m:field>
|
||||
<m:field>u.shortname as updater_shortname</m:field>
|
||||
<m:field>(select cast(st.instance_data->>'params' as json)->>'resourceRealm' from instance_state st where st.instance_uid=e.instance_uid order by version desc limit 1) as resourceRealm</m:field>
|
||||
</m:field_set>
|
||||
from instance e
|
||||
left outer join specification_item i on (e.specification_item_id=i.specification_item_id)
|
||||
|
||||
@@ -31,6 +31,7 @@
|
||||
"instance_state_uid"={prefix="inr", type="guid"},
|
||||
"is_deleted"={prefix="inr", type="string"},<!--- not bool --->
|
||||
"suspended"={prefix="inr", type="string"},<!--- not bool --->
|
||||
"resourceRealm"={prefix="inr", type="string"},
|
||||
"is_test"={prefix="inr", type="boolean"},
|
||||
"is_auxiliary"={prefix="inr", type="boolean"},
|
||||
"explained_status"={prefix="inr", type="string"},
|
||||
@@ -79,7 +80,10 @@
|
||||
<!--- Такая бодяга. Кастомные сериализаторы не умеют вложенных структур (поразительно, или я не нашел как). Стандартный сериализатор не умеет выводить дату в ISO 8601. Приходится колхозить и форматировать на стороне БД (насилу подобрал формат). Также на стороне БД приходится конвертировать GUID, потому что драйвер pg jdbc его представляет как структуру из 2 чисел.
|
||||
И то сказать, jsonb как-то странно сериализуется, в 3 поля, вместо одного Value
|
||||
--->
|
||||
<!--- ********* Внимание, ниже дублирование этого селекта! --->
|
||||
|
||||
|
||||
<!--- ************ Внимание, ниже дублирование этого селекта! ************* --->
|
||||
|
||||
<cfquery name="local.qCnt" result="local.result">
|
||||
select count(*) as cnt
|
||||
from (
|
||||
@@ -119,6 +123,7 @@
|
||||
<m:field formatter=#request.castToBool#>(select st.is_test from instance_state st where st.instance_uid=e.instance_uid order by version desc limit 1) as is_test</m:field>
|
||||
<m:field formatter=#request.castToBool#>coalesce((select st.instance_data->>'isDeleted' from instance_state st where st.instance_uid=e.instance_uid order by version desc limit 1),'false') as is_deleted</m:field><!--- attention it is not bool in state --->
|
||||
<m:field formatter=#request.castToBool#>(select st.instance_data->>'suspended' from instance_state st where st.instance_uid=e.instance_uid order by version desc limit 1) as suspended</m:field>
|
||||
<m:field>(select cast(st.instance_data->>'params' as json)->>'resourceRealm' from instance_state st where st.instance_uid=e.instance_uid order by version desc limit 1) as resourceRealm</m:field>
|
||||
<m:field>(select to_char(st.dt_state, 'YYYY-MM-DD"T"HH24:MI:SS.FF3TZHTZM') from instance_state st where st.instance_uid=e.instance_uid order by version desc limit 1) as dt_state</m:field>
|
||||
<m:field>
|
||||
(case
|
||||
@@ -196,6 +201,7 @@
|
||||
<m:field formatter=#request.castToBool#>(select st.is_test from instance_state st where st.instance_uid=e.instance_uid order by version desc limit 1) as is_test</m:field>
|
||||
<m:field formatter=#request.castToBool#>coalesce((select st.instance_data->>'isDeleted' from instance_state st where st.instance_uid=e.instance_uid order by version desc limit 1),'false') as is_deleted</m:field><!--- attention it is not bool in state --->
|
||||
<m:field formatter=#request.castToBool#>(select st.instance_data->>'suspended' from instance_state st where st.instance_uid=e.instance_uid order by version desc limit 1) as suspended</m:field>
|
||||
<m:field>(select cast(st.instance_data->>'params' as json)->>'resourceRealm' from instance_state st where st.instance_uid=e.instance_uid order by version desc limit 1) as resourceRealm</m:field>
|
||||
<m:field>(select to_char(st.dt_state, 'YYYY-MM-DD"T"HH24:MI:SS.FF3TZHTZM') from instance_state st where st.instance_uid=e.instance_uid order by version desc limit 1) as dt_state</m:field>
|
||||
<m:field>
|
||||
(case
|
||||
|
||||
Reference in New Issue
Block a user