@opengis/fastify-table 1.1.51 → 1.1.52

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,41 +1,41 @@
1
- # notification
2
-
3
- ## Опис
4
-
5
- Функція `notification` призначена для відправки повідомлень
6
-
7
- ``` js
8
- notification({
9
- pg,
10
- funcs,
11
- log,
12
- to,
13
- title: `Test email title`,
14
- message: `Lorem Ipsum Lorem Ipsum`,
15
- template,
16
- table,
17
- id,
18
- nocache,
19
- file,
20
- });
21
- ```
22
-
23
- ## Параметри
24
-
25
- :::tabs
26
- == params
27
-
28
- | Параметр | Тип | Опис |
29
- | -------- | ------ | ------------------------- |
30
- | `pg` | Object | Клієнт postgres |
31
- | `funcs` | Object | Функції |
32
- | `log` | Object | Pino logger |
33
- | `to` | String | Ел. пошта отримувача |
34
- | `title` | String | Заголовок повідомлення |
35
- | `message` | String | Текст повідомлення |
36
- | `template` | String | Шаблон (pt) |
37
- | `table` | String | Таблиця БД |
38
- | `id` | String | ID об'єкту |
39
- | `nocache` | Number | Відключити кешування |
40
- | `file` | Array | Шляхи до файлів |
41
- :::
1
+ # notification
2
+
3
+ ## Опис
4
+
5
+ Функція `notification` призначена для відправки повідомлень
6
+
7
+ ``` js
8
+ notification({
9
+ pg,
10
+ funcs,
11
+ log,
12
+ to,
13
+ title: `Test email title`,
14
+ message: `Lorem Ipsum Lorem Ipsum`,
15
+ template,
16
+ table,
17
+ id,
18
+ nocache,
19
+ file,
20
+ });
21
+ ```
22
+
23
+ ## Параметри
24
+
25
+ :::tabs
26
+ == params
27
+
28
+ | Параметр | Тип | Опис |
29
+ | -------- | ------ | ------------------------- |
30
+ | `pg` | Object | Клієнт postgres |
31
+ | `funcs` | Object | Функції |
32
+ | `log` | Object | Pino logger |
33
+ | `to` | String | Ел. пошта отримувача |
34
+ | `title` | String | Заголовок повідомлення |
35
+ | `message` | String | Текст повідомлення |
36
+ | `template` | String | Шаблон (pt) |
37
+ | `table` | String | Таблиця БД |
38
+ | `id` | String | ID об'єкту |
39
+ | `nocache` | Number | Відключити кешування |
40
+ | `file` | Array | Шляхи до файлів |
41
+ :::
@@ -1,22 +1,22 @@
1
- # autoindex
2
-
3
- ## Опис
4
-
5
- Функція `autoIndex` призначена для автоматичного створення індексів у базі даних на основі заданих фільтрів. Вона використовує клієнт PostgreSQL та Redis для управління індексами.
6
-
7
- ``` js
8
- autoIndex({
9
- table, columns: filter,
10
- });
11
- ```
12
-
13
- ## Параметри
14
-
15
- :::tabs
16
- == params
17
-
18
- | Параметр | Тип | Опис |
19
- | -------- | ------ | --------------------------------------------------- |
20
- | `table` | String | Назва таблиці в базі даних |
21
- | `columns` | Array | Масив фільтрів, на основі яких створюються індекси |
22
- :::
1
+ # autoindex
2
+
3
+ ## Опис
4
+
5
+ Функція `autoIndex` призначена для автоматичного створення індексів у базі даних на основі заданих фільтрів. Вона використовує клієнт PostgreSQL та Redis для управління індексами.
6
+
7
+ ``` js
8
+ autoIndex({
9
+ table, columns: filter,
10
+ });
11
+ ```
12
+
13
+ ## Параметри
14
+
15
+ :::tabs
16
+ == params
17
+
18
+ | Параметр | Тип | Опис |
19
+ | -------- | ------ | --------------------------------------------------- |
20
+ | `table` | String | Назва таблиці в базі даних |
21
+ | `columns` | Array | Масив фільтрів, на основі яких створюються індекси |
22
+ :::
@@ -1,59 +1,59 @@
1
- # getMeta
2
-
3
- ## Опис
4
-
5
- Метадані таблиці
6
-
7
- ```js
8
- getMeta({table: 'data_user.work'});
9
- ```
10
-
11
- ## Параметри
12
-
13
- :::tabs
14
- == params
15
-
16
- | Параметр | Тип | Опис |
17
- | -------- | ------ | ------- |
18
- | table | string | Таблиця |
19
-
20
- :::
21
-
22
- ## Відповідь
23
-
24
- :::details Приклад відповіді
25
-
26
- ```json
27
- {
28
- "res": {
29
- "pk": "id_work",
30
- "columns": [
31
- {
32
- "name": "id_work",
33
- "tableID": 8966220,
34
- "columnID": 1,
35
- "dataTypeID": 25,
36
- "dataTypeSize": -1,
37
- "dataTypeModifier": -1,
38
- "format": "text"
39
- },
40
- {
41
- "name": "type_work",
42
- "tableID": 8966220,
43
- "columnID": 2,
44
- "dataTypeID": 23,
45
- "dataTypeSize": 4,
46
- "dataTypeModifier": -1,
47
- "format": "text"
48
- }
49
- ],
50
- "geom": {
51
- "bounds": null,
52
- "count": "0",
53
- "srid": null,
54
- "geometry": null
55
- }
56
- }
57
- }
58
- ```
1
+ # getMeta
2
+
3
+ ## Опис
4
+
5
+ Метадані таблиці
6
+
7
+ ```js
8
+ getMeta({table: 'data_user.work'});
9
+ ```
10
+
11
+ ## Параметри
12
+
13
+ :::tabs
14
+ == params
15
+
16
+ | Параметр | Тип | Опис |
17
+ | -------- | ------ | ------- |
18
+ | table | string | Таблиця |
19
+
20
+ :::
21
+
22
+ ## Відповідь
23
+
24
+ :::details Приклад відповіді
25
+
26
+ ```json
27
+ {
28
+ "res": {
29
+ "pk": "id_work",
30
+ "columns": [
31
+ {
32
+ "name": "id_work",
33
+ "tableID": 8966220,
34
+ "columnID": 1,
35
+ "dataTypeID": 25,
36
+ "dataTypeSize": -1,
37
+ "dataTypeModifier": -1,
38
+ "format": "text"
39
+ },
40
+ {
41
+ "name": "type_work",
42
+ "tableID": 8966220,
43
+ "columnID": 2,
44
+ "dataTypeID": 23,
45
+ "dataTypeSize": 4,
46
+ "dataTypeModifier": -1,
47
+ "format": "text"
48
+ }
49
+ ],
50
+ "geom": {
51
+ "bounds": null,
52
+ "count": "0",
53
+ "srid": null,
54
+ "geometry": null
55
+ }
56
+ }
57
+ }
58
+ ```
59
59
  :::
@@ -1,34 +1,34 @@
1
- # getPG
2
-
3
- ## Опис
4
-
5
- Функція створює та повертає об'єкт для взаємодії з базою даних PostgreSQL. Використовується для отримання екземпляру підключення до бази даних.
6
-
7
- ```js
8
- getPG({ db: 'mbk_rivne_dma' });
9
- ```
10
-
11
- ## Параметри
12
-
13
- :::tabs
14
- == params
15
-
16
- | Параметр | Тип | Опис |
17
- | -------- | ------ | ---------- |
18
- | user | object | Користувач |
19
- | password | object | Пароль |
20
- | host | object | Хост |
21
- | port | object | Порт |
22
- | db | object | База даних |
23
-
24
- :::
25
-
26
- ## Відповідь
27
-
28
- :::details Приклад відповіді
29
-
30
- ```txt
31
- pg client function
32
- ```
33
-
34
- :::
1
+ # getPG
2
+
3
+ ## Опис
4
+
5
+ Функція створює та повертає об'єкт для взаємодії з базою даних PostgreSQL. Використовується для отримання екземпляру підключення до бази даних.
6
+
7
+ ```js
8
+ getPG({ db: 'mbk_rivne_dma' });
9
+ ```
10
+
11
+ ## Параметри
12
+
13
+ :::tabs
14
+ == params
15
+
16
+ | Параметр | Тип | Опис |
17
+ | -------- | ------ | ---------- |
18
+ | user | object | Користувач |
19
+ | password | object | Пароль |
20
+ | host | object | Хост |
21
+ | port | object | Порт |
22
+ | db | object | База даних |
23
+
24
+ :::
25
+
26
+ ## Відповідь
27
+
28
+ :::details Приклад відповіді
29
+
30
+ ```txt
31
+ pg client function
32
+ ```
33
+
34
+ :::
@@ -1,30 +1,30 @@
1
- # init
2
-
3
- ## Опис
4
-
5
- Init
6
-
7
- ```js
8
- init(client);
9
- ```
10
-
11
- ## Параметри
12
-
13
- :::tabs
14
- == params
15
-
16
- | Параметр | Тип | Опис |
17
- | -------- | ------ | ------ |
18
- | client | String | Клієнт |
19
-
20
-
21
- :::
22
-
23
- ## Відповідь
24
-
25
- :::details Приклад відповіді
26
-
27
- ```json
28
-
29
- ```
1
+ # init
2
+
3
+ ## Опис
4
+
5
+ Init
6
+
7
+ ```js
8
+ init(client);
9
+ ```
10
+
11
+ ## Параметри
12
+
13
+ :::tabs
14
+ == params
15
+
16
+ | Параметр | Тип | Опис |
17
+ | -------- | ------ | ------ |
18
+ | client | String | Клієнт |
19
+
20
+
21
+ :::
22
+
23
+ ## Відповідь
24
+
25
+ :::details Приклад відповіді
26
+
27
+ ```json
28
+
29
+ ```
30
30
  :::
@@ -1,70 +1,70 @@
1
- # pg
2
-
3
- [node pg](https://node-postgres.com/features/queries) - документація модуля `pg`
4
-
5
- ## PG Props
6
-
7
- ```js
8
- pg.pk["admin.cls"] // cls_id ; pk[table]
9
- pg.pgType[12] // int; type[typeid]
10
- pg.procList.includes("admin.next_id") // true
11
- pg.tableList.includes("admin.cls") // true
12
- pg.geom["admin.cls"] // false
13
- ```
14
-
15
- ## Параметри
16
-
17
- ```js
18
- pg.query(query, args?)
19
- ```
20
-
21
- | Назва | Тип | Опис |
22
- | -------- | ------- | -------------------------------- |
23
- | query | string | Запит sql |
24
- | args | array | Параметри запиту |
25
-
26
- ```js
27
- const query = 'INSERT INTO users(name, email) VALUES($1, $2) RETURNING *'
28
- const args = ['brianc', 'brian.m.carlson@gmail.com']
29
- const querySelect = 'select * from users where name = $1 and email = $2'
30
-
31
- pg.query(query) // Query Native
32
- pg.query(query, args) // Parameterized query Native
33
-
34
- pg.queryCache(querySelect) // Query with Cache Result
35
- pg.queryCache(querySelect, args) // Parameterized query with Cache Result
36
- ```
37
-
38
- ## pg.queryCache
39
-
40
- Повертає один рядок/об'єкт => `object`
41
-
42
- Отримай запит кешує в редіс. Якщо вже є кеш по цьому запиту, то повертає кеш.
43
- Якщо кеша немає то робить новий запит до бази даних.
44
-
45
- ```js
46
- const { sid } = await pg.queryCache('select sid from admin.site');
47
- console.log(sid); // 35
48
- ```
49
-
50
- ## pg.query
51
-
52
- Повертає масив рядків/об'єктів та структуру => `object`
53
-
54
- ```js
55
- const { rows, fields } = await pg.query('select sid from admin.site');
56
- console.log(rows); // [{sid:35}]
57
- console.log(fields); // опис полів запиту
58
-
59
- ```
60
-
61
- ## pg.queryNotice
62
-
63
- Повертає масив рядків /об'єктів, а також дозволяє вивести notice при відпрацюванні функції БД => `object`
64
-
65
- ```js
66
- const send = (txt) => { console.log(txt); };
67
- const { rows } = await pg.queryNotice('select gis_sync_sandbox.upload_data_check($1)', [{ din, uid }], send);
68
- console.log(rows); // [{ status: 2 }]
69
-
70
- ```
1
+ # pg
2
+
3
+ [node pg](https://node-postgres.com/features/queries) - документація модуля `pg`
4
+
5
+ ## PG Props
6
+
7
+ ```js
8
+ pg.pk["admin.cls"] // cls_id ; pk[table]
9
+ pg.pgType[12] // int; type[typeid]
10
+ pg.procList.includes("admin.next_id") // true
11
+ pg.tableList.includes("admin.cls") // true
12
+ pg.geom["admin.cls"] // false
13
+ ```
14
+
15
+ ## Параметри
16
+
17
+ ```js
18
+ pg.query(query, args?)
19
+ ```
20
+
21
+ | Назва | Тип | Опис |
22
+ | -------- | ------- | -------------------------------- |
23
+ | query | string | Запит sql |
24
+ | args | array | Параметри запиту |
25
+
26
+ ```js
27
+ const query = 'INSERT INTO users(name, email) VALUES($1, $2) RETURNING *'
28
+ const args = ['brianc', 'brian.m.carlson@gmail.com']
29
+ const querySelect = 'select * from users where name = $1 and email = $2'
30
+
31
+ pg.query(query) // Query Native
32
+ pg.query(query, args) // Parameterized query Native
33
+
34
+ pg.queryCache(querySelect) // Query with Cache Result
35
+ pg.queryCache(querySelect, args) // Parameterized query with Cache Result
36
+ ```
37
+
38
+ ## pg.queryCache
39
+
40
+ Повертає один рядок/об'єкт => `object`
41
+
42
+ Отримай запит кешує в редіс. Якщо вже є кеш по цьому запиту, то повертає кеш.
43
+ Якщо кеша немає то робить новий запит до бази даних.
44
+
45
+ ```js
46
+ const { sid } = await pg.queryCache('select sid from admin.site');
47
+ console.log(sid); // 35
48
+ ```
49
+
50
+ ## pg.query
51
+
52
+ Повертає масив рядків/об'єктів та структуру => `object`
53
+
54
+ ```js
55
+ const { rows, fields } = await pg.query('select sid from admin.site');
56
+ console.log(rows); // [{sid:35}]
57
+ console.log(fields); // опис полів запиту
58
+
59
+ ```
60
+
61
+ ## pg.queryNotice
62
+
63
+ Повертає масив рядків /об'єктів, а також дозволяє вивести notice при відпрацюванні функції БД => `object`
64
+
65
+ ```js
66
+ const send = (txt) => { console.log(txt); };
67
+ const { rows } = await pg.queryNotice('select gis_sync_sandbox.upload_data_check($1)', [{ din, uid }], send);
68
+ console.log(rows); // [{ status: 2 }]
69
+
70
+ ```
@@ -1,36 +1,36 @@
1
- # getRedis
2
-
3
- ## Опис
4
-
5
- Отримує конфіг Redis
6
-
7
- ```js
8
- getRedis({ db: 0 });
9
- ```
10
-
11
- ## Параметри
12
-
13
- ::: tabs
14
- ==params
15
-
16
- | Параметр | Тип | Опис |
17
- | -------- | ------ | ---------- |
18
- | db | Object | База даних |
19
-
20
- :::
21
-
22
- ## Приклад
23
-
24
- ```js
25
- getRedis({ db: 0 })
26
- ```
27
-
28
- ## Відповідь
29
-
30
- :::details Приклад відповіді
31
-
32
- ```txt
33
- rclient function
34
- ```
35
-
36
- :::
1
+ # getRedis
2
+
3
+ ## Опис
4
+
5
+ Отримує конфіг Redis
6
+
7
+ ```js
8
+ getRedis({ db: 0 });
9
+ ```
10
+
11
+ ## Параметри
12
+
13
+ ::: tabs
14
+ ==params
15
+
16
+ | Параметр | Тип | Опис |
17
+ | -------- | ------ | ---------- |
18
+ | db | Object | База даних |
19
+
20
+ :::
21
+
22
+ ## Приклад
23
+
24
+ ```js
25
+ getRedis({ db: 0 })
26
+ ```
27
+
28
+ ## Відповідь
29
+
30
+ :::details Приклад відповіді
31
+
32
+ ```txt
33
+ rclient function
34
+ ```
35
+
36
+ :::