cleanup: remove debug artifacts from notification flows
This commit is contained in:
@@ -722,3 +722,54 @@
|
|||||||
- синтаксических ошибок в `v1/resources/instance_default.cfc` не обнаружено
|
- синтаксических ошибок в `v1/resources/instance_default.cfc` не обнаружено
|
||||||
- синтаксических ошибок в `v1/resources/svc_default.cfc` не обнаружено
|
- синтаксических ошибок в `v1/resources/svc_default.cfc` не обнаружено
|
||||||
- синтаксических ошибок в `v1/resources/instance_operation_default.cfc` не обнаружено
|
- синтаксических ошибок в `v1/resources/instance_operation_default.cfc` не обнаружено
|
||||||
|
|
||||||
|
## Обновление: выбран bugfix-adjacent этап по debug-артефактам
|
||||||
|
|
||||||
|
Дата фиксации: 2026-04-29.
|
||||||
|
|
||||||
|
### Выбранные файлы
|
||||||
|
|
||||||
|
- `v1/resources/notification_ls.cfc`
|
||||||
|
- `v1/resources/instance_operation_default.cfc`
|
||||||
|
|
||||||
|
### Цель этапа
|
||||||
|
|
||||||
|
- убрать живые debug-артефакты, которые сейчас влияют на поведение ресурса
|
||||||
|
- сохранить общий контракт ответов и не трогать остальную бизнес-логику
|
||||||
|
- оформить это отдельным коммитом, а не смешивать с чисто косметическим cleanup
|
||||||
|
|
||||||
|
## Обновление: правило по спорным смысловым комментариям
|
||||||
|
|
||||||
|
Дата фиксации: 2026-04-29.
|
||||||
|
|
||||||
|
Уточнена трактовка исходного задания.
|
||||||
|
|
||||||
|
Решение на дальнейшую работу:
|
||||||
|
- явный закомментированный код, debug-хвосты и комментарии-рассуждения удалять
|
||||||
|
- спорные смысловые комментарии, где неочевидно, имелась ли в виду их обязательная зачистка, пока оставлять в коде
|
||||||
|
- не добавлять в исходники новые пометки вида `TODO удалить потом`, чтобы не создавать новый мусор
|
||||||
|
- вести отдельный внешний список кандидатов на удаление в `analysis/comment-removal-candidates-2026-04-29.md`
|
||||||
|
|
||||||
|
Это позволяет не терять спорные места и при этом не засорять исходники новыми временными комментариями.
|
||||||
|
|
||||||
|
### Результат bugfix-adjacent этапа
|
||||||
|
|
||||||
|
Изменены файлы:
|
||||||
|
- `v1/resources/notification_ls.cfc`
|
||||||
|
- `v1/resources/instance_operation_default.cfc`
|
||||||
|
|
||||||
|
Что сделано:
|
||||||
|
- удален живой тестовый возврат `Проверка связи 3` из ветки `invalidParamValue` в `notification_ls.cfc`
|
||||||
|
- убран сопутствующий закомментированный debug-слой вокруг этого ресурса
|
||||||
|
- в `instance_operation_default.cfc` удален `cfdump/cfabort` при ошибке десериализации стейта
|
||||||
|
- вместо аварийного останова оставлен безопасный fallback на пустые структуры
|
||||||
|
|
||||||
|
Дополнительно:
|
||||||
|
- создан внешний список спорных смысловых комментариев: `analysis/comment-removal-candidates-2026-04-29.md`
|
||||||
|
|
||||||
|
### Проверка
|
||||||
|
|
||||||
|
Измененные файлы проверены на ошибки.
|
||||||
|
Результат:
|
||||||
|
- синтаксических ошибок в `v1/resources/notification_ls.cfc` не обнаружено
|
||||||
|
- синтаксических ошибок в `v1/resources/instance_operation_default.cfc` не обнаружено
|
||||||
|
|||||||
@@ -0,0 +1,64 @@
|
|||||||
|
# Спорные кандидаты на удаление комментариев
|
||||||
|
|
||||||
|
Дата создания: 2026-04-29.
|
||||||
|
|
||||||
|
Назначение файла:
|
||||||
|
- фиксировать комментарии, которые могут подпадать под удаление по исходному заданию
|
||||||
|
- не размечать эти места внутри исходников новыми `TODO`
|
||||||
|
- оставить возможность позже быстро пройтись и удалить их одним отдельным этапом, если будет подтверждение
|
||||||
|
|
||||||
|
## Статус правила
|
||||||
|
|
||||||
|
- явный закомментированный код и debug-хвосты удаляются сразу
|
||||||
|
- спорные смысловые комментарии временно оставляются в коде
|
||||||
|
- кандидаты на последующее удаление записываются сюда
|
||||||
|
|
||||||
|
## Кандидаты
|
||||||
|
|
||||||
|
### 1. `v1/resources/instance_operation_default.cfc`
|
||||||
|
|
||||||
|
Оставлены пока что:
|
||||||
|
- комментарий про получение параметров из свежего стейта
|
||||||
|
- комментарии вокруг `formatter`, `value_list`, `default_compute`, `nested_ref_data`
|
||||||
|
- комментарии о частичном дублировании и временности некоторых решений
|
||||||
|
|
||||||
|
Почему спорно:
|
||||||
|
- часть комментариев выглядит как внутренние рассуждения автора
|
||||||
|
- часть при этом все еще помогает понять, зачем код делает нетривиальные вещи
|
||||||
|
|
||||||
|
Рекомендация:
|
||||||
|
- при отдельном подтвержденном этапе можно удалить большую часть комментариев-оценок и оставить только технические пояснения к формату данных
|
||||||
|
|
||||||
|
### 2. `v1/resources/instance_default.cfc`
|
||||||
|
|
||||||
|
Оставлены пока что:
|
||||||
|
- технические комментарии вокруг структуры шаблона экземпляра и вызова генерации имени
|
||||||
|
|
||||||
|
Почему спорно:
|
||||||
|
- часть уже очищена, остаток невелик и не мешает, но при строгом чтении задания может быть сокращен еще сильнее
|
||||||
|
|
||||||
|
Рекомендация:
|
||||||
|
- если потребуется максимально сухой код, пройтись повторно и убрать остаточные пояснения, не влияющие на понимание API-контракта
|
||||||
|
|
||||||
|
### 3. `v1/resources/notification_ls.cfc`
|
||||||
|
|
||||||
|
Оставлены пока что:
|
||||||
|
- короткие технические комментарии про фильтрацию и сортировку
|
||||||
|
|
||||||
|
Почему спорно:
|
||||||
|
- они не являются рассуждениями, но при очень агрессивной зачистке тоже могут считаться лишними
|
||||||
|
|
||||||
|
Рекомендация:
|
||||||
|
- удалять только если решено доводить list-resource до почти полного отсутствия комментариев
|
||||||
|
|
||||||
|
### 4. `v1/resources/instance_operation_cfs_param_ls.cfc`
|
||||||
|
|
||||||
|
Ожидаемо спорный файл для будущего этапа:
|
||||||
|
- содержит большой пласт рассуждений автора, предупреждений и объяснений по валидации, уникальности и доступу
|
||||||
|
|
||||||
|
Почему вынесено заранее:
|
||||||
|
- файл крупный и неоднозначный
|
||||||
|
- лучше разбирать отдельным этапом, чем смешивать с обычной зачисткой компактных ресурсов
|
||||||
|
|
||||||
|
Рекомендация:
|
||||||
|
- перед правкой сначала отделить чистый commented-out код от действительно полезных пояснений к ограничениям параметров
|
||||||
@@ -57,7 +57,8 @@
|
|||||||
<cfset var currentState = deserializeJson(local.qState.instance_data)/>
|
<cfset var currentState = deserializeJson(local.qState.instance_data)/>
|
||||||
<cfset local.instanceDataParams = deserializeJson(local.qState.params)/>
|
<cfset local.instanceDataParams = deserializeJson(local.qState.params)/>
|
||||||
<cfcatch type="ANY">
|
<cfcatch type="ANY">
|
||||||
<cfdump var=#cfcatch#/><cfabort/>
|
<cfset currentState = {}/>
|
||||||
|
<cfset local.instanceDataParams = {}/>
|
||||||
</cfcatch>
|
</cfcatch>
|
||||||
</cftry>
|
</cftry>
|
||||||
</cfif>
|
</cfif>
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
<cfsilent>
|
<cfsilent>
|
||||||
<cfimport prefix="m" taglib="../lib"/>
|
<cfimport prefix="m" taglib="../lib"/>
|
||||||
<cfset this.helper=CreateObject("component","lib.rest_api_helper")/><!---*** странно, почему мы его видим?---><!---вынести в апп?--->
|
<cfset this.helper=CreateObject("component","lib.rest_api_helper")/>
|
||||||
</cfsilent>
|
</cfsilent>
|
||||||
|
|
||||||
<!---спецификация полей, пригодных для фильтрации (?и сортировки)--->
|
<!---спецификация полей, пригодных для фильтрации (?и сортировки)--->
|
||||||
@@ -25,19 +25,18 @@
|
|||||||
<cfargument name="page" type="string" hint="type:integer" default="1"/>
|
<cfargument name="page" type="string" hint="type:integer" default="1"/>
|
||||||
<cfargument name="orderBy" type="string" hint="type:string, description:comma-separated list of fields to sort by, example:fld1.ASC,fld2.DESC,fld3.ASC" default=""/>
|
<cfargument name="orderBy" type="string" hint="type:string, description:comma-separated list of fields to sort by, example:fld1.ASC,fld2.DESC,fld3.ASC" default=""/>
|
||||||
|
|
||||||
<cftry> <!--- отладка на время проблемы 404 --->
|
<cftry>
|
||||||
<cfset local={}/>
|
<cfset local={}/>
|
||||||
|
|
||||||
<!---parse and validate request parameters--->
|
<!---разбор и проверка параметров запроса--->
|
||||||
<cftry>
|
<cftry>
|
||||||
<cfset this.helper.validateField(arguments, "pageSize", "integer")/>
|
<cfset this.helper.validateField(arguments, "pageSize", "integer")/>
|
||||||
<cfset this.helper.validateField(arguments, "page", "integer")/>
|
<cfset this.helper.validateField(arguments, "page", "integer")/>
|
||||||
|
|
||||||
<!---мы мирно игнорируем поля, отсутствующие в спецификации, что позволяет не делать исключения для orderBy и т.п.--->
|
<!---мы мирно игнорируем поля, отсутствующие в спецификации, что позволяет не делать исключения для orderBy и т.п.--->
|
||||||
<cfset var filter=this.helper.parseFilterParams(this.fieldsSpec)/>
|
<cfset var filter=this.helper.parseFilterParams(this.fieldsSpec)/>
|
||||||
<!--- <cfset var order=this.helper.parseOrderBy(this.fieldsSpec, arguments.orderBy)/> --->
|
|
||||||
|
|
||||||
<cfcatch type="invalidParamValue"><cfreturn representationOf("Проверка связи 3")>
|
<cfcatch type="invalidParamValue">
|
||||||
<cfreturn representationOf(this.helper.formatBadRequestError(cfcatch)).withStatus(400)/>
|
<cfreturn representationOf(this.helper.formatBadRequestError(cfcatch)).withStatus(400)/>
|
||||||
</cfcatch>
|
</cfcatch>
|
||||||
<cfcatch type="any">
|
<cfcatch type="any">
|
||||||
@@ -49,8 +48,6 @@
|
|||||||
<cfset var maxrows=arguments.pageSize*arguments.page/>
|
<cfset var maxrows=arguments.pageSize*arguments.page/>
|
||||||
<cfset var startrow=arguments.pageSize*(arguments.page-1)+1/>
|
<cfset var startrow=arguments.pageSize*(arguments.page-1)+1/>
|
||||||
|
|
||||||
<!--- <cfset request.locateIamService()/> --->
|
|
||||||
|
|
||||||
<cfquery name="local.qRead" result="local.result">
|
<cfquery name="local.qRead" result="local.result">
|
||||||
select
|
select
|
||||||
<m:field_set titleMapOut="local.titleMap" lengthOut="local.fieldCount">
|
<m:field_set titleMapOut="local.titleMap" lengthOut="local.fieldCount">
|
||||||
@@ -61,11 +58,8 @@
|
|||||||
<m:field>n.timeout_sec</m:field>
|
<m:field>n.timeout_sec</m:field>
|
||||||
<m:field>n.contragent_id</m:field>
|
<m:field>n.contragent_id</m:field>
|
||||||
<m:field>k.external_uid</m:field>
|
<m:field>k.external_uid</m:field>
|
||||||
<!--- <m:field><cfqueryparam cfsqltype="cf_sql_other" value=#arguments.companyUid#/> as arguments_company_uid</m:field> --->
|
|
||||||
<m:field>to_char(n.dt_show_from, 'YYYY-MM-DD"T"HH24:MI:SS.FF3TZHTZM') as dt_show_from</m:field>
|
<m:field>to_char(n.dt_show_from, 'YYYY-MM-DD"T"HH24:MI:SS.FF3TZHTZM') as dt_show_from</m:field>
|
||||||
<m:field>to_char(n.dt_show_to, 'YYYY-MM-DD"T"HH24:MI:SS.FF3TZHTZM') as dt_show_to</m:field>
|
<m:field>to_char(n.dt_show_to, 'YYYY-MM-DD"T"HH24:MI:SS.FF3TZHTZM') as dt_show_to</m:field>
|
||||||
<!--- <m:field>to_char(n.dt_created, 'YYYY-MM-DD"T"HH24:MI:SS.FF3TZHTZM') as dt_created</m:field>
|
|
||||||
<m:field>to_char(n.dt_updated, 'YYYY-MM-DD"T"HH24:MI:SS.FF3TZHTZM') as dt_updated</m:field> --->
|
|
||||||
</m:field_set>
|
</m:field_set>
|
||||||
from notification n
|
from notification n
|
||||||
left outer join contragent k on (n.contragent_id=k.contragent_id)
|
left outer join contragent k on (n.contragent_id=k.contragent_id)
|
||||||
@@ -74,11 +68,8 @@
|
|||||||
AND (n.dt_show_to >= CURRENT_TIMESTAMP OR n.dt_show_to IS NULL)
|
AND (n.dt_show_to >= CURRENT_TIMESTAMP OR n.dt_show_to IS NULL)
|
||||||
AND (k.external_uid = <cfqueryparam cfsqltype="cf_sql_other" value=#arguments.companyUid#/> OR n.contragent_id IS NULL)
|
AND (k.external_uid = <cfqueryparam cfsqltype="cf_sql_other" value=#arguments.companyUid#/> OR n.contragent_id IS NULL)
|
||||||
order by dt_show_from desc
|
order by dt_show_from desc
|
||||||
<!--- <m:order_build sortCollection=#this.helper.parseNumericOrder(local.titleMap, arguments.orderBy)# fieldCount=0/>--->
|
|
||||||
limit #maxrows#
|
limit #maxrows#
|
||||||
</cfquery>
|
</cfquery>
|
||||||
<!--- <cfdump var=#local.qRead#/><cfabort/> --->
|
|
||||||
|
|
||||||
|
|
||||||
<cfquery name="local.qTotal">
|
<cfquery name="local.qTotal">
|
||||||
select count(*) as cnt
|
select count(*) as cnt
|
||||||
@@ -107,7 +98,6 @@
|
|||||||
<cfset "out.size"=#arrayLen(resultCollection)#/>
|
<cfset "out.size"=#arrayLen(resultCollection)#/>
|
||||||
<cfset "out.results"=#resultCollection#/>
|
<cfset "out.results"=#resultCollection#/>
|
||||||
<cfset "out.runDurationMs"=getTickCount()-request.startTickCount/>
|
<cfset "out.runDurationMs"=getTickCount()-request.startTickCount/>
|
||||||
<!---<cfset "out.sql"=#local.result.sql#/>--->
|
|
||||||
<cfreturn representationOf(out)/>
|
<cfreturn representationOf(out)/>
|
||||||
|
|
||||||
<cfcatch type="any">
|
<cfcatch type="any">
|
||||||
@@ -116,9 +106,4 @@
|
|||||||
</cftry>
|
</cftry>
|
||||||
|
|
||||||
</cffunction>
|
</cffunction>
|
||||||
|
|
||||||
<!--- <cffunction name="get" hint="проверка">
|
|
||||||
<cfreturn representationOf("Проверка связи")/>
|
|
||||||
</cffunction> --->
|
|
||||||
|
|
||||||
</cfcomponent>
|
</cfcomponent>
|
||||||
Reference in New Issue
Block a user