@opengis/fastify-table 1.1.51 → 1.1.53

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (218) hide show
  1. package/.eslintrc.cjs +42 -42
  2. package/.gitlab-ci.yml +18 -18
  3. package/Changelog.md +352 -352
  4. package/README.md +26 -26
  5. package/config.js +10 -10
  6. package/cron/controllers/cronApi.js +22 -22
  7. package/cron/controllers/utils/cronList.js +1 -1
  8. package/cron/funcs/addCron.js +132 -132
  9. package/cron/index.js +12 -10
  10. package/cron/schema.js +8 -0
  11. package/crud/controllers/deleteCrud.js +36 -36
  12. package/crud/controllers/insert.js +71 -71
  13. package/crud/controllers/update.js +76 -76
  14. package/crud/controllers/utils/xssInjection.js +72 -72
  15. package/crud/funcs/dataDelete.js +19 -19
  16. package/crud/funcs/dataInsert.js +30 -30
  17. package/crud/funcs/dataUpdate.js +48 -48
  18. package/crud/funcs/getAccess.js +46 -46
  19. package/crud/funcs/getOpt.js +10 -10
  20. package/crud/funcs/getToken.js +27 -27
  21. package/crud/funcs/isFileExists.js +13 -13
  22. package/crud/funcs/setOpt.js +16 -16
  23. package/crud/funcs/setToken.js +53 -53
  24. package/crud/funcs/utils/getFolder.js +9 -9
  25. package/crud/funcs/utils/logChanges.js +62 -62
  26. package/crud/index.js +31 -36
  27. package/crud/schema.js +11 -0
  28. package/docs/.vitepress/abbr.mjs +26 -26
  29. package/docs/.vitepress/config.mjs +127 -127
  30. package/docs/.vitepress/navigation.mjs +82 -82
  31. package/docs/.vitepress/theme/Layout.vue +17 -17
  32. package/docs/.vitepress/theme/components/NavigationLinks.vue +102 -102
  33. package/docs/.vitepress/theme/components/Panzoom.vue +169 -169
  34. package/docs/.vitepress/theme/index.mjs +15 -15
  35. package/docs/.vitepress/theme/style.scss +163 -163
  36. package/docs/abbr.json +4 -4
  37. package/docs/api/cron/cronApi.md +56 -56
  38. package/docs/api/crud/deleteCrud.md +58 -58
  39. package/docs/api/crud/insert.md +82 -82
  40. package/docs/api/crud/update.md +85 -85
  41. package/docs/api/index.md +47 -47
  42. package/docs/api/notification/testEmail.md +91 -91
  43. package/docs/api/table/card.md +73 -73
  44. package/docs/api/table/data.md +134 -134
  45. package/docs/api/table/export.md +60 -60
  46. package/docs/api/table/filter.md +104 -104
  47. package/docs/api/table/form.md +126 -126
  48. package/docs/api/table/search.md +123 -123
  49. package/docs/api/table/suggest.md +156 -156
  50. package/docs/api/table/table.md +107 -107
  51. package/docs/api/user/user.cls.id.md +77 -77
  52. package/docs/api/user/user.cls.md +49 -49
  53. package/docs/api/user/user.cls.post.md +62 -62
  54. package/docs/api/user/user.info.md +37 -37
  55. package/docs/api/utils/logger.file.md +60 -60
  56. package/docs/api/utils/next.id.md +34 -34
  57. package/docs/api/utils/properties.add.md +127 -127
  58. package/docs/api/utils/properties.get.md +73 -73
  59. package/docs/api/utils/status.monitor.md +36 -36
  60. package/docs/api/widget/widget.del.md +76 -76
  61. package/docs/api/widget/widget.get.md +233 -233
  62. package/docs/api/widget/widget.set.md +88 -88
  63. package/docs/db/admin.md +947 -947
  64. package/docs/db/crm.md +564 -564
  65. package/docs/db/index.md +9 -9
  66. package/docs/db/log.md +204 -204
  67. package/docs/hook/card/afterCard.md +20 -20
  68. package/docs/hook/card/preCard.md +25 -25
  69. package/docs/hook/data/afterData.md +26 -26
  70. package/docs/hook/data/preData.md +26 -26
  71. package/docs/hook/deleteCrud/afterDelete.md +21 -21
  72. package/docs/hook/deleteCrud/preDelete.md +26 -26
  73. package/docs/hook/form/afterForm.md +19 -19
  74. package/docs/hook/form/preForm.md +26 -26
  75. package/docs/hook/getTemplate/afterTemplate.md +24 -24
  76. package/docs/hook/getTemplate/preTemplate.md +29 -29
  77. package/docs/hook/index.md +45 -45
  78. package/docs/hook/insert/afterInsert.md +41 -41
  79. package/docs/hook/insert/preInsert.md +25 -25
  80. package/docs/hook/table/afterTable.md +20 -20
  81. package/docs/hook/table/preTable.md +25 -25
  82. package/docs/hook/update/afterUpdate.md +41 -41
  83. package/docs/hook/update/preUpdate.md +25 -25
  84. package/docs/index.md +42 -42
  85. package/docs/public/fastify-dark.svg +3 -3
  86. package/docs/public/logo-short-dark.svg +11 -11
  87. package/docs/public/logo-short.svg +10 -10
  88. package/docs/public/logo.svg +19 -19
  89. package/docs/readme/index.md +121 -121
  90. package/docs/templates/card.md +83 -83
  91. package/docs/templates/cls.md +29 -29
  92. package/docs/templates/filters.md +91 -91
  93. package/docs/templates/forms.md +139 -139
  94. package/docs/templates/index.md +28 -28
  95. package/docs/templates/select.md +90 -90
  96. package/docs/templates/table.md +162 -162
  97. package/docs/utils/cron/addCron.md +29 -29
  98. package/docs/utils/crud/dataInsert.md +51 -51
  99. package/docs/utils/crud/dataUpdate.md +52 -52
  100. package/docs/utils/crud/getOpt.md +33 -33
  101. package/docs/utils/crud/isFileExists.md +37 -37
  102. package/docs/utils/crud/setOpt.md +37 -37
  103. package/docs/utils/hook/addHook.md +74 -74
  104. package/docs/utils/hook/applyHook.md +64 -64
  105. package/docs/utils/index.md +47 -47
  106. package/docs/utils/notification/addNotification.md +28 -28
  107. package/docs/utils/notification/notification.md +41 -41
  108. package/docs/utils/pg/autoIndex.md +22 -22
  109. package/docs/utils/pg/getMeta.md +58 -58
  110. package/docs/utils/pg/getPG.md +34 -34
  111. package/docs/utils/pg/init.md +29 -29
  112. package/docs/utils/pg/pg.md +70 -70
  113. package/docs/utils/redis/getRedis.md +36 -36
  114. package/docs/utils/redis/rclient.md +74 -74
  115. package/docs/utils/table/getForm.md +68 -68
  116. package/docs/utils/table/getMeta.md +55 -55
  117. package/docs/utils/table/getSelect.md +38 -38
  118. package/docs/utils/table/getSelectMeta.md +46 -46
  119. package/docs/utils/table/getTable.md +77 -77
  120. package/helper.js +30 -30
  121. package/index.js +105 -105
  122. package/migration/exec.migrations.js +79 -79
  123. package/module/core/select/core.user_mentioned.sql +1 -1
  124. package/module/test/cls/itree.composition.json +25 -25
  125. package/module/test/table/test.rest_zone.table.json +265 -265
  126. package/notification/controllers/readNotifications.js +27 -30
  127. package/notification/controllers/testEmail.js +46 -50
  128. package/notification/controllers/userNotifications.js +61 -64
  129. package/notification/funcs/addNotification.js +21 -21
  130. package/notification/funcs/sendNotification.js +112 -112
  131. package/notification/index.js +3 -8
  132. package/notification/schema.js +10 -0
  133. package/package.json +41 -41
  134. package/pg/funcs/getMeta.js +29 -29
  135. package/pg/funcs/getPG.js +30 -30
  136. package/pg/pgClients.js +20 -20
  137. package/policy/funcs/checkPolicy.js +92 -92
  138. package/policy/funcs/sqlInjection.js +33 -33
  139. package/policy/index.js +14 -14
  140. package/redis/client.js +8 -8
  141. package/redis/funcs/getRedis.js +23 -23
  142. package/redis/funcs/redisClients.js +2 -2
  143. package/redis/index.js +19 -19
  144. package/server/migrations/0.sql +78 -78
  145. package/server/migrations/cls.sql +39 -39
  146. package/server/migrations/log.sql +80 -80
  147. package/server/migrations/properties.sql +144 -144
  148. package/server/migrations/roles.sql +172 -172
  149. package/server/migrations/users.sql +168 -168
  150. package/server.js +26 -26
  151. package/table/controllers/data.js +157 -150
  152. package/table/controllers/filter.js +61 -50
  153. package/table/controllers/form.js +42 -42
  154. package/table/controllers/search.js +76 -80
  155. package/table/controllers/suggest.js +79 -79
  156. package/table/controllers/table.js +83 -83
  157. package/table/controllers/utils/addTemplateDir.js +8 -8
  158. package/table/controllers/utils/getSelect.js +19 -19
  159. package/table/controllers/utils/getSelectMeta.js +66 -66
  160. package/table/controllers/utils/getTemplate_old.js +28 -28
  161. package/table/controllers/utils/getTemplates.js +18 -18
  162. package/table/controllers/utils/gisIRColumn.js +72 -67
  163. package/table/controllers/utils/loadTemplate.js +1 -1
  164. package/table/controllers/utils/loadTemplatePath.js +1 -1
  165. package/table/controllers/utils/userTemplateDir.js +1 -1
  166. package/table/funcs/getFilterSQL/index.js +94 -94
  167. package/table/funcs/getFilterSQL/util/formatValue.js +170 -170
  168. package/table/funcs/getFilterSQL/util/getCustomQuery.js +13 -13
  169. package/table/funcs/getFilterSQL/util/getFilterQuery.js +66 -66
  170. package/table/funcs/getFilterSQL/util/getOptimizedQuery.js +12 -12
  171. package/table/funcs/getFilterSQL/util/getTableSql.js +34 -34
  172. package/table/funcs/metaFormat/getSelectVal.js +21 -21
  173. package/table/funcs/metaFormat/index.js +28 -28
  174. package/table/index.js +37 -37
  175. package/table/schema.js +64 -54
  176. package/test/api/applyHook.test.js +95 -95
  177. package/test/api/crud.test.js +89 -89
  178. package/test/api/crud.xss.test.js +80 -80
  179. package/test/api/suggest.test.js +66 -66
  180. package/test/api/table.test.js +134 -134
  181. package/test/api/user.test.js +85 -85
  182. package/test/api/widget.test.js +117 -117
  183. package/test/config.example +18 -18
  184. package/test/funcs/pg.test.js +34 -34
  185. package/test/funcs/redis.test.js +19 -19
  186. package/test/helper/formatDate.test.js +62 -62
  187. package/test/templates/cls/test.json +9 -9
  188. package/test/templates/form/cp_building.form.json +32 -32
  189. package/test/templates/select/account_id.json +3 -3
  190. package/test/templates/select/storage.data.json +2 -2
  191. package/test/templates/select/test.storage.data.json +3 -3
  192. package/test/templates/select/test.suggest.ato_new.json +3 -3
  193. package/test/templates/select/test.suggest.ato_new.sql +25 -25
  194. package/test/templates/select/test.suggest.data.json +4 -4
  195. package/test/templates/select/test.suggest.parent.sql +1 -1
  196. package/test/templates/table/gis.dataset.table.json +20 -20
  197. package/user/controllers/user.cls.id.js +14 -14
  198. package/user/controllers/user.cls.js +71 -75
  199. package/user/controllers/user.cls.post.js +52 -55
  200. package/user/controllers/user.info.js +17 -21
  201. package/user/index.js +7 -36
  202. package/user/schema.js +17 -0
  203. package/util/controllers/logger.file.js +91 -91
  204. package/util/controllers/next.id.js +4 -4
  205. package/util/controllers/properties.add.js +56 -60
  206. package/util/controllers/properties.get.js +16 -19
  207. package/util/controllers/status.monitor.js +8 -8
  208. package/util/controllers/utils/checkUserAccess.js +20 -17
  209. package/util/controllers/utils/getRootDir.js +25 -25
  210. package/util/index.js +19 -23
  211. package/util/schema.js +19 -0
  212. package/utils.js +106 -104
  213. package/widget/controllers/utils/historyFormat.js +76 -76
  214. package/widget/controllers/utils/obj2db.js +13 -13
  215. package/widget/controllers/widget.del.js +41 -44
  216. package/widget/controllers/widget.get.js +96 -102
  217. package/widget/controllers/widget.set.js +74 -79
  218. package/widget/index.js +40 -40
@@ -1,21 +1,21 @@
1
- # afterDelete
2
-
3
- ## Опис
4
-
5
- Дозволяє здійснити додаткові операції та внести зміни до payload, що отримується при виклику DELETE API [`/table/:token`](../../api/crud/deleteCrud.md)
6
-
7
- ## Параметри
8
-
9
- ```js
10
- import { addHook } from '@opengis/fastify-table/utils.js';
11
-
12
- addHook('afterDelete', async ({ table, id, user = {} }) => {
13
- // do something;
14
- });
15
- ```
16
-
17
- | Назва | Тип | Опис |
18
- | ------- | ------ | ---------------------- |
19
- | table | String | Таблиця |
20
- | id | String | ID об'єкту |
21
- | user | Object | Дані сесії користувача |
1
+ # afterDelete
2
+
3
+ ## Опис
4
+
5
+ Дозволяє здійснити додаткові операції та внести зміни до payload, що отримується при виклику DELETE API [`/table/:token`](../../api/crud/deleteCrud.md)
6
+
7
+ ## Параметри
8
+
9
+ ```js
10
+ import { addHook } from '@opengis/fastify-table/utils.js';
11
+
12
+ addHook('afterDelete', async ({ table, id, user = {} }) => {
13
+ // do something;
14
+ });
15
+ ```
16
+
17
+ | Назва | Тип | Опис |
18
+ | ------- | ------ | ---------------------- |
19
+ | table | String | Таблиця |
20
+ | id | String | ID об'єкту |
21
+ | user | Object | Дані сесії користувача |
@@ -1,26 +1,26 @@
1
- # preDelete
2
-
3
- ## Опис
4
-
5
- Дозволяє здійснити попередню валідацію запиту до DELETE API [`/table/:token`](../../api/crud/deleteCrud.md)
6
-
7
- ## Параметри
8
-
9
- ```js
10
- import { addHook, config } from '@opengis/fastify-table/utils.js';
11
-
12
- addHook('preDelete', async ({ table, id, user }) => {
13
- const { uid } = config?.auth?.disable ? { uid: '1' } : user || {};
14
- if (!uid && !config?.local) {
15
- return { message: 'access restricted: delete', status: 403 };
16
- }
17
- const opt = await getToken({ mode: 'w', token: table, uid, json: 1 });
18
- return opt;
19
- });
20
- ```
21
-
22
- | Назва | Тип | Опис |
23
- | ------- | ------ | ---------------------- |
24
- | table | String | Таблиця / Токен |
25
- | id | String | ID об'єкту |
26
- | user | Object | Дані сесії користувача |
1
+ # preDelete
2
+
3
+ ## Опис
4
+
5
+ Дозволяє здійснити попередню валідацію запиту до DELETE API [`/table/:token`](../../api/crud/deleteCrud.md)
6
+
7
+ ## Параметри
8
+
9
+ ```js
10
+ import { addHook, config } from '@opengis/fastify-table/utils.js';
11
+
12
+ addHook('preDelete', async ({ table, id, user }) => {
13
+ const { uid } = config?.auth?.disable ? { uid: '1' } : user || {};
14
+ if (!uid && !config?.local) {
15
+ return { message: 'access restricted: delete', status: 403 };
16
+ }
17
+ const opt = await getToken({ mode: 'w', token: table, uid, json: 1 });
18
+ return opt;
19
+ });
20
+ ```
21
+
22
+ | Назва | Тип | Опис |
23
+ | ------- | ------ | ---------------------- |
24
+ | table | String | Таблиця / Токен |
25
+ | id | String | ID об'єкту |
26
+ | user | Object | Дані сесії користувача |
@@ -1,19 +1,19 @@
1
- # afterForm
2
-
3
- ## Опис
4
-
5
- Дозволяє здійснити додаткові операції та внести зміни до payload, що отримується при виклику API [`/form/:token`](../../api/table/form.md)
6
-
7
- ## Параметри
8
-
9
- ```js
10
- addHook('afterForm', async ({ form, payload, user = {} }) => {
11
- // do something;
12
- });
13
- ```
14
-
15
- | Назва | Тип | Опис |
16
- | ------- | ------ | ---------------------- |
17
- | form | String | Форма / Токен |
18
- | payload | Object | Відповідь від API |
19
- | user | Object | Дані сесії користувача |
1
+ # afterForm
2
+
3
+ ## Опис
4
+
5
+ Дозволяє здійснити додаткові операції та внести зміни до payload, що отримується при виклику API [`/form/:token`](../../api/table/form.md)
6
+
7
+ ## Параметри
8
+
9
+ ```js
10
+ addHook('afterForm', async ({ form, payload, user = {} }) => {
11
+ // do something;
12
+ });
13
+ ```
14
+
15
+ | Назва | Тип | Опис |
16
+ | ------- | ------ | ---------------------- |
17
+ | form | String | Форма / Токен |
18
+ | payload | Object | Відповідь від API |
19
+ | user | Object | Дані сесії користувача |
@@ -1,26 +1,26 @@
1
- # preForm
2
-
3
- ## Опис
4
-
5
- Дозволяє здійснити попередню валідацію запиту до API [`/form/:token`](../../api/table/form.md)
6
-
7
- ## Параметри
8
-
9
- ```js
10
- import { addHook, config } from '@opengis/fastify-table/utils.js';
11
-
12
- addHook('preForm', async ({ form, id, user }) => {
13
- const { uid } = config?.auth?.disable ? { uid: '1' } : user || {};
14
- if (!uid && !config?.local) {
15
- return { message: 'access restricted: edit', status: 403 };
16
- }
17
- const opt = await getToken({ mode: 'w', token: form, uid, json: 1 });
18
- return opt;
19
- });
20
- ```
21
-
22
- | Назва | Тип | Опис |
23
- | ------- | ------ | ---------------------- |
24
- | form | String | Форма / Токен |
25
- | id | String | ID об'єкту |
26
- | user | Object | Дані сесії користувача |
1
+ # preForm
2
+
3
+ ## Опис
4
+
5
+ Дозволяє здійснити попередню валідацію запиту до API [`/form/:token`](../../api/table/form.md)
6
+
7
+ ## Параметри
8
+
9
+ ```js
10
+ import { addHook, config } from '@opengis/fastify-table/utils.js';
11
+
12
+ addHook('preForm', async ({ form, id, user }) => {
13
+ const { uid } = config?.auth?.disable ? { uid: '1' } : user || {};
14
+ if (!uid && !config?.local) {
15
+ return { message: 'access restricted: edit', status: 403 };
16
+ }
17
+ const opt = await getToken({ mode: 'w', token: form, uid, json: 1 });
18
+ return opt;
19
+ });
20
+ ```
21
+
22
+ | Назва | Тип | Опис |
23
+ | ------- | ------ | ---------------------- |
24
+ | form | String | Форма / Токен |
25
+ | id | String | ID об'єкту |
26
+ | user | Object | Дані сесії користувача |
@@ -1,24 +1,24 @@
1
- # afterTemplate
2
-
3
- ## Опис
4
-
5
- Дозволяє здійснити додаткові операції та внести зміни до payload, що отримується при виклику API [`/template/:type/:token`](https://apidocs.softpro.ua/admin/api/templates/template.html)
6
-
7
- ## Параметри
8
-
9
- ```js
10
- import { addHook, pgClients } from '@opengis/fastify-table/utils.js';
11
-
12
- addHook('afterTemplate', async ({ name, type, payload, user = {} }) => {
13
- const { client: pg } = pgClients || {};
14
- const { uid } = user;
15
- if (!uid || !name) return null;
16
- });
17
- ```
18
-
19
- | Назва | Тип | Опис |
20
- | ------- | ------ | ---------------------- |
21
- | name | String | Назва шаблону / Токен |
22
- | type | String | Тип шаблону |
23
- | payload | Object | Відповідь від API |
24
- | user | Object | Дані сесії користувача |
1
+ # afterTemplate
2
+
3
+ ## Опис
4
+
5
+ Дозволяє здійснити додаткові операції та внести зміни до payload, що отримується при виклику API [`/template/:type/:token`](https://apidocs.softpro.ua/admin/api/templates/template.html)
6
+
7
+ ## Параметри
8
+
9
+ ```js
10
+ import { addHook, pgClients } from '@opengis/fastify-table/utils.js';
11
+
12
+ addHook('afterTemplate', async ({ name, type, payload, user = {} }) => {
13
+ const { client: pg } = pgClients || {};
14
+ const { uid } = user;
15
+ if (!uid || !name) return null;
16
+ });
17
+ ```
18
+
19
+ | Назва | Тип | Опис |
20
+ | ------- | ------ | ---------------------- |
21
+ | name | String | Назва шаблону / Токен |
22
+ | type | String | Тип шаблону |
23
+ | payload | Object | Відповідь від API |
24
+ | user | Object | Дані сесії користувача |
@@ -1,29 +1,29 @@
1
- # preTemplate
2
-
3
- ## Опис
4
-
5
- Дозволяє здійснити попередню валідацію запиту до API [`/template/:type/:token`](https://apidocs.softpro.ua/admin/api/templates/template.html)
6
-
7
- ## Параметри
8
-
9
- ```js
10
- import { addHook, getToken, config } from '@opengis/fastify-table/utils.js';
11
-
12
- addHook('preTemplate', async ({ name, type, user = {} }) => {
13
- if (!name || !type) return;
14
- const { uid } = config?.auth?.disable ? { uid: '1' } : user;
15
- const tokenData = await getToken({
16
- uid, token: name, mode: 'w', json: 1,
17
- }) // edit?
18
- || await getToken({
19
- uid, token: name, mode: 'a', json: 1,
20
- }) || {}; // add?
21
- return { name: tokenData?.[type] };
22
- });
23
- ```
24
-
25
- | Назва | Тип | Опис |
26
- | ------- | ------ | ---------------------- |
27
- | name | String | Назва шаблону / Токен |
28
- | type | String | Тип шаблону |
29
- | user | Object | Дані сесії користувача |
1
+ # preTemplate
2
+
3
+ ## Опис
4
+
5
+ Дозволяє здійснити попередню валідацію запиту до API [`/template/:type/:token`](https://apidocs.softpro.ua/admin/api/templates/template.html)
6
+
7
+ ## Параметри
8
+
9
+ ```js
10
+ import { addHook, getToken, config } from '@opengis/fastify-table/utils.js';
11
+
12
+ addHook('preTemplate', async ({ name, type, user = {} }) => {
13
+ if (!name || !type) return;
14
+ const { uid } = config?.auth?.disable ? { uid: '1' } : user;
15
+ const tokenData = await getToken({
16
+ uid, token: name, mode: 'w', json: 1,
17
+ }) // edit?
18
+ || await getToken({
19
+ uid, token: name, mode: 'a', json: 1,
20
+ }) || {}; // add?
21
+ return { name: tokenData?.[type] };
22
+ });
23
+ ```
24
+
25
+ | Назва | Тип | Опис |
26
+ | ------- | ------ | ---------------------- |
27
+ | name | String | Назва шаблону / Токен |
28
+ | type | String | Тип шаблону |
29
+ | user | Object | Дані сесії користувача |
@@ -1,45 +1,45 @@
1
- ---
2
- order: -1
3
- ---
4
-
5
- # Список хуків
6
-
7
- ## GET /data/:table/:id? (data.js)
8
-
9
- - **[preData](./data/preData.md)** - попередня обробка, можливість блокування доступу
10
- - **[afterData](./data/afterData.md)** - `модифікація` результату, додавання пов'язаних даних тощо
11
-
12
- ## GET /card/:table/:id? (card.js)
13
-
14
- - **[preCard](./card/preCard.md)** - попередня обробка, можливість блокування доступу
15
- - **[afterCard](./card/afterCard.md)** - `модифікація` результату, додавання пов'язаних даних тощо
16
-
17
- ## GET /template/:type/:name (getTemplate.js)
18
-
19
- - **[preTemplate](./getTemplate/preTemplate.md)** - попередня обробка, можливість блокування доступу [template](../api/admin/templates/template.md)
20
- - **[afterTemplate](./getTemplate/afterTemplate.md)** - `модифікації` payload [template](../api/admin/templates/template.md)
21
-
22
- ## GET /form/:name (form.js)
23
-
24
- - **[preForm](./form/preForm.md)** - попередня обробка, можливість блокування доступу
25
- - **[afterForm](./form/afterForm.md)** - `модифікація` форми, додавання користувацьких полів тощо
26
-
27
- ## GET /table/:token (table.js) - CRUD
28
-
29
- - **[preTable](./table/preTable.md)** - попередня обробка, можливість блокування доступу
30
- - **[afterTable](./table/afterTable.md)** - `модифікація` результату, додавання пов'язаних даних тощо
31
-
32
- ## POST /table/:token (insert.js) - CRUD
33
-
34
- - **[preInsert](./insert/preInsert.md)** - попередня обробка, можливість блокування доступу
35
- - **[afterInsert](./insert/afterInsert.md)** - виконання додаткових дій після внесення даних до БД [insert](../api/fastify-table/crud/insert.md)
36
-
37
- ## PUT /table/:token (update.js) - CRUD
38
-
39
- - **[preUpdate](./update/preUpdate.md)** - попередня обробка, можливість блокування доступу
40
- - **[afterUpdate](./update/afterUpdate.md)** - виконання додаткових дій після внесення змін до БД [update](../api/fastify-table/crud/update.md)
41
-
42
- ## DELETE /table/:token (deleteCrud.js) - CRUD
43
-
44
- - **[preDelete](./deleteCrud/preDelete.md)** - попередня обробка, можливість блокування доступу
45
- - **[afterDelete](./deleteCrud/afterDelete.md)** - виконання додаткових дій після внесення змін до БД [delete](../api/fastify-table/crud/deleteCrud.md)
1
+ ---
2
+ order: -1
3
+ ---
4
+
5
+ # Список хуків
6
+
7
+ ## GET /data/:table/:id? (data.js)
8
+
9
+ - **[preData](./data/preData.md)** - попередня обробка, можливість блокування доступу
10
+ - **[afterData](./data/afterData.md)** - `модифікація` результату, додавання пов'язаних даних тощо
11
+
12
+ ## GET /card/:table/:id? (card.js)
13
+
14
+ - **[preCard](./card/preCard.md)** - попередня обробка, можливість блокування доступу
15
+ - **[afterCard](./card/afterCard.md)** - `модифікація` результату, додавання пов'язаних даних тощо
16
+
17
+ ## GET /template/:type/:name (getTemplate.js)
18
+
19
+ - **[preTemplate](./getTemplate/preTemplate.md)** - попередня обробка, можливість блокування доступу [template](../api/admin/templates/template.md)
20
+ - **[afterTemplate](./getTemplate/afterTemplate.md)** - `модифікації` payload [template](../api/admin/templates/template.md)
21
+
22
+ ## GET /form/:name (form.js)
23
+
24
+ - **[preForm](./form/preForm.md)** - попередня обробка, можливість блокування доступу
25
+ - **[afterForm](./form/afterForm.md)** - `модифікація` форми, додавання користувацьких полів тощо
26
+
27
+ ## GET /table/:token (table.js) - CRUD
28
+
29
+ - **[preTable](./table/preTable.md)** - попередня обробка, можливість блокування доступу
30
+ - **[afterTable](./table/afterTable.md)** - `модифікація` результату, додавання пов'язаних даних тощо
31
+
32
+ ## POST /table/:token (insert.js) - CRUD
33
+
34
+ - **[preInsert](./insert/preInsert.md)** - попередня обробка, можливість блокування доступу
35
+ - **[afterInsert](./insert/afterInsert.md)** - виконання додаткових дій після внесення даних до БД [insert](../api/fastify-table/crud/insert.md)
36
+
37
+ ## PUT /table/:token (update.js) - CRUD
38
+
39
+ - **[preUpdate](./update/preUpdate.md)** - попередня обробка, можливість блокування доступу
40
+ - **[afterUpdate](./update/afterUpdate.md)** - виконання додаткових дій після внесення змін до БД [update](../api/fastify-table/crud/update.md)
41
+
42
+ ## DELETE /table/:token (deleteCrud.js) - CRUD
43
+
44
+ - **[preDelete](./deleteCrud/preDelete.md)** - попередня обробка, можливість блокування доступу
45
+ - **[afterDelete](./deleteCrud/afterDelete.md)** - виконання додаткових дій після внесення змін до БД [delete](../api/fastify-table/crud/deleteCrud.md)
@@ -1,41 +1,41 @@
1
- # afterInsert
2
-
3
- ## Опис
4
-
5
- Дозволяє здійснити додаткові операції та внести зміни до payload, що отримується при виклику POST API [`/table/:token`](../../api/crud/insert.md)
6
-
7
- ## Параметри
8
-
9
- ```js
10
- import { addHook, config, getTemplate, pgClients } from '@opengis/fastify-table/utils.js';
11
-
12
- addHook('afterInsert', async ({ table, body = {}, payload: res = {}, user = {} }) => {
13
- const { client: pg } = pgClients || {};
14
- const { uid } = config?.auth?.disable ? { uid: '1' } : user;
15
- if (!uid || !table || !Object.keys(body)?.length) return null;
16
-
17
- const loadTable = await getTemplate('table', table);
18
- if (!pg.pk[loadTable?.table || table]) return null;
19
- const pk = pg.pk[loadTable?.table || table];
20
- const id = res.rows?.[0]?.[pk];
21
-
22
- const { rows: properties = [] } = await pg.query(`select column_id, name, title, format, data from admin.custom_column
23
- where entity=$1 and uid=$2`, [table, uid]);
24
-
25
- if (!id || !properties?.length) return null;
26
-
27
- const q = properties
28
- .filter((el) => Object.keys(body).includes(el.name))
29
- .map((el) => `insert into crm.extra_data(property_id,property_key,property_entity,object_id,${el.format?.toLowerCase() === 'date' ? 'value_date' : 'value_text'})
30
- select '${el.column_id}', '${el.name}', '${table}', '${id}', ${el.format?.toLowerCase() === 'date' ? `'${body[el.name]}'::timestamp without time zone` : `'${body[el.name]}'::text`}`)
31
- .join(';\n');
32
- return pg.query(q);
33
- });
34
- ```
35
-
36
- | Назва | Тип | Опис |
37
- | ------- | ------ | ---------------------- |
38
- | table | String | Таблиця / Токен |
39
- | body | Object | Тіло запиту, що надійшов до API |
40
- | payload | Object | Відповідь від API |
41
- | user | Object | Дані сесії користувача |
1
+ # afterInsert
2
+
3
+ ## Опис
4
+
5
+ Дозволяє здійснити додаткові операції та внести зміни до payload, що отримується при виклику POST API [`/table/:token`](../../api/crud/insert.md)
6
+
7
+ ## Параметри
8
+
9
+ ```js
10
+ import { addHook, config, getTemplate, pgClients } from '@opengis/fastify-table/utils.js';
11
+
12
+ addHook('afterInsert', async ({ table, body = {}, payload: res = {}, user = {} }) => {
13
+ const { client: pg } = pgClients || {};
14
+ const { uid } = config?.auth?.disable ? { uid: '1' } : user;
15
+ if (!uid || !table || !Object.keys(body)?.length) return null;
16
+
17
+ const loadTable = await getTemplate('table', table);
18
+ if (!pg.pk[loadTable?.table || table]) return null;
19
+ const pk = pg.pk[loadTable?.table || table];
20
+ const id = res.rows?.[0]?.[pk];
21
+
22
+ const { rows: properties = [] } = await pg.query(`select column_id, name, title, format, data from admin.custom_column
23
+ where entity=$1 and uid=$2`, [table, uid]);
24
+
25
+ if (!id || !properties?.length) return null;
26
+
27
+ const q = properties
28
+ .filter((el) => Object.keys(body).includes(el.name))
29
+ .map((el) => `insert into crm.extra_data(property_id,property_key,property_entity,object_id,${el.format?.toLowerCase() === 'date' ? 'value_date' : 'value_text'})
30
+ select '${el.column_id}', '${el.name}', '${table}', '${id}', ${el.format?.toLowerCase() === 'date' ? `'${body[el.name]}'::timestamp without time zone` : `'${body[el.name]}'::text`}`)
31
+ .join(';\n');
32
+ return pg.query(q);
33
+ });
34
+ ```
35
+
36
+ | Назва | Тип | Опис |
37
+ | ------- | ------ | ---------------------- |
38
+ | table | String | Таблиця / Токен |
39
+ | body | Object | Тіло запиту, що надійшов до API |
40
+ | payload | Object | Відповідь від API |
41
+ | user | Object | Дані сесії користувача |
@@ -1,25 +1,25 @@
1
- # preInsert
2
-
3
- ## Опис
4
-
5
- Дозволяє здійснити попередню валідацію запиту до POST API [`/table/:token`](../../api/crud/insert.md)
6
-
7
- ## Параметри
8
-
9
- ```js
10
- import { addHook, config } from '@opengis/fastify-table/utils.js';
11
-
12
- addHook('preInsert', async ({ table, user }) => {
13
- const { uid } = config?.auth?.disable ? { uid: '1' } : user || {};
14
- if (!uid && !config?.local) {
15
- return { message: 'access restricted: edit', status: 403 };
16
- }
17
- const opt = await getToken({ mode: 'w', token: table, uid, json: 1 });
18
- return opt;
19
- });
20
- ```
21
-
22
- | Назва | Тип | Опис |
23
- | ------- | ------ | ---------------------- |
24
- | table | String | Таблиця / Токен |
25
- | user | Object | Дані сесії користувача |
1
+ # preInsert
2
+
3
+ ## Опис
4
+
5
+ Дозволяє здійснити попередню валідацію запиту до POST API [`/table/:token`](../../api/crud/insert.md)
6
+
7
+ ## Параметри
8
+
9
+ ```js
10
+ import { addHook, config } from '@opengis/fastify-table/utils.js';
11
+
12
+ addHook('preInsert', async ({ table, user }) => {
13
+ const { uid } = config?.auth?.disable ? { uid: '1' } : user || {};
14
+ if (!uid && !config?.local) {
15
+ return { message: 'access restricted: edit', status: 403 };
16
+ }
17
+ const opt = await getToken({ mode: 'w', token: table, uid, json: 1 });
18
+ return opt;
19
+ });
20
+ ```
21
+
22
+ | Назва | Тип | Опис |
23
+ | ------- | ------ | ---------------------- |
24
+ | table | String | Таблиця / Токен |
25
+ | user | Object | Дані сесії користувача |
@@ -1,20 +1,20 @@
1
- # afterTable
2
-
3
- ## Опис
4
-
5
- Дозволяє здійснити додаткові операції та внести зміни до payload, що отримується при виклику GET API [`/table/:token`](../../api/table/table.md)
6
-
7
- ## Параметри
8
-
9
- ```js
10
- import { addHook } from '@opengis/fastify-table/utils.js';
11
-
12
- addHook('afterTable', async ({ table, user = {} }) => {
13
- // do something;
14
- });
15
- ```
16
-
17
- | Назва | Тип | Опис |
18
- | ------- | ------ | ---------------------- |
19
- | table | String | Таблиця / Токен |
20
- | user | Object | Дані сесії користувача |
1
+ # afterTable
2
+
3
+ ## Опис
4
+
5
+ Дозволяє здійснити додаткові операції та внести зміни до payload, що отримується при виклику GET API [`/table/:token`](../../api/table/table.md)
6
+
7
+ ## Параметри
8
+
9
+ ```js
10
+ import { addHook } from '@opengis/fastify-table/utils.js';
11
+
12
+ addHook('afterTable', async ({ table, user = {} }) => {
13
+ // do something;
14
+ });
15
+ ```
16
+
17
+ | Назва | Тип | Опис |
18
+ | ------- | ------ | ---------------------- |
19
+ | table | String | Таблиця / Токен |
20
+ | user | Object | Дані сесії користувача |
@@ -1,25 +1,25 @@
1
- # preTable
2
-
3
- ## Опис
4
-
5
- Дозволяє здійснити попередню валідацію запиту до GET API [`/table/:token`](../../api/table/table.md)
6
-
7
- ## Параметри
8
-
9
- ```js
10
- import { config, getToken, addHook, pgClients } from '@opengis/fastify-table/utils.js';
11
-
12
- addHook('preTable', async ({ table, user = {} }) => {
13
- const { client: pg } = pgClients || {};
14
- const { uid } = config?.auth?.disable ? { uid: '1' } : user;
15
- const opt = await getToken({
16
- uid, token: table, mode: 'w', json: 1,
17
- });
18
- return opt;
19
- });
20
- ```
21
-
22
- | Назва | Тип | Опис |
23
- | ------- | ------ | ---------------------- |
24
- | table | String | Таблиця / Токен |
25
- | user | Object | Дані сесії користувача |
1
+ # preTable
2
+
3
+ ## Опис
4
+
5
+ Дозволяє здійснити попередню валідацію запиту до GET API [`/table/:token`](../../api/table/table.md)
6
+
7
+ ## Параметри
8
+
9
+ ```js
10
+ import { config, getToken, addHook, pgClients } from '@opengis/fastify-table/utils.js';
11
+
12
+ addHook('preTable', async ({ table, user = {} }) => {
13
+ const { client: pg } = pgClients || {};
14
+ const { uid } = config?.auth?.disable ? { uid: '1' } : user;
15
+ const opt = await getToken({
16
+ uid, token: table, mode: 'w', json: 1,
17
+ });
18
+ return opt;
19
+ });
20
+ ```
21
+
22
+ | Назва | Тип | Опис |
23
+ | ------- | ------ | ---------------------- |
24
+ | table | String | Таблиця / Токен |
25
+ | user | Object | Дані сесії користувача |