213 empty lists repesented as empty arrays (lib/field, lib/rest_api_helper, instance_operation_default)
This commit is contained in:
+2
-1
@@ -4,6 +4,7 @@
|
||||
<!---v0.4 добавлен атрибут container for json--->
|
||||
<!---v0.5 добавлен атрибут type и трансляция в CF_SQL_--->
|
||||
<!--- 20210326 v0.8 formatter --->
|
||||
<!--- 20260312 v0.9 type="list" added as workaround--->
|
||||
|
||||
<cffunction name="passThrough"
|
||||
returntype="any"
|
||||
@@ -42,7 +43,7 @@
|
||||
<cfargument name="type"/>
|
||||
|
||||
<cfswitch expression=#ARGUMENTS.type#>
|
||||
<cfcase value="string">
|
||||
<cfcase value="string,list">
|
||||
<cfreturn "CF_SQL_VARCHAR"/>
|
||||
</cfcase>
|
||||
<cfcase value="integer">
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
<!--- v0.05 2025-11-20 multiple field entries in filter, filter became array instead of structure--->
|
||||
<!--- v0.06 2025-11-22 custom url parser used to prevent comma collision in lists--->
|
||||
<!--- v0.06 2026-01-22 json-type field validation (isValidX)--->
|
||||
<!--- v0.06 2026-03-12 empty2null off--->
|
||||
|
||||
<cffunction name="empty2null"
|
||||
access="public"
|
||||
@@ -56,6 +57,7 @@
|
||||
<cfloop list=#structKeyList(ARGUMENTS.fieldMap)# index="local.col">
|
||||
<cfset var obj=container/>
|
||||
<cfset var formatter = structFind(ARGUMENTS.fieldMap[local.col], "formatter")/>
|
||||
<cfset var type = structFind(ARGUMENTS.fieldMap[local.col], "type")/>
|
||||
<cfif structKeyExists(ARGUMENTS.fieldMap[#local.col#],"container")>
|
||||
<cfset var subContainerName = structFind(ARGUMENTS.fieldMap[local.col], "container")/>
|
||||
|
||||
@@ -68,7 +70,14 @@
|
||||
</cfif>
|
||||
|
||||
<cfif queryColumnExists(ARGUMENTS.query, local.col)>
|
||||
<cfset obj[ARGUMENTS.fieldNameDecorator(local.col)]=empty2null(formatter(ARGUMENTS.query[local.col][ARGUMENTS.query.currentRow]))/>
|
||||
|
||||
<cfif type EQ "list">
|
||||
<!--- *** workaround for empty lists - keep them empty instead of null - should designate field type as list --->
|
||||
<cfset obj[ARGUMENTS.fieldNameDecorator(local.col)]=formatter(ARGUMENTS.query[local.col][ARGUMENTS.query.currentRow])/>
|
||||
<cfelse>
|
||||
<cfset obj[ARGUMENTS.fieldNameDecorator(local.col)]=empty2null(formatter(ARGUMENTS.query[local.col][ARGUMENTS.query.currentRow]))/>
|
||||
</cfif>
|
||||
<!--- *** преобразование пустой строки в null преобразует в нулл также пустые списки, что искажает факт --->
|
||||
</cfif>
|
||||
<!---*** не уверен в надежности конструкции во всех реализациях CF, контекст query передастся ли--->
|
||||
</cfloop>
|
||||
|
||||
Reference in New Issue
Block a user