@opengis/gis 0.2.180 → 0.2.182
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.
package/package.json
CHANGED
|
@@ -13,6 +13,7 @@ export default async function getTableColumnMeta(
|
|
|
13
13
|
table,
|
|
14
14
|
template,
|
|
15
15
|
column: queryColumn,
|
|
16
|
+
cls,
|
|
16
17
|
filtered,
|
|
17
18
|
startsWith,
|
|
18
19
|
key,
|
|
@@ -41,8 +42,9 @@ export default async function getTableColumnMeta(
|
|
|
41
42
|
? await getFilter({ pg, table: template }).then((el) => el.list)
|
|
42
43
|
: null;
|
|
43
44
|
|
|
44
|
-
const { data: clsName } =
|
|
45
|
-
|
|
45
|
+
const { data: clsName } = cls
|
|
46
|
+
? { data: cls }
|
|
47
|
+
: (filters || []).find((el) => el.name === queryColumn) || {};
|
|
46
48
|
const { arr, sql: select } =
|
|
47
49
|
(await getSelect(clsName || queryColumn, pg)) || // cls name === table:column
|
|
48
50
|
(await getSelect(queryColumn, pg)) || // cls name === column name
|
|
@@ -55,6 +55,7 @@ export default async function gisSuggest({ token, key, val, uid, lang = 'ua', li
|
|
|
55
55
|
const clsMeta = await getTableColumnMeta({
|
|
56
56
|
table: registry.table_name,
|
|
57
57
|
column: name,
|
|
58
|
+
cls,
|
|
58
59
|
filtered: !!(key || val),
|
|
59
60
|
key,
|
|
60
61
|
});
|
|
@@ -70,7 +71,7 @@ export default async function gisSuggest({ token, key, val, uid, lang = 'ua', li
|
|
|
70
71
|
"''"
|
|
71
72
|
);
|
|
72
73
|
|
|
73
|
-
// table:column
|
|
74
|
+
// table:column w/ out cls
|
|
74
75
|
if (arr && !cls) {
|
|
75
76
|
const sqlCls = count
|
|
76
77
|
? `select value, count(*) from (select ${pg.pgType?.[dataTypeID]?.includes("[]")
|
|
@@ -138,31 +139,6 @@ export default async function gisSuggest({ token, key, val, uid, lang = 'ua', li
|
|
|
138
139
|
}
|
|
139
140
|
}
|
|
140
141
|
|
|
141
|
-
// cls
|
|
142
|
-
if (arr) {
|
|
143
|
-
const lower = key?.toLowerCase();
|
|
144
|
-
const data1 =
|
|
145
|
-
key || val
|
|
146
|
-
? arr
|
|
147
|
-
?.filter(
|
|
148
|
-
(el) =>
|
|
149
|
-
!lower ||
|
|
150
|
-
(el[lang] || el.text)?.toLowerCase()?.indexOf(lower) !== -1
|
|
151
|
-
)
|
|
152
|
-
?.filter((el) => !val || val?.split?.(",")?.includes?.(el.id))
|
|
153
|
-
: arr;
|
|
154
|
-
const data = data1.slice(0, Math.min(limit1 || limit, limit));
|
|
155
|
-
|
|
156
|
-
return {
|
|
157
|
-
time: Date.now() - time,
|
|
158
|
-
limit,
|
|
159
|
-
count: data.length,
|
|
160
|
-
total: arr.length,
|
|
161
|
-
mode: "array",
|
|
162
|
-
data,
|
|
163
|
-
};
|
|
164
|
-
}
|
|
165
|
-
|
|
166
142
|
// table:column as select query
|
|
167
143
|
const args = [];
|
|
168
144
|
const where = [];
|
|
@@ -231,7 +207,37 @@ export default async function gisSuggest({ token, key, val, uid, lang = 'ua', li
|
|
|
231
207
|
Object.assign(el, { id: "null", text: "Показати порожні значення" })
|
|
232
208
|
);
|
|
233
209
|
|
|
234
|
-
|
|
210
|
+
const ids = data.map((el) => el.text);
|
|
211
|
+
|
|
212
|
+
// table:column w/ cls
|
|
213
|
+
if (arr) {
|
|
214
|
+
const lower = key?.toLowerCase();
|
|
215
|
+
const data1 =
|
|
216
|
+
key || val
|
|
217
|
+
? arr
|
|
218
|
+
?.filter(
|
|
219
|
+
(el) =>
|
|
220
|
+
!lower ||
|
|
221
|
+
(el[lang] || el.text)?.toLowerCase()?.indexOf(lower) !== -1
|
|
222
|
+
)
|
|
223
|
+
?.filter((el) => !val || val?.split?.(",")?.includes?.(el.id))
|
|
224
|
+
: arr;
|
|
225
|
+
const data2 = data1.filter((el) => ids.includes(el.id)).slice(0, Math.min(limit1 || limit, limit));
|
|
226
|
+
data2.forEach((el) => Object.assign(el, { count: data.find((e) => e.text === el.id)?.count || 0 }));
|
|
227
|
+
if (data.find((el) => el.id === 'null') && !data2.find((el) => el.id === 'null')) {
|
|
228
|
+
data2.push(data.find((el) => el.id === 'null'));
|
|
229
|
+
}
|
|
230
|
+
return {
|
|
231
|
+
time: Date.now() - time,
|
|
232
|
+
limit,
|
|
233
|
+
count: data2.length,
|
|
234
|
+
total: arr.length,
|
|
235
|
+
mode: "array",
|
|
236
|
+
data: data2,
|
|
237
|
+
};
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
// table:column w/ select
|
|
235
241
|
if (!cls) {
|
|
236
242
|
const { name: clsName = name, type = "select" } =
|
|
237
243
|
getColumnCLS(registry.table_name, name) || {};
|
|
@@ -263,6 +269,15 @@ export default async function gisSuggest({ token, key, val, uid, lang = 'ua', li
|
|
|
263
269
|
};
|
|
264
270
|
}
|
|
265
271
|
|
|
272
|
+
await metaFormat(
|
|
273
|
+
{
|
|
274
|
+
rows: data,
|
|
275
|
+
cls: { text: cls },
|
|
276
|
+
sufix: false,
|
|
277
|
+
},
|
|
278
|
+
pg
|
|
279
|
+
);
|
|
280
|
+
|
|
266
281
|
return {
|
|
267
282
|
time: Date.now() - time,
|
|
268
283
|
limit,
|
|
@@ -35,7 +35,7 @@ export async function handleRegistryRequest({
|
|
|
35
35
|
const { arr, sql } = el.data ? await getSelect(el.data, pg) : {};
|
|
36
36
|
|
|
37
37
|
const r = {
|
|
38
|
-
...el, id: el.name || el.id, type: el.type, api: `/api/gis-suggest/${hash}`, options: arr, sql
|
|
38
|
+
...el, id: el.name || el.id, type: el.type, api: `/api/gis-suggest/${hash}`, options: arr, select: sql
|
|
39
39
|
};
|
|
40
40
|
|
|
41
41
|
const unique = await rclient.setnx(redisKey, 1);
|