186 array-map-fixed fidex

This commit is contained in:
2025-12-05 09:33:07 +03:00
parent 76ff672dee
commit 6fc908b6ef
7 changed files with 683 additions and 25 deletions
+608
View File
@@ -0,0 +1,608 @@
commit 76ff672deed116e5d496ac68ee3e3f9c4c6df677 (HEAD -> dev)
Author: unknown <smishchuk@nubes.ru>
Date: Thu Dec 4 10:04:12 2025 +0300
185 vault_record log to stdout
commit c89467fbae24968e74f09d74a8f9b366eec4a30b (origin/dev, origin/HEAD)
Author: unknown <smishchuk@nubes.ru>
Date: Sat Nov 29 20:21:15 2025 +0300
184 bugfix
commit 510a7a8f74c9966f999a56737d64304e278b8d96
Author: unknown <smishchuk@nubes.ru>
Date: Fri Nov 28 19:15:00 2025 +0300
183 bugfix
commit fafbaa4428750a88ae46ac7b2646e18cff5575ba
Author: unknown <smishchuk@nubes.ru>
Date: Fri Nov 28 19:05:52 2025 +0300
182 bugfix
commit db40a821ddc9a54d8ebfd74e61fb63920c909551
Author: unknown <smishchuk@nubes.ru>
Date: Fri Nov 28 17:12:12 2025 +0300
181 logVaultAccess fix
commit a8fc4829cc2ad3b7aec43885bdc26221e634578e
Author: unknown <smishchuk@nubes.ru>
Date: Thu Nov 27 18:15:22 2025 +0300
180 logVaultAccess fix
commit 84c7d00072c942c02ec9f3038bfb02e76d066135
Author: unknown <smishchuk@nubes.ru>
Date: Thu Nov 27 16:57:14 2025 +0300
179 logVaultAccess
commit 17238d34f9eecd0e899ad1bc5ccc6d7c0db47b9d
Author: unknown <smishchuk@nubes.ru>
Date: Wed Nov 26 09:38:04 2025 +0300
187 map: subparam additional properties
commit fb430499eb6252032780dbd8e674f16f1b692d99
Author: unknown <smishchuk@nubes.ru>
Date: Wed Nov 26 09:36:59 2025 +0300
187 map: subparam additional properties
commit 7b06f16ca4cfff21802573f0fec95f2c222d60fe
Author: unknown <smishchuk@nubes.ru>
Date: Sat Nov 22 22:57:46 2025 +0300
177 instance.delete
commit 1f93e137d607fe27a2052ba53db8750dd6e0dc32
Author: unknown <smishchuk@nubes.ru>
Date: Sat Nov 22 17:20:23 2025 +0300
176 custom url parser in rest_api_helper
commit 66248c20814d5d416c4376b313fd2952ad068036
Author: unknown <smishchuk@nubes.ru>
Date: Fri Nov 21 13:23:22 2025 +0300
175 map sensitive key value masked
commit 8f5c0a472e06a8d14c6ec0da45b02ef44b0fd0ad
Author: unknown <smishchuk@nubes.ru>
Date: Thu Nov 20 18:16:13 2025 +0300
174 instance.instanceData removed
commit 36c4aaef582a4e13e9adb6a123b2be443ee6a708
Author: unknown <smishchuk@nubes.ru>
Date: Thu Nov 20 17:39:02 2025 +0300
173 instance_data.vault moved up, filter became array and supports multiple field entries
commit 503df018aab77e7664ebab9196b401f16e77bb5c
Author: unknown <smishchuk@nubes.ru>
Date: Thu Nov 20 14:58:43 2025 +0300
172 instance_operation_ls paging bug fix
commit 210560d973a142a65be9d52cc7ce8bacc8ce6c27
Author: unknown <smishchuk@nubes.ru>
Date: Thu Nov 20 10:56:36 2025 +0300
171 instance_operation_ls updater_shortname
commit 701ca4d320950c08d0d00bce9ca504519433f3bc
Author: unknown <smishchuk@nubes.ru>
Date: Wed Nov 19 20:59:02 2025 +0300
170 minor fix
commit a204345d446983b256b8a3273a044286ceae51e7
Author: unknown <smishchuk@nubes.ru>
Date: Wed Nov 19 20:48:17 2025 +0300
169 removing instance_data 1
commit 7cf6d8b195e3eb2a25dea268e10b85b44d22ee11
Author: unknown <smishchuk@nubes.ru>
Date: Wed Nov 19 18:09:35 2025 +0300
168 bug fix
commit 485efb12c343ea492f1c6d7eef5b154bb0878e99
Author: unknown <smishchuk@nubes.ru>
Date: Fri Nov 14 17:52:58 2025 +0300
167 instances search synonyms bugfix
commit 5c5a8918ed99a04d90c91e85ae2056b77308d4a4
Author: unknown <smishchuk@nubes.ru>
Date: Fri Nov 14 17:43:35 2025 +0300
166 instances search synonyms
commit 2f9478244ec3693e0434f729fa0ff3246f32d7a2
Author: unknown <smishchuk@nubes.ru>
Date: Thu Nov 13 15:57:07 2025 +0300
165 instance vaultData removed
commit 869c2c0b81a15f1ffaad896f5aba6ea51b08c0ed
Author: unknown <smishchuk@nubes.ru>
Date: Thu Nov 13 15:43:31 2025 +0300
164 instance.resource_realm_cnt
commit 1a268626c485e9b3fa755361afd0db1590146855
Author: unknown <smishchuk@nubes.ru>
Date: Thu Nov 13 14:59:41 2025 +0300
163 instance_operation_ls
commit 0826c64d4afd43d15bce099b16b4c8b1b9818b37
Author: unknown <smishchuk@nubes.ru>
Date: Wed Nov 12 17:46:43 2025 +0300
163 svc resourceRealmCnt
commit 8ead2f57763d8b12cac3921859d3f257bc730fa5
Author: unknown <smishchuk@nubes.ru>
Date: Wed Nov 12 17:23:11 2025 +0300
161 svc_grouped_ls svc_extended_name
commit a866bc74e7edc36addd7abdb59e1d0ed4148ec95
Author: unknown <smishchuk@nubes.ru>
Date: Wed Nov 12 16:35:29 2025 +0300
160 vault_record conditionally marshalled, svc search by synonyms
commit 61c0bd9e588e88f39ae1433340122484ab4bd30f
Author: unknown <smishchuk@nubes.ru>
Date: Wed Nov 12 09:01:02 2025 +0300
159 vault_record marshalled
commit d88b83a04a58d7baa83e993aadae546e2e433f48
Author: unknown <smishchuk@nubes.ru>
Date: Sat Nov 1 22:17:11 2025 +0300
158 vault_record fixes
commit 7f664a09753fe34f4cc57930045d15f209fad84b
Author: unknown <smishchuk@nubes.ru>
Date: Sat Nov 1 22:14:37 2025 +0300
157 vault_record fixes
commit ad5ecdf9e1a34bf19ca7eed6e0a480987cb06d9b
Author: unknown <smishchuk@nubes.ru>
Date: Sat Nov 1 17:14:02 2025 +0300
157 vault_record fixes
commit b9dffa25735d9c59dc3d77bc591a9fc92e4be5be
Merge: 5407b60 fe57108
Author: unknown <smishchuk@nubes.ru>
Date: Sat Nov 1 15:57:40 2025 +0300
156 svc.resource_realm_cnt
commit 5407b604ae66971a6a2a290eb5c45eb070a02b9a
Author: unknown <smishchuk@nubes.ru>
Date: Sat Nov 1 15:56:42 2025 +0300
156 svc.resource_realm_cnt
commit fe5710820685406ee581371afc376e3cff265112
Author: Мищук Сергей (adm) <adm_smishchuk@nubes.ru>
Date: Tue Oct 28 11:20:07 2025 +0300
155 bug fix
commit fd3cee87d25a0d7a085772093b6d0f5c6e2ac967
Author: unknown <smishchuk@nubes.ru>
Date: Mon Oct 27 13:10:00 2025 +0300
154 bug fix
commit 3f61e8919bde64c00430f52fa9dfbe925f6bf13a
Author: unknown <smishchuk@nubes.ru>
Date: Fri Oct 24 19:09:22 2025 +0300
153 vault secrets
commit abd4487226b34db803b01603f4e79a18df9d91ef
Author: unknown <smishchuk@nubes.ru>
Date: Fri Oct 17 08:11:42 2025 +0300
152 getListFromState instance_operation_default *** fix exception handlng
commit bec77bb20aa3677dcf0f3cb3d7ab52b4a495fa40
Author: unknown <smishchuk@nubes.ru>
Date: Thu Oct 16 11:23:48 2025 +0300
151 getListFromState
commit e33a9700afb5d8ef878d726c3b6f59aee48aadee
Merge: e56fcc6 4193c0a
Author: unknown <smishchuk@nubes.ru>
Date: Wed Oct 8 15:12:50 2025 +0300
Merge branch 'dev' of https://gitea.mgmt.nubes.ru/deck/svc-api into dev
commit e56fcc6c56cacc657e9e4d548e8c2d1a4cf9d456
Author: unknown <smishchuk@nubes.ru>
Date: Wed Oct 8 15:09:32 2025 +0300
150
commit 4193c0a92ed9dc7fbf51892f782328895ae389cc
Author: Vitaliy Zaytsev <vzaytsev@nubes.ru>
Date: Tue Sep 30 12:57:43 2025 +0300
Correct vault url for clients
commit b52f477e5ce0afd7a3ecef7266de36b1f128ccf7
Author: Vitaliy Zaytsev <vzaytsev@nubes.ru>
Date: Tue Sep 30 12:56:56 2025 +0300
Correct vault url for clients
commit 94c1dd98c24a64ae35409e612753099484e34855
Author: msyu <msyu@mail.ru>
Date: Thu Sep 25 18:24:34 2025 +0300
149 request.usr_id bugfix
commit 023a5ce176c51c6e6532071ed72b110e516f4f2c
Author: msyu <msyu@mail.ru>
Date: Thu Sep 25 17:21:08 2025 +0300
148 request.usr_id bugfix
commit 813f01b4648dcea9fef7870e6f059bd976bdd58b
Author: msyu <msyu@mail.ru>
Date: Thu Sep 25 17:02:04 2025 +0300
147 request.usr_id bugfix
commit f3f00423e9f54c6f57c274d36499486a435cbf72
Author: msyu <msyu@mail.ru>
Date: Thu Sep 25 11:34:55 2025 +0300
146 request.usr_id bugfix
commit eb599310cce4e121eb91437d8c2aa668456e37d7
Author: msyu <msyu@mail.ru>
Date: Wed Sep 24 14:09:54 2025 +0300
145 specification_id checks
commit 93453fec88d6221e8177a0e4bab9a093a27e4090
Author: msyu <msyu@mail.ru>
Date: Wed Sep 24 14:09:14 2025 +0300
144 specification_id checks
commit f96659f31d152fbee26ad34e993e0f7571d36ddc
Author: msyu <msyu@mail.ru>
Date: Tue Sep 23 15:36:47 2025 +0300
144 authHeader bug fix
commit dda4cc8fb2bc337ab8cffdf68a66d90be89375ca
Author: msyu <msyu@mail.ru>
Date: Mon Sep 22 18:59:22 2025 +0300
143 vault from env
commit 9fc462c87b8bde6055fb00d268891b4112c6a5b2
Author: msyu <msyu@mail.ru>
Date: Thu Sep 18 19:02:32 2025 +0300
142 authHeader
commit fd0f77806e580ac720a6d1743397658741ff3b98
Author: msyu <msyu@mail.ru>
Date: Thu Sep 18 18:24:53 2025 +0300
141 auth_header
commit ccf2231657429d547e7f880e113df5d3bf109ba1
Merge: 424a90c b6a9172
Author: msyu <msyu@mail.ru>
Date: Wed Sep 10 20:19:27 2025 +0300
Merge branch 'dev' of https://gitea.mgmt.nubes.ru/deck/svc-api into dev
commit 424a90cf31cdabb9996f1a2315135ebbde3fabbd
Author: msyu <msyu@mail.ru>
Date: Wed Sep 10 20:19:02 2025 +0300
140 dependencies bugfix
commit b6a9172509ead13a1f08b1a45f9ea2f992e0b861
Author: Vitaliy Zaytsev <vzaytsev@nubes.ru>
Date: Tue Sep 9 13:00:50 2025 +0300
Added label version
commit 9c8261d03100eb383a7b9b3e4821c51aa6d03490
Author: Vitaliy Zaytsev <vzaytsev@nubes.ru>
Date: Tue Sep 9 12:43:41 2025 +0300
Переделка CI/CD
commit 68bf3f9056812bdf52cb6db1965076a87f39e815
Author: msyu <msyu@mail.ru>
Date: Mon Sep 8 21:52:46 2025 +0300
139 dependencies 2 way
commit 8f072bb6102f283b7059bb0f4bd402a0e84a0080
Author: msyu <msyu@mail.ru>
Date: Sat Sep 6 19:17:59 2025 +0300
138 filter_build operator in sets list=true
commit 0437e37c5e1d328acc5fe4a636a0368c0feca825
Author: msyu <msyu@mail.ru>
Date: Sat Sep 6 19:08:11 2025 +0300
137 instance_ls filter list
commit 81e0b823c77747005f641ca21b3acbfc00d39013
Author: msyu <msyu@mail.ru>
Date: Thu Sep 4 13:38:10 2025 +0300
136 dependent instances 3
commit 62cfc91eb33aa25339802a22439c61c0beb21a22
Author: msyu <msyu@mail.ru>
Date: Tue Sep 2 23:39:10 2025 +0300
135 dependent instances 2
commit a26298fae73615c2485299f99f2f2dd513ee59fe
Author: msyu <msyu@mail.ru>
Date: Tue Sep 2 23:31:41 2025 +0300
135 dependent instances
commit d99a4a43f159bd3f911740bb1579bd22400e822c
Author: msyu <msyu@mail.ru>
Date: Tue Sep 2 11:00:38 2025 +0300
134 resource Realm fix
commit 6d36323d68ca6d72b0fe0e9f11aa4139f7783852
Author: msyu <msyu@mail.ru>
Date: Tue Sep 2 10:21:25 2025 +0300
133 resource Realm debug
commit ee105323d26f9f3f0d40be9d17682d125915793f
Author: msyu <msyu@mail.ru>
Date: Mon Sep 1 21:52:24 2025 +0300
132 instance_operation_cfs_param fix for resourceRealm
commit 9d0e4f20d91c8c16956db72cb95aafbbb86e9276
Author: msyu <msyu@mail.ru>
Date: Mon Sep 1 13:40:38 2025 +0300
131 instance_data field removed
commit f3954bfd7a8a932790221848a84491466e1df9d7
Author: msyu <msyu@mail.ru>
Date: Wed Aug 27 12:25:54 2025 +0300
129 user-agent
commit 6452d7bdb5a0d1e90303673729a58548abc09545
Author: msyu <msyu@mail.ru>
Date: Fri Aug 8 18:12:43 2025 +0300
128 thread safety debug
commit e2cd839e753a7af0493401bf8844e024a7026a4a
Author: msyu <msyu@mail.ru>
Date: Mon Aug 4 11:09:24 2025 +0300
127 svc.iconSrc
commit ea35d227c33e377af693b647e9ef856861aa077f
Author: msyu <msyu@mail.ru>
Date: Thu Jul 31 13:47:27 2025 +0300
126 svc_grouped_ls bugfix
commit 4de33d7f3f3e6af9cf9edfb4f99dc12e8e578a6c
Author: msyu <msyu@mail.ru>
Date: Thu Jul 10 12:46:37 2025 +0300
125 resource realm rfs check modification
commit ba0092033631d5bb3b13f0045a5531f4924adc6e
Author: msyu <msyu@mail.ru>
Date: Thu Jul 10 12:15:17 2025 +0300
124 svc_grouped_ls reorganized
commit 903c0b8e65404131b5cc52dcf90feae6465d3e81
Author: msyu <msyu@mail.ru>
Date: Wed Jul 9 17:12:14 2025 +0300
123 resource realm relaxation
commit f0d0bda87cf5be3f5902e3b8e483e7a9b02e6265
Author: msyu <msyu@mail.ru>
Date: Wed Jul 9 16:03:47 2025 +0300
122 services_grouped_ls for catalog
commit 16ec60208a16264df132684c1c1d25f6164dcdca
Author: msyu <msyu@mail.ru>
Date: Wed Jul 2 19:20:54 2025 +0300
121 changed auth
commit a1278b00e750f14747169c87e964f59ba2c502c4
Author: msyu <msyu@mail.ru>
Date: Wed Jul 2 16:11:07 2025 +0300
120 instance dependencies bug fix
commit 8262ade42319d8a44d7dc798c3084db7db2afcea
Author: msyu <msyu@mail.ru>
Date: Tue Jul 1 18:19:34 2025 +0300
119 instance dependencies
commit 13e1b5cbe595ab5da24772b53f44956f14cf939c
Author: msyu <msyu@mail.ru>
Date: Tue Jul 1 14:30:08 2025 +0300
118 nested refs intermed instance_operation
commit a0bc1476d6a53948d2a0b2197df592748104248a
Author: msyu <msyu@mail.ru>
Date: Tue Jul 1 11:54:58 2025 +0300
117 nested refs intermediate
commit 48b9fcf890ca791c98dd8ec15800727f5724a750
Author: msyu <msyu@mail.ru>
Date: Thu Jun 26 15:16:31 2025 +0300
116 stage_msg
commit f231d8de75739567fe215a61832e20322ee3ded3
Author: msyu <msyu@mail.ru>
Date: Mon Jun 23 17:22:20 2025 +0300
to restart connection pool
commit ffdb01d9e486490f290e23e18d89a691dd9007c1
Author: msyu <msyu@mail.ru>
Date: Wed Jun 18 20:31:00 2025 +0300
115 job url split version from state
commit a1acf0833b14412023f11a674851f1da1edf2815
Author: msyu <msyu@mail.ru>
Date: Wed Jun 18 19:53:39 2025 +0300
114 split job url
commit d66813302c2060b2f17d765e410915d6a3615c47
Author: msyu <msyu@mail.ru>
Date: Wed Jun 11 12:14:04 2025 +0300
113 pending
commit 98aac1ea171e0c2a57bd338335b632e9e849ff6b
Author: msyu <msyu@mail.ru>
Date: Tue May 27 17:35:10 2025 +0300
112 serialized json string in default op, minmax
commit d078e64cfe0ef7b0003ac579b009250a929030fa
Author: msyu <msyu@mail.ru>
Date: Fri May 23 14:53:02 2025 +0300
111 subparam fixes
commit 4d6f111d3d53832e7fc92418d27a61f22bc74fb6
Author: msyu <msyu@mail.ru>
Date: Fri May 23 13:00:54 2025 +0300
111 man added in many places
commit e99c2af2a38d4bea7c8c8bee997eae40d05c565c
Author: msyu <msyu@mail.ru>
Date: Tue May 20 21:23:04 2025 +0300
111 instance.uptime (detail) fix
commit ce91993b923a0ad7b5b2e903e1ecb0b1cc0da36d
Author: msyu <msyu@mail.ru>
Date: Mon May 19 17:52:29 2025 +0300
110 subparam fixes
commit e51a2c0cf57096f027e2e285dac2528dde43d724
Author: msyu <msyu@mail.ru>
Date: Mon May 19 15:48:41 2025 +0300
109 cfs subparams
commit e4832ee8784642d985e8393e522c8f4f95f44556
Author: msyu <msyu@mail.ru>
Date: Fri May 16 17:15:05 2025 +0300
108 bookmark claen fix
commit 381f5f1b4e66109498e20b89840f0b85bcef0c61
Author: msyu <msyu@mail.ru>
Date: Thu May 15 17:33:01 2025 +0300
107 common bookmarks fix
commit d68e194b94e9c8c24d590937fb4833f614592a25
Author: msyu <msyu@mail.ru>
Date: Thu May 15 16:51:26 2025 +0300
106 common bookmarks
commit b5972a20940e5319cad3eef08587bffa9a3a9cfc
Author: msyu <msyu@mail.ru>
Date: Thu May 15 16:18:23 2025 +0300
105 instance_ls optimization fixes
commit 96157254980a4bad89b727e966a06f9b16ee50a4
Author: msyu <msyu@mail.ru>
Date: Thu May 15 13:21:18 2025 +0300
104 instance_ls optimization
commit 95da82b6dfc123c3cd344a5b94fc5f4a82257d66
Author: msyu <msyu@mail.ru>
Date: Tue May 13 22:32:29 2025 +0300
103 bookmark fixes
commit 7b9e811ccedba177f397302fb7f0d03eb5506ed8
Author: msyu <msyu@mail.ru>
Date: Wed Apr 30 12:27:10 2025 +0300
102 cleaning
commit 063474d70422fe0b9c98834e590032f893c9a85c
Author: msyu <msyu@mail.ru>
Date: Tue Apr 29 11:55:57 2025 +0300
101 distinct bugfix
commit 29e98cb65f354d642a40119583c20736ccb4bc89
Author: msyu <msyu@mail.ru>
Date: Mon Apr 28 18:51:38 2025 +0300
100 instance_operation_default with memory
commit fbb0d2ae5cae0d25dcf0f1e1affba9d4923caed9
Author: msyu <msyu@mail.ru>
Date: Wed Apr 23 13:44:38 2025 +0300
099 resourceRealm fix
commit a97a4422cca4c41f137232eb2c8b0d1f3b4523d0
Author: msyu <msyu@mail.ru>
Date: Wed Apr 23 12:15:57 2025 +0300
098 operationIsPending
+1 -1
View File
@@ -57,7 +57,7 @@
//variables.framework.docs={}; //variables.framework.docs={};
variables.framework.docs.APIName="svc-api"; variables.framework.docs.APIName="svc-api";
variables.framework.docs.APIVersion="0.185"; /*$ git config --global --unset user.password*/ variables.framework.docs.APIVersion="0.186"; /*$ git config --global --unset user.password*/
variables.framework.globalHeaders = structNew(); variables.framework.globalHeaders = structNew();
variables.framework.globalHeaders["Access-Control-Expose-Headers"] = "Location"; variables.framework.globalHeaders["Access-Control-Expose-Headers"] = "Location";
+3 -1
View File
@@ -322,10 +322,12 @@
<!--- маскируем секреты ---> <!--- маскируем секреты --->
<cfif local.qCfsParam.is_sensitive> <cfif local.qCfsParam.is_sensitive>
<cfset local.params[paramName]="********"/> <cfset local.params[paramName]="********"/>
<cfelseif local.qCfsParam.data_type EQ "map"><!--- Не разбираем вариант "sensitive map" ---> <cfelseif local.qCfsParam.data_type EQ "map" OR local.qCfsParam.data_type EQ "map-fixed" OR local.qCfsParam.data_type EQ "array-map-fixed">
<!--- Не разбираем вариант "sensitive map" --->
<!--- <cfset processMap(local.qCfsParam)/> ---><!--- query passed by reference ---> <!--- <cfset processMap(local.qCfsParam)/> ---><!--- query passed by reference --->
<!--- маскируем секреты в map ---> <!--- маскируем секреты в map --->
<!--- *** сделано ненадежно, с расчетом на структуру qCfsParam (ради этого ее пришлось дополнить) ---> <!--- *** сделано ненадежно, с расчетом на структуру qCfsParam (ради этого ее пришлось дополнить) --->
<!--- что характерно, мы передаем запрос (с фокусом, установленным на текущую строку) по ссылке и прямо там ее патчим --->
<cfset CreateObject("component", "instance_operation_cfs_param").processMap(local.qCfsParam)/> <cfset CreateObject("component", "instance_operation_cfs_param").processMap(local.qCfsParam)/>
</cfif> </cfif>
</cfif> </cfif>
+1 -1
View File
@@ -207,7 +207,7 @@
/> />
</cfif> </cfif>
<cfif data_type EQ "map"> <cfif data_type EQ "map" OR data_type EQ "map-fixed" OR data_type EQ "array-map-fixed">
<cfinvoke component="instance_operation_cfs_param" method="processMap" qParam=#local.qCfsParam#/> <cfinvoke component="instance_operation_cfs_param" method="processMap" qParam=#local.qCfsParam#/>
</cfif><!---/map ---> </cfif><!---/map --->
</cfloop> </cfloop>
+68 -17
View File
@@ -105,7 +105,7 @@ arguments.requestArguments.specificationId=usrCustomerInfo.specificationId; //In
<cfset local.qCfsParam.value_list = getListFromState(currentState, local.qCfsParam.state_path)/> <cfset local.qCfsParam.value_list = getListFromState(currentState, local.qCfsParam.state_path)/>
</cfif> </cfif>
<cfif local.qCfsParam.data_type EQ "map"> <cfif local.qCfsParam.data_type EQ "map" OR data_type EQ "map-fixed" OR data_type EQ "array-map-fixed">
<cfset processMap(local.qCfsParam)/><!--- query passed by reference ---> <cfset processMap(local.qCfsParam)/><!--- query passed by reference --->
</cfif> </cfif>
@@ -230,14 +230,24 @@ arguments.requestArguments.specificationId=usrCustomerInfo.specificationId; //In
<cfset CreateObject("component", "instance_operation_cfs_param_ls").checkParam(local.qCheck.svc_operation_cfs_param_id, arguments.paramValue, arguments.usrId, arguments.instanceOperationCfsParamUid)/> <cfset CreateObject("component", "instance_operation_cfs_param_ls").checkParam(local.qCheck.svc_operation_cfs_param_id, arguments.paramValue, arguments.usrId, arguments.instanceOperationCfsParamUid)/>
</cffunction> </cffunction>
<cffunction name="processMap" returntype="void" access="public"> <cffunction name="processMap" returntype="void" access="public">
<cfargument name="qParam" type="query" required=true/> <cfargument name="qParam" type="query" required=true/><!--- работаем с текущей строкой query. передача query это скорее колхоз, всего-то надо 4 понятных аргумента.
Конечно, то, что часть из них - id, не упрощает восприяие кода --->
<!--- Выполняем 2 задачи (*** вероятно, правильно их разделить по разным функциям)
- сформировать дескриптор
- замаскировать секреты --->
здесь могут использоваться 2 критерия: формат аргумента, array/struct, либо тип
<cfset var map={}/> <cfset local.spContainer = {}/><!--- может быть map или array of map --->
<cftry> <cfset local.spMapArray = []/>
<cfset map=deserializeJson(arguments.qParam.param_value)/> <!--- мы хотим обработать и случай array-map-fixed --->
<cfif !isStruct(map)> <cftry>
<cfset map={}/> <cfset local.spContainer = deserializeJSON(arguments.qParam.param_value)/> <!--- а собственно зачем нам тут local? помогает чем-то? --->
<cfif (arguments.qParam.data_type EQ "array-map-fixed")>
<cfset local.spMapArray = isEmpty(local.spContainer) ? [] : local.spContainer />
<cfelse>
<cfset local.spMapArray = [local.spContainer]/>
</cfif> </cfif>
<cfcatch type="any"> <cfcatch type="any">
<cfrethrow/> <cfrethrow/>
@@ -279,8 +289,8 @@ arguments.requestArguments.specificationId=usrCustomerInfo.specificationId; //In
order by sp.sort order by sp.sort
</cfquery> </cfquery>
<cfset var mapDescriptor=structNew("linked")/> <!--- формируем дескриптор --->
<cfset var mapDescriptor=structNew("linked")/>
<cfloop query="local.qSubparam"> <cfloop query="local.qSubparam">
<cfset structInsert(mapDescriptor, local.qSubparam.svc_operation_cfs_subparam, <cfset structInsert(mapDescriptor, local.qSubparam.svc_operation_cfs_subparam,
{ {
@@ -299,13 +309,27 @@ arguments.requestArguments.specificationId=usrCustomerInfo.specificationId; //In
}, true }, true
) )
/> />
<cfif local.qSubparam.is_sensitive AND structKeyExists(map,local.qSubparam.svc_operation_cfs_subparam)> </cfloop>
<cfset map["#local.qSubparam.svc_operation_cfs_subparam#"] = "********"/>
</cfif> <cfloop index="local.i" from=1 to=#arrayLen(local.spMapArray)#><!--- *** искусственное оборачивание в массив вот для этого, не придумал ничего умнее
</cfloop> чтобы не дублировать цикл по субпараметрам. Сделано некрасиво, но работать должно.
Ну а как сделать? Если массив - делать цикл по массиву, а если map-сразу обрабатыввать map. При этом запрос к таблице сабпараметров не хочется делать лишний раз.
--->
<!--- может быть, лучше смотрелось бы arrayMap, но тут в ней будет цикл по query, и надо это делать в cfscript... строчек будет явно больше,
и в cfscript циклы по query какие-то я не помню ... кстати, вместо цикла по query можно наверно использовать structMap по контенту --->
<!--- интересная и неожиданная разница между циклом по массиву и циклом по индексу массива:
в первом случае возвращается копия элемента, во втором мы естественно имеем дело со ссылокой на элемент,
а нам сейчас нужно второе --->
<cfloop query="local.qSubparam">
<cfif local.qSubparam.is_sensitive AND structKeyExists(local.spMapArray[local.i],local.qSubparam.svc_operation_cfs_subparam)>
<cfset local.spMapArray[local.i]["#local.qSubparam.svc_operation_cfs_subparam#"] = "********"/>
</cfif>
</cfloop>
</cfloop>
<!--- *** проверку, что это не map-fixed, можно добавить здесь ---> <!--- *** проверку, что это не map-fixed, можно добавить здесь --->
<!--- чтобы не вставляли в параметр что попало ---> <!--- чтобы не вставляли в параметр что попало --->
<!--- здесь мы не делаем цикл по массиву, поскольку не поддерживаем массив расширяемых map --->
<cfloop query="local.qInstSubparam"> <cfloop query="local.qInstSubparam">
<cfset structInsert(mapDescriptor, local.qInstSubparam.instance_operation_cfs_subparam, <cfset structInsert(mapDescriptor, local.qInstSubparam.instance_operation_cfs_subparam,
{ {
@@ -315,13 +339,18 @@ arguments.requestArguments.specificationId=usrCustomerInfo.specificationId; //In
}, true }, true
) )
/> />
<cfif local.qInstSubparam.is_sensitive AND structKeyExists(map,local.qInstSubparam.instance_operation_cfs_subparam)> <cfif local.qInstSubparam.is_sensitive AND structKeyExists(local.spmap,local.qInstSubparam.instance_operation_cfs_subparam)>
<cfset map["#local.qInstSubparam.instance_operation_cfs_subparam#"] = "********"/> <cfset local.spmap["#local.qInstSubparam.instance_operation_cfs_subparam#"] = "********"/>
</cfif> </cfif>
</cfloop> </cfloop>
<cfset arguments.qParam.data_descriptor = mapDescriptor/> <cfset arguments.qParam.data_descriptor = mapDescriptor/>
<cfset arguments.qParam.param_value = serializeJson(map)/>
<cfif (arguments.qParam.data_type EQ "array-map-fixed")>
<cfset arguments.qParam.param_value = serializeJson(local.spMapArray)/><!--- как есть --->
<cfelse>
<cfset arguments.qParam.param_value = serializeJson(local.spMapArray[1])/><!--- вытаскиваем из массива-обертки --->
</cfif>
</cffunction> </cffunction>
@@ -367,6 +396,28 @@ arguments.requestArguments.specificationId=usrCustomerInfo.specificationId; //In
<cfreturn valueList(local.qAvailableResourceRealm.resource_realm)/> <cfreturn valueList(local.qAvailableResourceRealm.resource_realm)/>
</cffunction> </cffunction>
<!--- <cffunction name="getKeysFromState" returnType="string" access="public">
<cfargument name="instance_uid" type="GUID"/>
<cfargument name="path"/>
<cfargument name="args" type="array" default=[]/>
<cfset var local={}/>
<cfquery name="local.qAvailableResourceRealm"><!--- *** distinct халява, но придумывать корректную формулировку времени мало --->
select distinct r.resource_realm, r.sort
from resource_realm r
join resource_realm_access a on
(r.resource_realm_id=a.resource_realm_id
AND (a.contract_id=<cfqueryparam cfsqltype="CF_SQL_INTEGER" value=#arguments.contractId# null=#!isValid("integer", arguments.contractId)#/>
OR a.contract_id=0) /*0 means access to any contract*/
AND a.is_enabled)
join svc s on r.resource_realm_type_id=s.resource_realm_type_id
where s.svc_id=<cfqueryparam cfsqltype="CF_SQL_INTEGER" value=#arguments.svcId# null=#!isValid("integer", arguments.svcId)#/>
order by r.sort, r.resource_realm
</cfquery> <!--- <cfdump var=#arguments#/> cfdump здесь провоцирует NPE --->
<cfreturn valueList(local.qAvailableResourceRealm.resource_realm)/>
</cffunction> --->
<!--- для вложенных справочников ---> <!--- для вложенных справочников --->
<!--- дублировано: deck-tool/instance_operation.cfm ---> <!--- дублировано: deck-tool/instance_operation.cfm --->
@@ -129,7 +129,7 @@ arguments.requestArguments.specificationId=usrCustomerInfo.specificationId; //In
</cfif> </cfif>
</cfif> </cfif>
<cfif data_type EQ "map"> <cfif data_type EQ "map" OR data_type EQ "map-fixed" OR data_type EQ "array-map-fixed">
<cfinvoke component="instance_operation_cfs_param" method="processMap" qParam=#local.qCfsParam#/> <cfinvoke component="instance_operation_cfs_param" method="processMap" qParam=#local.qCfsParam#/>
</cfif> </cfif>
</cfloop> </cfloop>
@@ -68,11 +68,8 @@
,<cfqueryparam cfsqltype="cf_sql_integer" value="#arguments.usrId#" /> ,<cfqueryparam cfsqltype="cf_sql_integer" value="#arguments.usrId#" />
); );
</cfquery> </cfquery>
<!--- <cfif local.qCfsParam.data_type EQ "map">
<cfset processMap(local.qCfsParam)/><!--- query passed by reference --->
</cfif> --->
<cfreturn noData() <cfreturn noData()
.withStatus(201, "Created") .withStatus(201, "Created")