@opengis/fastify-table 1.1.49 → 1.1.51

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 (190) hide show
  1. package/.eslintrc.cjs +42 -42
  2. package/.gitlab-ci.yml +18 -0
  3. package/Changelog.md +352 -351
  4. package/cron/funcs/addCron.js +132 -132
  5. package/crud/controllers/deleteCrud.js +36 -31
  6. package/crud/controllers/insert.js +71 -70
  7. package/crud/controllers/update.js +76 -73
  8. package/crud/funcs/dataDelete.js +19 -19
  9. package/crud/funcs/dataInsert.js +30 -30
  10. package/crud/funcs/dataUpdate.js +48 -48
  11. package/crud/funcs/getAccess.js +46 -56
  12. package/crud/funcs/getOpt.js +10 -10
  13. package/crud/funcs/setOpt.js +16 -16
  14. package/crud/funcs/setToken.js +2 -2
  15. package/crud/funcs/utils/getFolder.js +9 -9
  16. package/crud/funcs/utils/logChanges.js +62 -62
  17. package/crud/index.js +36 -36
  18. package/docs/.vitepress/abbr.mjs +26 -26
  19. package/docs/.vitepress/config.mjs +127 -127
  20. package/docs/.vitepress/navigation.mjs +82 -82
  21. package/docs/.vitepress/theme/Layout.vue +17 -17
  22. package/docs/.vitepress/theme/components/NavigationLinks.vue +102 -102
  23. package/docs/.vitepress/theme/components/Panzoom.vue +169 -169
  24. package/docs/.vitepress/theme/index.mjs +15 -15
  25. package/docs/.vitepress/theme/style.scss +163 -163
  26. package/docs/abbr.json +4 -4
  27. package/docs/api/cron/cronApi.md +56 -56
  28. package/docs/api/crud/deleteCrud.md +58 -58
  29. package/docs/api/crud/insert.md +82 -82
  30. package/docs/api/crud/update.md +85 -85
  31. package/docs/api/index.md +47 -47
  32. package/docs/api/notification/testEmail.md +91 -91
  33. package/docs/api/table/card.md +73 -73
  34. package/docs/api/table/data.md +134 -134
  35. package/docs/api/table/export.md +60 -60
  36. package/docs/api/table/filter.md +104 -104
  37. package/docs/api/table/form.md +126 -126
  38. package/docs/api/table/search.md +123 -123
  39. package/docs/api/table/suggest.md +156 -156
  40. package/docs/api/table/table.md +107 -107
  41. package/docs/api/user/user.cls.id.md +77 -77
  42. package/docs/api/user/user.cls.md +49 -49
  43. package/docs/api/user/user.cls.post.md +62 -62
  44. package/docs/api/user/user.info.md +37 -37
  45. package/docs/api/utils/logger.file.md +60 -60
  46. package/docs/api/utils/next.id.md +34 -34
  47. package/docs/api/utils/properties.add.md +127 -127
  48. package/docs/api/utils/properties.get.md +73 -73
  49. package/docs/api/utils/status.monitor.md +36 -36
  50. package/docs/api/widget/widget.del.md +76 -76
  51. package/docs/api/widget/widget.get.md +233 -233
  52. package/docs/api/widget/widget.set.md +88 -88
  53. package/docs/db/admin.md +947 -947
  54. package/docs/db/crm.md +564 -564
  55. package/docs/db/index.md +9 -9
  56. package/docs/db/log.md +204 -204
  57. package/docs/hook/card/afterCard.md +20 -20
  58. package/docs/hook/card/preCard.md +25 -25
  59. package/docs/hook/data/afterData.md +26 -26
  60. package/docs/hook/data/preData.md +26 -26
  61. package/docs/hook/deleteCrud/afterDelete.md +21 -21
  62. package/docs/hook/deleteCrud/preDelete.md +26 -26
  63. package/docs/hook/form/afterForm.md +19 -19
  64. package/docs/hook/form/preForm.md +26 -26
  65. package/docs/hook/getTemplate/afterTemplate.md +24 -24
  66. package/docs/hook/getTemplate/preTemplate.md +29 -29
  67. package/docs/hook/index.md +45 -45
  68. package/docs/hook/insert/afterInsert.md +41 -41
  69. package/docs/hook/insert/preInsert.md +25 -25
  70. package/docs/hook/table/afterTable.md +20 -20
  71. package/docs/hook/table/preTable.md +25 -25
  72. package/docs/hook/update/afterUpdate.md +41 -41
  73. package/docs/hook/update/preUpdate.md +25 -25
  74. package/docs/index.md +42 -42
  75. package/docs/public/fastify-dark.svg +3 -3
  76. package/docs/public/logo-short-dark.svg +11 -11
  77. package/docs/public/logo-short.svg +10 -10
  78. package/docs/public/logo.svg +19 -19
  79. package/docs/readme/index.md +121 -121
  80. package/docs/templates/card.md +83 -83
  81. package/docs/templates/cls.md +29 -29
  82. package/docs/templates/filters.md +91 -91
  83. package/docs/templates/forms.md +139 -139
  84. package/docs/templates/index.md +28 -28
  85. package/docs/templates/select.md +90 -90
  86. package/docs/templates/table.md +162 -162
  87. package/docs/utils/cron/addCron.md +29 -29
  88. package/docs/utils/crud/dataInsert.md +51 -51
  89. package/docs/utils/crud/dataUpdate.md +52 -52
  90. package/docs/utils/crud/getOpt.md +33 -33
  91. package/docs/utils/crud/isFileExists.md +37 -37
  92. package/docs/utils/crud/setOpt.md +37 -37
  93. package/docs/utils/hook/addHook.md +74 -74
  94. package/docs/utils/hook/applyHook.md +64 -64
  95. package/docs/utils/index.md +47 -47
  96. package/docs/utils/notification/addNotification.md +28 -28
  97. package/docs/utils/notification/notification.md +41 -41
  98. package/docs/utils/pg/autoIndex.md +22 -22
  99. package/docs/utils/pg/getMeta.md +58 -58
  100. package/docs/utils/pg/getPG.md +34 -34
  101. package/docs/utils/pg/init.md +29 -29
  102. package/docs/utils/pg/pg.md +70 -70
  103. package/docs/utils/redis/getRedis.md +36 -36
  104. package/docs/utils/redis/rclient.md +74 -74
  105. package/docs/utils/table/getForm.md +68 -68
  106. package/docs/utils/table/getMeta.md +55 -55
  107. package/docs/utils/table/getSelect.md +38 -38
  108. package/docs/utils/table/getSelectMeta.md +46 -46
  109. package/docs/utils/table/getTable.md +77 -77
  110. package/helper.js +30 -30
  111. package/index.js +105 -105
  112. package/migration/exec.migrations.js +79 -79
  113. package/module/core/select/core.user_mentioned.sql +1 -1
  114. package/module/test/cls/itree.composition.json +25 -25
  115. package/module/test/table/test.rest_zone.table.json +265 -265
  116. package/notification/controllers/readNotifications.js +30 -30
  117. package/notification/controllers/testEmail.js +50 -50
  118. package/notification/controllers/userNotifications.js +64 -64
  119. package/notification/funcs/addNotification.js +21 -21
  120. package/notification/funcs/sendNotification.js +112 -112
  121. package/package.json +42 -41
  122. package/pg/funcs/getMeta.js +29 -29
  123. package/pg/funcs/getPG.js +30 -30
  124. package/pg/pgClients.js +20 -20
  125. package/policy/funcs/checkPolicy.js +92 -92
  126. package/policy/funcs/sqlInjection.js +33 -33
  127. package/policy/index.js +14 -14
  128. package/redis/client.js +8 -8
  129. package/redis/funcs/redisClients.js +2 -2
  130. package/redis/index.js +19 -19
  131. package/server/migrations/0.sql +78 -78
  132. package/server/migrations/cls.sql +39 -39
  133. package/server/migrations/properties.sql +144 -144
  134. package/server/migrations/roles.sql +172 -166
  135. package/server/migrations/users.sql +168 -168
  136. package/server.js +26 -26
  137. package/table/controllers/data.js +150 -134
  138. package/table/controllers/filter.js +50 -50
  139. package/table/controllers/form.js +42 -42
  140. package/table/controllers/search.js +80 -80
  141. package/table/controllers/suggest.js +79 -79
  142. package/table/controllers/table.js +83 -79
  143. package/table/controllers/utils/addTemplateDir.js +8 -8
  144. package/table/controllers/utils/getSelect.js +19 -19
  145. package/table/controllers/utils/getSelectMeta.js +66 -66
  146. package/table/controllers/utils/getTemplate_old.js +28 -28
  147. package/table/controllers/utils/getTemplates.js +18 -18
  148. package/table/controllers/utils/gisIRColumn.js +67 -67
  149. package/table/controllers/utils/loadTemplate.js +1 -1
  150. package/table/controllers/utils/loadTemplatePath.js +1 -1
  151. package/table/controllers/utils/userTemplateDir.js +1 -1
  152. package/table/funcs/getFilterSQL/index.js +94 -94
  153. package/table/funcs/getFilterSQL/util/formatValue.js +170 -170
  154. package/table/funcs/getFilterSQL/util/getCustomQuery.js +13 -13
  155. package/table/funcs/getFilterSQL/util/getFilterQuery.js +66 -66
  156. package/table/funcs/getFilterSQL/util/getOptimizedQuery.js +12 -12
  157. package/table/funcs/getFilterSQL/util/getTableSql.js +34 -34
  158. package/table/funcs/metaFormat/getSelectVal.js +21 -21
  159. package/table/funcs/metaFormat/index.js +28 -28
  160. package/table/index.js +37 -84
  161. package/table/schema.js +54 -0
  162. package/test/api/applyHook.test.js +95 -95
  163. package/test/api/crud.test.js +89 -89
  164. package/test/api/crud.xss.test.js +80 -80
  165. package/test/api/suggest.test.js +66 -66
  166. package/test/api/table.test.js +134 -134
  167. package/test/api/user.test.js +85 -85
  168. package/test/api/widget.test.js +117 -117
  169. package/test/helper/formatDate.test.js +62 -62
  170. package/test/templates/select/test.storage.data.json +3 -3
  171. package/test/templates/select/test.suggest.ato_new.json +3 -3
  172. package/test/templates/select/test.suggest.ato_new.sql +25 -25
  173. package/test/templates/select/test.suggest.data.json +4 -4
  174. package/test/templates/select/test.suggest.parent.sql +1 -1
  175. package/user/controllers/user.cls.id.js +14 -14
  176. package/user/controllers/user.cls.js +75 -75
  177. package/user/controllers/user.cls.post.js +55 -55
  178. package/user/controllers/user.info.js +21 -21
  179. package/util/controllers/logger.file.js +91 -91
  180. package/util/controllers/properties.add.js +60 -60
  181. package/util/controllers/status.monitor.js +8 -8
  182. package/util/controllers/utils/checkUserAccess.js +17 -17
  183. package/util/controllers/utils/getRootDir.js +25 -25
  184. package/utils.js +104 -104
  185. package/widget/controllers/utils/historyFormat.js +76 -76
  186. package/widget/controllers/utils/obj2db.js +13 -13
  187. package/widget/controllers/widget.del.js +44 -44
  188. package/widget/controllers/widget.get.js +102 -102
  189. package/widget/controllers/widget.set.js +79 -79
  190. package/widget/index.js +40 -40
@@ -1,123 +1,123 @@
1
- # `GET` Search
2
-
3
- ## Опис
4
-
5
- Пошук даних по тексту з таблиці
6
-
7
- ```example
8
- /api/search?table=gis.dataset.table&key=1
9
- ```
10
-
11
- Пошук за текстом виконується через параметр `key`
12
-
13
- Для коректної роботи пошуку по тексту необхідно внести зміни до шаблону таблиці
14
-
15
- * meta.search - колонка для пошуку за текстом
16
- * meta.title - колонка title
17
- * meta.href - посилання на картку, підтримує handlebars
18
-
19
- Приклад налаштування шаблону таблиці:
20
-
21
- ```json
22
- {
23
- "meta": {
24
- "search": "short_ukr",
25
- "title": "short_ukr",
26
- "href": "/gis.dataset.table/{{id}}"
27
- }
28
- }
29
-
30
- ```
31
-
32
- ## Параметри
33
-
34
- ```scheme-api
35
- /api/search?table=&key=
36
- ```
37
-
38
- | Назва | Тип | Опис |
39
- | ----- | ------ | ------------- |
40
- | table | String | Таблиця |
41
- | key | String | Текст для пошуку |
42
- | sql | Number | Повернути sql запит |
43
- | order | String | Колонка порядку виведення даних |
44
- | desc | Number | Порядок виведення даних |
45
- | page | Number | Сторінка |
46
- | limit | String | Ліміт |
47
-
48
- ## Відповідь
49
-
50
- ::: tabs
51
-
52
- ==Пошук по таблиці
53
- ::: details Приклад
54
-
55
- ```html
56
- /api/search?table=green_space.table&page=3&limit=5&order=cdate&desc=1
57
- ```
58
-
59
- Відповідь:
60
-
61
- ```json
62
- {
63
- "time": 3200,
64
- "total": 1,
65
- "rows": [
66
- {
67
- "id": "3214755775570248945",
68
- "title": "000085",
69
- "register": "green_space.table",
70
- "register_title": "Зелені насадження",
71
- "href": "/green_space.table/3214755775570248945"
72
- }
73
- ]
74
- }
75
- ```
76
-
77
- ==Наскрізний пошук
78
- ::: details Приклад
79
-
80
- ```html
81
- /api/search?page=3&limit=5&order=cdate&desc=1
82
- ```
83
-
84
- Відповідь:
85
-
86
- ```json
87
- {
88
- "time": 70,
89
- "total": 143,
90
- "count": 5,
91
- "rows": [
92
- {
93
- "id": "3379389662576510425",
94
- "title": "000135",
95
- "register": "green_space.table",
96
- "register_title": "Зелені насадження",
97
- "href": "/green_space.table/3379389662576510425"
98
- },
99
- {
100
- "id": "3243156228318169040",
101
- "title": "000115",
102
- "register": "itree.invent_greenspace.table",
103
- "register_title": "Інвентарізація зелених насаджень"
104
- }
105
- ]
106
- }
107
- ```
108
-
109
- ==404
110
-
111
- ```text
112
- not found
113
- ```
114
-
115
- :::
116
-
117
- ## Статус коди
118
-
119
- | Ключ | Опис |
120
- | ---------------------------------------------------------- | ----------------------------------------- |
121
- | <Badge type="code_2xx" text="200" /> Success | Успішний запит |
122
- | <Badge type="code_4xx" text="404" /> Not Found | Інформації не знайдено |
123
- | <Badge type="code_5xx" text="500" /> Internal Server Error | Помилка на стороні сервера |
1
+ # `GET` Search
2
+
3
+ ## Опис
4
+
5
+ Пошук даних по тексту з таблиці
6
+
7
+ ```example
8
+ /api/search?table=gis.dataset.table&key=1
9
+ ```
10
+
11
+ Пошук за текстом виконується через параметр `key`
12
+
13
+ Для коректної роботи пошуку по тексту необхідно внести зміни до шаблону таблиці
14
+
15
+ * meta.search - колонка для пошуку за текстом
16
+ * meta.title - колонка title
17
+ * meta.href - посилання на картку, підтримує handlebars
18
+
19
+ Приклад налаштування шаблону таблиці:
20
+
21
+ ```json
22
+ {
23
+ "meta": {
24
+ "search": "short_ukr",
25
+ "title": "short_ukr",
26
+ "href": "/gis.dataset.table/{{id}}"
27
+ }
28
+ }
29
+
30
+ ```
31
+
32
+ ## Параметри
33
+
34
+ ```scheme-api
35
+ /api/search?table=&key=
36
+ ```
37
+
38
+ | Назва | Тип | Опис |
39
+ | ----- | ------ | ------------- |
40
+ | table | String | Таблиця |
41
+ | key | String | Текст для пошуку |
42
+ | sql | Number | Повернути sql запит |
43
+ | order | String | Колонка порядку виведення даних |
44
+ | desc | Number | Порядок виведення даних |
45
+ | page | Number | Сторінка |
46
+ | limit | String | Ліміт |
47
+
48
+ ## Відповідь
49
+
50
+ ::: tabs
51
+
52
+ ==Пошук по таблиці
53
+ ::: details Приклад
54
+
55
+ ```html
56
+ /api/search?table=green_space.table&page=3&limit=5&order=cdate&desc=1
57
+ ```
58
+
59
+ Відповідь:
60
+
61
+ ```json
62
+ {
63
+ "time": 3200,
64
+ "total": 1,
65
+ "rows": [
66
+ {
67
+ "id": "3214755775570248945",
68
+ "title": "000085",
69
+ "register": "green_space.table",
70
+ "register_title": "Зелені насадження",
71
+ "href": "/green_space.table/3214755775570248945"
72
+ }
73
+ ]
74
+ }
75
+ ```
76
+
77
+ ==Наскрізний пошук
78
+ ::: details Приклад
79
+
80
+ ```html
81
+ /api/search?page=3&limit=5&order=cdate&desc=1
82
+ ```
83
+
84
+ Відповідь:
85
+
86
+ ```json
87
+ {
88
+ "time": 70,
89
+ "total": 143,
90
+ "count": 5,
91
+ "rows": [
92
+ {
93
+ "id": "3379389662576510425",
94
+ "title": "000135",
95
+ "register": "green_space.table",
96
+ "register_title": "Зелені насадження",
97
+ "href": "/green_space.table/3379389662576510425"
98
+ },
99
+ {
100
+ "id": "3243156228318169040",
101
+ "title": "000115",
102
+ "register": "itree.invent_greenspace.table",
103
+ "register_title": "Інвентарізація зелених насаджень"
104
+ }
105
+ ]
106
+ }
107
+ ```
108
+
109
+ ==404
110
+
111
+ ```text
112
+ not found
113
+ ```
114
+
115
+ :::
116
+
117
+ ## Статус коди
118
+
119
+ | Ключ | Опис |
120
+ | ---------------------------------------------------------- | ----------------------------------------- |
121
+ | <Badge type="code_2xx" text="200" /> Success | Успішний запит |
122
+ | <Badge type="code_4xx" text="404" /> Not Found | Інформації не знайдено |
123
+ | <Badge type="code_5xx" text="500" /> Internal Server Error | Помилка на стороні сервера |
@@ -1,156 +1,156 @@
1
- # `GET` Suggest
2
-
3
- ## Опис
4
-
5
- Повертає інформацію за запитом
6
-
7
- ```example
8
- /api/suggest/test
9
- ```
10
-
11
- ## Параметри
12
-
13
- ```scheme-api
14
- /api/suggest/:data?name={name}&lang={lang}&sel={sel}
15
- ```
16
-
17
- :::tabs
18
-
19
- == params
20
-
21
- | Назва | Тип | Опис |
22
- | ----- | ------ | ---- |
23
- | data | String | Дані |
24
-
25
- == query
26
-
27
- | Назва | Тип | Опис |
28
- | ----- | ------ | ------ |
29
- | name | String | Назва |
30
- | lang | String | Мова |
31
- | sel | String | Селект |
32
- | json | Number | Результат у вигляді об'єкту (за замовчуванням - масив) |
33
-
34
- :::
35
-
36
- ## Приклади
37
-
38
- ::: tabs
39
-
40
- ==200 Результат у вигляді масиву
41
-
42
- ### Запит
43
-
44
- ```txt
45
- /api/suggest/data_parcel.object_type
46
- ```
47
-
48
- ### Відповідь
49
-
50
- ```json
51
- [
52
- {
53
- "id": "1",
54
- "text": "Теплиця",
55
- "color": "orange"
56
- },
57
- {
58
- "id": "2",
59
- "text": "Сад",
60
- "color": "green"
61
- }
62
- ]
63
- ```
64
-
65
- ==200 Результат у вигляді об'єкту
66
-
67
- ### Запит
68
-
69
- ```txt
70
- /api/suggest/data_parcel.object_type?json=1
71
- ```
72
-
73
- ### Відповідь
74
-
75
- ```json
76
- {
77
- "limit": 50,
78
- "count": 2,
79
- "mode": "array",
80
- "time": 1,
81
- "data": [
82
- {
83
- "id": "1",
84
- "text": "Теплиця",
85
- "color": "orange"
86
- },
87
- {
88
- "id": "2",
89
- "text": "Сад",
90
- "color": "green"
91
- }
92
- ]
93
- }
94
-
95
- ```
96
-
97
- ==200 Передача шаблону таблиці та колонки
98
-
99
- ### Запит
100
-
101
- ```txt
102
- /api/suggest/site.prc.parcel_object.table:frame_type?json=1
103
- ```
104
-
105
- ### Відповідь
106
-
107
- ```json
108
- {
109
- "time": 4,
110
- "count": 5,
111
- "total": null,
112
- "mode": "sql",
113
- "sql": "with c(id,text) as (select row_number() over(), frame_type from data_parcel.parcel_object group by frame_type ) select * from c where id is not null limit 50",
114
- "data": [
115
- {
116
- "id": "1",
117
- "text": "Металевий збірний"
118
- },
119
- {
120
- "id": "2",
121
- "text": "Металевий (стальний), збірний"
122
- },
123
- {
124
- "id": "3",
125
- "text": "Металевий, збірний"
126
- }
127
- ]
128
- }
129
-
130
- ```
131
-
132
-
133
-
134
-
135
- ==400
136
-
137
- ```text
138
- name is required
139
- ```
140
-
141
- ==404
142
-
143
- ```text
144
- Not found query select
145
- ```
146
-
147
- :::
148
-
149
- ## Статус коди
150
-
151
- | Ключ | Опис |
152
- | ---------------------------------------------------------- | ----------------------------------------- |
153
- | <Badge type="code_2xx" text="200" /> Success | Успішний запит |
154
- | <Badge type="code_4xx" text="400" /> Bad Request | Неправильно сформований запит від клієнта |
155
- | <Badge type="code_4xx" text="404" /> Not Found | Інформації не знайдено |
156
- | <Badge type="code_5xx" text="500" /> Internal Server Error | Помилка на стороні сервера |
1
+ # `GET` Suggest
2
+
3
+ ## Опис
4
+
5
+ Повертає інформацію за запитом
6
+
7
+ ```example
8
+ /api/suggest/test
9
+ ```
10
+
11
+ ## Параметри
12
+
13
+ ```scheme-api
14
+ /api/suggest/:data?name={name}&lang={lang}&sel={sel}
15
+ ```
16
+
17
+ :::tabs
18
+
19
+ == params
20
+
21
+ | Назва | Тип | Опис |
22
+ | ----- | ------ | ---- |
23
+ | data | String | Дані |
24
+
25
+ == query
26
+
27
+ | Назва | Тип | Опис |
28
+ | ----- | ------ | ------ |
29
+ | name | String | Назва |
30
+ | lang | String | Мова |
31
+ | sel | String | Селект |
32
+ | json | Number | Результат у вигляді об'єкту (за замовчуванням - масив) |
33
+
34
+ :::
35
+
36
+ ## Приклади
37
+
38
+ ::: tabs
39
+
40
+ ==200 Результат у вигляді масиву
41
+
42
+ ### Запит
43
+
44
+ ```txt
45
+ /api/suggest/data_parcel.object_type
46
+ ```
47
+
48
+ ### Відповідь
49
+
50
+ ```json
51
+ [
52
+ {
53
+ "id": "1",
54
+ "text": "Теплиця",
55
+ "color": "orange"
56
+ },
57
+ {
58
+ "id": "2",
59
+ "text": "Сад",
60
+ "color": "green"
61
+ }
62
+ ]
63
+ ```
64
+
65
+ ==200 Результат у вигляді об'єкту
66
+
67
+ ### Запит
68
+
69
+ ```txt
70
+ /api/suggest/data_parcel.object_type?json=1
71
+ ```
72
+
73
+ ### Відповідь
74
+
75
+ ```json
76
+ {
77
+ "limit": 50,
78
+ "count": 2,
79
+ "mode": "array",
80
+ "time": 1,
81
+ "data": [
82
+ {
83
+ "id": "1",
84
+ "text": "Теплиця",
85
+ "color": "orange"
86
+ },
87
+ {
88
+ "id": "2",
89
+ "text": "Сад",
90
+ "color": "green"
91
+ }
92
+ ]
93
+ }
94
+
95
+ ```
96
+
97
+ ==200 Передача шаблону таблиці та колонки
98
+
99
+ ### Запит
100
+
101
+ ```txt
102
+ /api/suggest/site.prc.parcel_object.table:frame_type?json=1
103
+ ```
104
+
105
+ ### Відповідь
106
+
107
+ ```json
108
+ {
109
+ "time": 4,
110
+ "count": 5,
111
+ "total": null,
112
+ "mode": "sql",
113
+ "sql": "with c(id,text) as (select row_number() over(), frame_type from data_parcel.parcel_object group by frame_type ) select * from c where id is not null limit 50",
114
+ "data": [
115
+ {
116
+ "id": "1",
117
+ "text": "Металевий збірний"
118
+ },
119
+ {
120
+ "id": "2",
121
+ "text": "Металевий (стальний), збірний"
122
+ },
123
+ {
124
+ "id": "3",
125
+ "text": "Металевий, збірний"
126
+ }
127
+ ]
128
+ }
129
+
130
+ ```
131
+
132
+
133
+
134
+
135
+ ==400
136
+
137
+ ```text
138
+ name is required
139
+ ```
140
+
141
+ ==404
142
+
143
+ ```text
144
+ Not found query select
145
+ ```
146
+
147
+ :::
148
+
149
+ ## Статус коди
150
+
151
+ | Ключ | Опис |
152
+ | ---------------------------------------------------------- | ----------------------------------------- |
153
+ | <Badge type="code_2xx" text="200" /> Success | Успішний запит |
154
+ | <Badge type="code_4xx" text="400" /> Bad Request | Неправильно сформований запит від клієнта |
155
+ | <Badge type="code_4xx" text="404" /> Not Found | Інформації не знайдено |
156
+ | <Badge type="code_5xx" text="500" /> Internal Server Error | Помилка на стороні сервера |