cleanup: trim helper parser commentary

This commit is contained in:
“Naeel”
2026-04-29 21:52:57 +04:00
parent 24841c5be5
commit 22d12ab070
3 changed files with 58 additions and 69 deletions
+11 -14
View File
@@ -36,7 +36,7 @@
<cfargument name="struct" type="struct" required="true" />
<cfargument name="key" type="string" required="true" />
<cfargument name="fieldMap" type="struct" required="true" /><!--- используется только список и опциональный атрибут formatter --->
<cfargument name="fieldMap" type="struct" required="true" />
<cfargument name="query" type="query" required="true" />
<cfargument name="fieldNameDecorator" type="function" required="false" default=#passThrough#/>
@@ -87,7 +87,7 @@
<cfset var urlParamName=snake2camel(lCase(local.item))/>
<cfif structKeyExists(urlParams,urlParamName)>
<cfloop array=#urlParams[urlParamName]# item="local.rawValue"><!--- Если параметр встречается в URL несколько раз, его значения образуют список через запятую. --->
<cfloop array=#urlParams[urlParamName]# item="local.rawValue">
<cfset var operator="EQ"/>
<cfset var value=#local.rawValue#/>
<cfif listLen(local.rawValue,":") GT 1>
@@ -95,7 +95,7 @@
<cfset var value=listGetAt(local.rawValue,2,":")/>
</cfif>
<cfif !isValidX(ARGUMENTS.params[local.item].type,value)>
<cfthrow type="invalidParamValue" message="Filter parameter #urlParamName# value is not a valid #ARGUMENTS.params[local.item].type#"/><!---не выводим значение, чтобы исключить XSS--->
<cfthrow type="invalidParamValue" message="Filter parameter #urlParamName# value is not a valid #ARGUMENTS.params[local.item].type#"/>
</cfif>
<cfif structKeyExists(ARGUMENTS.params[local.item], "expression") AND len(ARGUMENTS.params[local.item].expression)>
@@ -129,7 +129,7 @@
returntype="array"
output="true"
hint="Разбирает и собирает параметры фильтра; операторы задаются в filter_build">
<cfargument name="params" type="struct" required="true" /><!--- имена полей и колонок в snake_case --->
<cfargument name="params" type="struct" required="true" />
<cfset var local = {}/>
<cfset var out = []/>
@@ -139,7 +139,7 @@
<cfset var urlParamName=snake2camel(lCase(local.item))/>
<cfif structKeyExists(URL,urlParamName)>
<cfloop list=#URL[urlParamName]# item="local.rawValue"><!--- Если параметр встречается в URL несколько раз, его значения образуют список через запятую. --->
<cfloop list=#URL[urlParamName]# item="local.rawValue">
<cfset var operator="EQ"/>
<cfset var value=#local.rawValue#/>
<cfif listLen(local.rawValue,":") GT 1>
@@ -147,7 +147,7 @@
<cfset var value=listGetAt(local.rawValue,2,":")/>
</cfif>
<cfif !isValidX(ARGUMENTS.params[local.item].type,value)>
<cfthrow type="invalidParamValue" message="Filter parameter #urlParamName# value is not a valid #ARGUMENTS.params[local.item].type#"/><!---не выводим значение, чтобы исключить XSS--->
<cfthrow type="invalidParamValue" message="Filter parameter #urlParamName# value is not a valid #ARGUMENTS.params[local.item].type#"/>
</cfif>
<cfif structKeyExists(ARGUMENTS.params[local.item], "expression") AND len(ARGUMENTS.params[local.item].expression)>
@@ -181,7 +181,7 @@
<cffunction name="parseOrderBy"
returntype="struct"
output="false"
hint="Разбирает и собирает параметр сортировки"><!--- Устаревший метод --->
hint="Разбирает и собирает параметр сортировки">
<cfargument name="params" type="struct" required="true" />
<cfargument name="orderBy" type="string" required="true" />
@@ -195,7 +195,7 @@
<cfcase value="ASC"><cfset var asc=true/></cfcase>
<cfcase value="DESC"><cfset var asc=false/></cfcase>
<cfdefaultcase>
<cfthrow type="InvalidParamValue" message="Invalid orderBy format" detail="orderBy suffix should be '.asc' or '.desc'" /><!--- Суффикс не возвращается пользователю, чтобы не расширять XSS-поверхность. --->
<cfthrow type="InvalidParamValue" message="Invalid orderBy format" detail="orderBy suffix should be '.asc' or '.desc'" />
</cfdefaultcase>
</cfswitch>
<cfelse>
@@ -229,7 +229,7 @@
<cfcase value="ASC"><cfset var asc=true/></cfcase>
<cfcase value="DESC"><cfset var asc=false/></cfcase>
<cfdefaultcase>
<cfthrow type="InvalidParamValue" message="Invalid orderBy format" detail="orderBy suffix should be '.asc' or '.desc'" /><!--- Суффикс не возвращается пользователю, чтобы не расширять XSS-поверхность. --->
<cfthrow type="InvalidParamValue" message="Invalid orderBy format" detail="orderBy suffix should be '.asc' or '.desc'" />
</cfdefaultcase>
</cfswitch>
<cfelse>
@@ -244,7 +244,6 @@
</cfloop>
<cfreturn out/>
</cffunction>
<!--- Больше не используется --->
<cffunction name="query4json" access="public" returntype="any" output="false"
hint="Преобразует query в массив структур. Имена ключей приводятся к нижнему регистру, пустые поля считаются null">
@@ -258,7 +257,7 @@
<cfset out[i]=structNew()/>
<cfloop list=#ARGUMENTS.Query.ColumnList# index="local.col">
<cfset var value=ARGUMENTS.Query[local.col][currentRow]/>
<cfif isEmpty(value)><!---*** некорректно, но просто, пустые строки превращает в нулл--->
<cfif isEmpty(value)>
<cfset out[i][local.col]=javacast('null','')/>
<cfelse>
<cfset out[i][local.col]=ARGUMENTS.Query[local.col][currentRow]/>
@@ -369,7 +368,6 @@
</cfif>
</cffunction>
<!--- returns false if the key does not exist and throws exception on invalid format--->
<cffunction name="keyExistsAndValid" access="public" returntype="boolean">
<cfargument name="struct" type="struct" required=true/>
<cfargument name="key" type="string" required=true/>
@@ -399,7 +397,6 @@
</cfif>
</cffunction>
<!--- returns false if the key does not exist or has invalid format--->
<cffunction name="keyExistsAndValidGraceful" access="public" returntype="boolean">
<cfargument name="struct" type="struct" required=true/>
<cfargument name="key" type="string" required=true/>
@@ -408,7 +405,7 @@
<cftry>
<cfreturn keyExistsAndValid(ARGUMENTS.struct, ARGUMENTS.key, ARGUMENTS.type, ARGUMENTS.maxLength)/>
<cfcatch type="ANY"><!---<cfrethrow/>---></cfcatch>
<cfcatch type="ANY"></cfcatch>
</cftry>
<cfreturn false/>
</cffunction>