cleanup: strip remaining comment noise
This commit is contained in:
@@ -5,7 +5,6 @@
|
||||
<cfset this.helper=CreateObject("component","lib.rest_api_helper")/>
|
||||
</cfsilent>
|
||||
|
||||
<!---спецификация полей, пригодных для фильтрации (?и сортировки)--->
|
||||
<cfset this.fieldsSpec={
|
||||
svc_id={prefix="r", type="integer"},
|
||||
resource_realm_id={prefix="r", type="integer"},
|
||||
@@ -24,11 +23,9 @@
|
||||
<cfset local={}/>
|
||||
|
||||
|
||||
<!---разбор и проверка параметров запроса--->
|
||||
<cftry>
|
||||
<cfset this.helper.validateField(arguments, "svcId", "integer")/>
|
||||
|
||||
<!---мы мирно игнорируем поля, отсутствующие в спецификации, что позволяет не делать исключения для orderBy и т.п.--->
|
||||
|
||||
<cfset var filter=this.helper.parseFilterParams(this.fieldsSpec)/>
|
||||
|
||||
<cfcatch type="invalidParamValue">
|
||||
|
||||
@@ -55,8 +55,8 @@
|
||||
<cfargument name="bookmarkUid" type="string" required=true hint="type:guid"/>
|
||||
<cfargument name="bookmark" type="string" required=false hint="type:string"/>
|
||||
<cfargument name="descr" type="string" required=false hint="type:string (no cleanup here!)"/>
|
||||
<cfargument name="url" type="string" required=false hint="type:string description: url"/><!--- чистить против XSS --->
|
||||
<cfargument name="iconUrl" type="string" required=false hint="type:string description: url иконки"/><!--- чистить против XSS --->
|
||||
<cfargument name="url" type="string" required=false hint="type:string description: url"/>
|
||||
<cfargument name="iconUrl" type="string" required=false hint="type:string description: url иконки"/>
|
||||
<cfargument name="sort" type="string" required=false hint="type:integer description: целое число для сортировки"/>
|
||||
<cfargument name="isEnabled" type="string" required=false hint="type:boolean description: вкл"/>
|
||||
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
<cfset this.helper=CreateObject("component","lib.rest_api_helper")/>
|
||||
</cfsilent>
|
||||
|
||||
<!---спецификация полей, пригодных для фильтрации (?и сортировки)--->
|
||||
<cfset this.fieldsSpec={
|
||||
bookmark_uid={prefix="b", type="guid"},
|
||||
dt_created={prefix="b", type="date"},
|
||||
@@ -20,8 +19,6 @@
|
||||
}
|
||||
/>
|
||||
|
||||
<!--- предполагается показывать букмарки только "настоящим" клиентам, поэтому используем contragent_id как признак своих--->
|
||||
|
||||
<cffunction name="get" hint="Список букмарков">
|
||||
<cfargument name="pageSize" type="string" hint="type:integer" default="100"/>
|
||||
<cfargument name="page" type="string" hint="type:integer" default="1"/>
|
||||
@@ -31,12 +28,10 @@
|
||||
<cftry>
|
||||
|
||||
|
||||
<!---разбор и проверка параметров запроса--->
|
||||
<cftry>
|
||||
<cfset this.helper.validateField(arguments, "pageSize", "integer")/>
|
||||
<cfset this.helper.validateField(arguments, "page", "integer")/>
|
||||
|
||||
<!---мы мирно игнорируем поля, отсутствующие в спецификации, что позволяет не делать исключения для orderBy и т.п.--->
|
||||
<cfset var filter=this.helper.parseFilterParams(this.fieldsSpec)/>
|
||||
|
||||
<cfcatch type="invalidParamValue">
|
||||
@@ -68,7 +63,7 @@
|
||||
from bookmark b
|
||||
where 1=1 <m:filter_build filter=#filter#/>
|
||||
AND (b.contragent_id = <cfqueryparam cfsqltype="cf_sql_integer" value=#arguments.contragentId# null=#!isNumeric(arguments.contragentId)#/>
|
||||
OR b.contragent_id=-1)/*общая букмарка*/
|
||||
OR b.contragent_id=-1)
|
||||
order by b.contragent_id desc, b.sort asc
|
||||
limit #maxrows#
|
||||
</cfquery>
|
||||
@@ -108,10 +103,10 @@
|
||||
|
||||
|
||||
<cffunction name="post" hint="Создание нового букмарка.">
|
||||
<cfargument name="bookmark" type="string" required=true hint="type:string description: заголовок"/><!--- чистить против XSS --->
|
||||
<cfargument name="bookmark" type="string" required=true hint="type:string description: заголовок"/>
|
||||
<cfargument name="descr" type="string" required=false default="" hint="type:boolean description: пользовательское примечание"/>
|
||||
<cfargument name="url" type="string" required=false default="" hint="type:string description: url"/><!--- чистить против XSS --->
|
||||
<cfargument name="iconUrl" type="string" required=false default="" hint="type:string description: url иконки"/><!--- чистить против XSS --->
|
||||
<cfargument name="url" type="string" required=false default="" hint="type:string description: url"/>
|
||||
<cfargument name="iconUrl" type="string" required=false default="" hint="type:string description: url иконки"/>
|
||||
<cfargument name="sort" type="string" required=false default="100" hint="type:integer description: целое число для сортировки"/>
|
||||
<cfargument name="isEnabled" type="string" required=false default="1" hint="type:boolean description: вкл"/>
|
||||
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
<cfset this.helper=CreateObject("component","lib.rest_api_helper")/>
|
||||
</cfsilent>
|
||||
|
||||
<!--- Спецификация полей, пригодных для фильтрации и сортировки --->
|
||||
<cfset this.fieldsSpec={
|
||||
service_param_id={prefix="p", type="cf_sql_integer"}
|
||||
,service_id={prefix="p", type="cf_sql_integer"}
|
||||
@@ -50,8 +49,6 @@
|
||||
}
|
||||
/>
|
||||
|
||||
<!--- предполагается показывать букмарки только "настоящим" клиентам, поэтому используем contragent_id как признак своих--->
|
||||
|
||||
<cffunction name="get" hint="Каталог конкретных услуг">
|
||||
<cfargument name="pageSize" type="string" hint="type:integer" default="100"/>
|
||||
<cfargument name="page" type="string" hint="type:integer" default="1"/>
|
||||
@@ -61,12 +58,10 @@
|
||||
<cftry>
|
||||
|
||||
|
||||
<!--- Разбор и проверка параметров запроса --->
|
||||
<cftry>
|
||||
<cfset this.helper.validateField(arguments, "pageSize", "integer")/>
|
||||
<cfset this.helper.validateField(arguments, "page", "integer")/>
|
||||
|
||||
<!--- Поля вне спецификации игнорируются, чтобы не добавлять отдельные исключения для orderBy и похожих параметров. --->
|
||||
<cfset var filter=this.helper.parseFilterParams(this.fieldsSpec)/>
|
||||
|
||||
<cfcatch type="invalidParamValue">
|
||||
|
||||
@@ -53,7 +53,6 @@
|
||||
).withStatus(404)/>
|
||||
</cfif>
|
||||
|
||||
<!--- Проверяем наличие запущенных операций на данном инстансе --->
|
||||
<cfquery name="local.qCheckStarted" result="local.result">
|
||||
select io.dt_submit, io.dt_finish, io.dt_start, io.submit_result, io.status_url
|
||||
from instance_operation io
|
||||
@@ -87,10 +86,10 @@
|
||||
<cfset local.cfsParamChecker = CreateObject("component", "instance_operation_cfs_param_ls")/>
|
||||
|
||||
<cfloop query=#local.qCheckCfsParams#>
|
||||
<cfif (local.qCheckCfsParams.is_required GT 0 AND NOT len(local.qCheckCfsParams.instance_operation_cfs_param_uid) GT 0)><!--- check CFS param existence --->
|
||||
<cfif (local.qCheckCfsParams.is_required GT 0 AND NOT len(local.qCheckCfsParams.instance_operation_cfs_param_uid) GT 0)>
|
||||
<cfreturn representationOf(this.helper.formatMessage("required CFS parameter #local.qCheckCfsParams.svc_operation_cfs_param# (#local.qCheckCfsParams.svc_operation_cfs_param_id#) is missing", "Missing required CFS parameter")).withStatus(422)/>
|
||||
<cfelse><!--- validate CFS param--->
|
||||
<cfif isValid("guid",qCheckCfsParams.instance_operation_cfs_param_uid)><!--- довольно неуклюжий фикс ошибки для нового параметра. Можно было подставить 00000000-0000-0000-0000-000000000000, все равно дальше подставляется --->
|
||||
<cfelse>
|
||||
<cfif isValid("guid",qCheckCfsParams.instance_operation_cfs_param_uid)>
|
||||
<cfset local.cfsParamChecker.checkParam(local.qCheckCfsParams.svc_operation_cfs_param_id, qCheckCfsParams.param_value, arguments.usrId, qCheckCfsParams.instance_operation_cfs_param_uid)/>
|
||||
<cfelse>
|
||||
<cfset local.cfsParamChecker.checkParam(local.qCheckCfsParams.svc_operation_cfs_param_id, qCheckCfsParams.param_value, arguments.usrId)/>
|
||||
@@ -163,12 +162,10 @@
|
||||
join svc_operation_cfs_param socp on (iocp.svc_operation_cfs_param_id=socp.svc_operation_cfs_param_id)
|
||||
join svc_operation_param sop on (socp.svc_operation_id=sop.svc_operation_id AND socp.svc_operation_cfs_param=sop.svc_operation_param)
|
||||
where iocp.instance_operation_uid=<cfqueryparam cfsqltype="cf_sql_other" value="#arguments.instanceOperationUid#"/>
|
||||
/*PostgreSQL specific*/
|
||||
ON CONFLICT (instance_operation_uid,param)
|
||||
DO UPDATE SET param_value = EXCLUDED.param_value;
|
||||
</cfquery>
|
||||
|
||||
<!--- так яснее, но можно было все в один запрос --->
|
||||
<cfquery name="qWriteRfsParamsFromDefaults">
|
||||
insert into instance_operation_param (instance_operation_uid,param,param_value)
|
||||
select
|
||||
@@ -176,8 +173,7 @@
|
||||
,sop.svc_operation_param
|
||||
,sop.default_value
|
||||
from svc_operation_param sop
|
||||
where sop.svc_operation_id=<cfqueryparam cfsqltype="cf_sql_integer" value="#qSvcOperation.svc_operation_id#"/> AND length(sop.default_value)>0 /***null will be better*/
|
||||
/*PostgreSQL specific*/
|
||||
where sop.svc_operation_id=<cfqueryparam cfsqltype="cf_sql_integer" value="#qSvcOperation.svc_operation_id#"/> AND length(sop.default_value)>0
|
||||
ON CONFLICT (instance_operation_uid,param)
|
||||
DO NOTHING;
|
||||
</cfquery>
|
||||
@@ -220,7 +216,6 @@
|
||||
<cfset var submit_url="#qInstanceOperation.url_prefix##qInstanceOperation.version##qInstanceOperation.url_suffix#"/>
|
||||
</cfif>
|
||||
|
||||
<!--- *** тут нужно бы указать, кто запустил операцию --->
|
||||
<cfquery name="qMarkOperationStart">
|
||||
update instance_operation
|
||||
set dt_submit=<cfqueryparam cfsqltype="cf_sql_timestamp" value=#now()#/>
|
||||
@@ -307,7 +302,6 @@
|
||||
,<cfqueryparam cfsqltype="cf_sql_varchar" value="#arguments.param#"/>
|
||||
,<cfqueryparam cfsqltype="cf_sql_varchar" value="#arguments.val#"/>
|
||||
)
|
||||
/*PostgreSQL specific*/
|
||||
ON CONFLICT (instance_operation_uid,param)
|
||||
DO UPDATE SET param_value = EXCLUDED.param_value;
|
||||
</cfquery>
|
||||
@@ -429,7 +423,6 @@
|
||||
where io.instance_operation_uid=<cfqueryparam cfsqltype="cf_sql_other" value="#arguments.instanceOperationUid#" null=#!isValid("guid",arguments.instanceOperationUid)#/>
|
||||
</cfquery>
|
||||
|
||||
<!--- проверяем доступ к RFS параметру resourceRealm данной операции --->
|
||||
<cfquery name="local.qCheckResourceRealmAccess">
|
||||
select r.resource_realm_id, r.resource_realm, iop.param, iop.param_value, a.contract_id, a.is_enabled
|
||||
from resource_realm r
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
<cfset this.helper=CreateObject("component","lib.rest_api_helper")/>
|
||||
</cfsilent>
|
||||
|
||||
<!---спецификация полей, пригодных для фильтрации (?и сортировки)--->
|
||||
<cfset this.fieldsSpec={
|
||||
dt_created={prefix="n", type="date"},
|
||||
dt_updated={prefix="n", type="date"},
|
||||
@@ -17,9 +16,6 @@
|
||||
external_code={prefix="n", type="string"}
|
||||
}
|
||||
/>
|
||||
|
||||
|
||||
|
||||
<cffunction name="get" hint="Список уведомлений">
|
||||
<cfargument name="pageSize" type="string" hint="type:integer" default="100"/>
|
||||
<cfargument name="page" type="string" hint="type:integer" default="1"/>
|
||||
@@ -28,12 +24,10 @@
|
||||
<cftry>
|
||||
<cfset local={}/>
|
||||
|
||||
<!---разбор и проверка параметров запроса--->
|
||||
<cftry>
|
||||
<cfset this.helper.validateField(arguments, "pageSize", "integer")/>
|
||||
<cfset this.helper.validateField(arguments, "page", "integer")/>
|
||||
|
||||
<!---мы мирно игнорируем поля, отсутствующие в спецификации, что позволяет не делать исключения для orderBy и т.п.--->
|
||||
<cfset var filter=this.helper.parseFilterParams(this.fieldsSpec)/>
|
||||
|
||||
<cfcatch type="invalidParamValue">
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
<cfset this.helper=CreateObject("component","lib.rest_api_helper")/>
|
||||
</cfsilent>
|
||||
|
||||
<!---спецификация полей, пригодных для фильтрации (?и сортировки)--->
|
||||
<cfset this.fieldsSpec={
|
||||
resource_realm_id={prefix="r", type="integer"},
|
||||
resource_realm_type_id={prefix="r", type="integer"},
|
||||
@@ -24,12 +23,10 @@
|
||||
<cfset local={}/>
|
||||
|
||||
|
||||
<!---разбор и проверка параметров запроса--->
|
||||
<cftry>
|
||||
<cfset this.helper.validateField(arguments, "pageSize", "integer")/>
|
||||
<cfset this.helper.validateField(arguments, "page", "integer")/>
|
||||
|
||||
<!---мы мирно игнорируем поля, отсутствующие в спецификации, что позволяет не делать исключения для orderBy и т.п.--->
|
||||
<cfset var filter=this.helper.parseFilterParams(this.fieldsSpec)/>
|
||||
|
||||
<cfcatch type="invalidParamValue">
|
||||
@@ -69,7 +66,7 @@
|
||||
OR a.contract_id=0)
|
||||
AND a.is_enabled)
|
||||
where 1=1 <m:filter_build filter=#filter#/>
|
||||
order by <m:order_build sortCollection=#this.helper.parseNumericOrder(local.titleMap, arguments.orderBy)# fieldCount=0/><!---no sort length limit--->
|
||||
order by <m:order_build sortCollection=#this.helper.parseNumericOrder(local.titleMap, arguments.orderBy)# fieldCount=0/>
|
||||
limit #maxrows#
|
||||
</cfquery>
|
||||
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
<cfset this.helper=CreateObject("component","lib.rest_api_helper")/>
|
||||
</cfsilent>
|
||||
|
||||
<!---спецификация полей, пригодных для фильтрации (?и сортировки)--->
|
||||
<cfset this.fieldsSpec={
|
||||
resource_realm_type_id={prefix="r", type="integer"},
|
||||
resource_realm_type={prefix="r", type="string"}
|
||||
@@ -20,12 +19,10 @@
|
||||
<cfset local={}/>
|
||||
|
||||
|
||||
<!---разбор и проверка параметров запроса--->
|
||||
<cftry>
|
||||
<cfset this.helper.validateField(arguments, "pageSize", "integer")/>
|
||||
<cfset this.helper.validateField(arguments, "page", "integer")/>
|
||||
|
||||
<!---мы мирно игнорируем поля, отсутствующие в спецификации, что позволяет не делать исключения для orderBy и т.п.--->
|
||||
<cfset var filter=this.helper.parseFilterParams(this.fieldsSpec)/>
|
||||
|
||||
<cfcatch type="invalidParamValue">
|
||||
@@ -50,7 +47,7 @@
|
||||
</m:field_set>
|
||||
from resource_realm_type t
|
||||
where 1=1 <m:filter_build filter=#filter#/>
|
||||
order by <m:order_build sortCollection=#this.helper.parseNumericOrder(local.titleMap, arguments.orderBy)# fieldCount=0/><!---no sort length limit--->
|
||||
order by <m:order_build sortCollection=#this.helper.parseNumericOrder(local.titleMap, arguments.orderBy)# fieldCount=0/>
|
||||
limit #maxrows#
|
||||
</cfquery>
|
||||
|
||||
|
||||
@@ -1,23 +1,4 @@
|
||||
<cfcomponent extends="taffy.core.resource" taffy:uri="/svcOperationCfsSubparams/compute/{svcOperationCfsSubparamId}" hint="вычисляет выражение в поле expression">
|
||||
<!---
|
||||
вычисляет выражение в поле expression
|
||||
для этого нужен контекст - как минимум, сохраненные параметры, но это не работает при создании нового инстанса,
|
||||
поэтому нужно инициализировать контекст и набивать его всей необходимой информацией
|
||||
что особенно важно для зависимых параметров - нам нужно положить в контекст все параметры, от которых мы зависим
|
||||
чтобы знать, какие параметры передавать - конструкцией для параметра предусмотрено поле depends_on_params (надо будет его сделать вычисляемым), а для субпараметра пока не
|
||||
--->
|
||||
|
||||
<!--- Все методы неявно получают
|
||||
arguments.usrId
|
||||
arguments.contragentId
|
||||
arguments.contractId
|
||||
arguments.specificationId
|
||||
|
||||
arguments.requestArguments.usrId=usrCustomerInfo.usrId; //Integer!
|
||||
arguments.requestArguments.contragentId=usrCustomerInfo.contragentId; //Integer
|
||||
arguments.requestArguments.contractId=usrCustomerInfo.contractId; //Integer
|
||||
arguments.requestArguments.specificationId=usrCustomerInfo.specificationId; //Integer
|
||||
--->
|
||||
|
||||
<cfsilent>
|
||||
<cfimport prefix="m" taglib="../lib"/>
|
||||
@@ -26,17 +7,13 @@ arguments.requestArguments.specificationId=usrCustomerInfo.specificationId; //In
|
||||
|
||||
|
||||
<cffunction name="get" hint="вычисление возможных значений cубпараметра CFS параметра операции, в текущем контексте">
|
||||
<!--- <cfargument name="instanceOperationCfsParamUid" type="string" required=true hint="type:guid"/> а вот ни фига--->
|
||||
<!--- *** Важно: мы должны уметь посчитать параметр, если он не сохранен, то есть мы знаем его класс, а не инстанс --->
|
||||
<!--- Вероятно, нам не очень нужно вычислять набор значений для инстанса параметра, мы всегда знаем класс --->
|
||||
<!--- контест: --->
|
||||
<cfargument name="svcOperationCfsSubparamId" type="string" required=true hint="type:integer"/>
|
||||
<cfargument name="keys" type="string" default={} hint="type:json keys we depend on: of the param uid itself, or operation uid, instance uid, service operation cfs param - if not all entities intstantiated yet"/>
|
||||
<cfargument name="params" type="string" default="{}" hint="type:json any posted parameters we depend on"/>
|
||||
|
||||
<cftry>
|
||||
<cfset this.helper.validateField(arguments, "svcOperationCfsSubparamId", "integer")/>
|
||||
<cfset this.helper.validateField(arguments, "keys", "json")/> <!--- *** может, не лучшая идея передавать ключ в контексте --->
|
||||
<cfset this.helper.validateField(arguments, "svcOperationCfsSubparamId", "integer")/>
|
||||
<cfset this.helper.validateField(arguments, "keys", "json")/>
|
||||
<cfset this.helper.validateField(arguments, "params", "json")/>
|
||||
<cfcatch type="invalidParamValue">
|
||||
<cfreturn representationOf(this.helper.formatBadRequestError(cfcatch)).withStatus(400)/>
|
||||
@@ -44,12 +21,12 @@ arguments.requestArguments.specificationId=usrCustomerInfo.specificationId; //In
|
||||
</cftry>
|
||||
|
||||
<cfset local={}/>
|
||||
<cfset "local.expression" = ""/> <!--- нет смысла выносить это в поля класса, оно нужно только локально --->
|
||||
<cfset "local.expression" = ""/>
|
||||
<cfset "local.calculatedValueList" = ""/>
|
||||
<cfset "local.keys" = deserializeJson(arguments.keys)/>
|
||||
<cfset "local.params" = deserializeJson(arguments.params)/>
|
||||
|
||||
<cfset "local.keys.svcOperationCfsSubparamId" = arguments.svcOperationCfsSubparamId/> <!--- *** сомнительное дело гонять аргументы туда-сюда ---><!--- *** по-моему, не используется, поэтому достанем svcOperationCfsParamId прямо тут --->
|
||||
<cfset "local.keys.svcOperationCfsSubparamId" = arguments.svcOperationCfsSubparamId/>
|
||||
|
||||
<cfquery name="local.qCfsSubparam" result="local.result">
|
||||
select
|
||||
@@ -69,15 +46,14 @@ arguments.requestArguments.specificationId=usrCustomerInfo.specificationId; //In
|
||||
</cfif>
|
||||
|
||||
<cfset "local.expression"=local.qCfsSubparam.expression/>
|
||||
<cfset "local.keys.svcOperationCfsParamId" = local.qCfsSubparam.svc_operation_cfs_param_id/>
|
||||
<cfset "local.keys.svcOperationCfsParamId" = local.qCfsSubparam.svc_operation_cfs_param_id/>
|
||||
|
||||
<!--- *** можно обратить внимание, что мы инстанциируем не субпараметр, а параметр (цинично пользуясь их функциональной идентичностью... но некрасиво) --->
|
||||
<cfif len(local.expression)>
|
||||
<cfset local.calculatedValueList=createObject("component","lib.expression_parser")
|
||||
.eval(
|
||||
local.expression,
|
||||
{/*context*/
|
||||
component:"resources.instance_operation_cfs_param", /*param, not subparam*/
|
||||
{
|
||||
component:"resources.instance_operation_cfs_param",
|
||||
keys:#local.keys#,
|
||||
params:#local.params#
|
||||
}
|
||||
@@ -86,12 +62,11 @@ arguments.requestArguments.specificationId=usrCustomerInfo.specificationId; //In
|
||||
<cfelse>
|
||||
<cfreturn representationOf(this.helper.formatMessage("Expression Not Found")).withStatus(404)/>
|
||||
</cfif>
|
||||
<!--- Тут нам еще придется сформатировать лист в массив. Но обошлось довольно просто --->
|
||||
<cfset var out=structNew("linked")/>
|
||||
<cfset "out.queryDurationMs"=getTickCount() - request.startTickCount/>
|
||||
<cfset "out.values" = listToArray(local.calculatedValueList)/>
|
||||
<cfset "out.runDurationMs"=getTickCount() - request.startTickCount/>
|
||||
<cfreturn representationOf(out) />
|
||||
</cffunction><!--- get --->
|
||||
</cffunction>
|
||||
|
||||
</cfcomponent>
|
||||
|
||||
Reference in New Issue
Block a user