@opengis/gis 0.2.183 → 0.2.185
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/dist/{CardIcon-CKcvisBB.js → CardIcon-C3cCdpvO.js} +1 -1
- package/dist/{EntityTablePage-Dj4Ysqkw.js → EntityTablePage-D0hDbacp.js} +1 -1
- package/dist/{ExtentOutlineLayer.vue_vue_type_script_setup_true_lang-zNchIX_P.js → ExtentOutlineLayer.vue_vue_type_script_setup_true_lang-8ervbwRu.js} +1 -1
- package/dist/{MapSettings-DH7BzcxB.js → MapSettings-BQak-606.js} +1 -1
- package/dist/{MapToolbarRight.vue_vue_type_script_setup_true_lang-B5aTyoyH.js → MapToolbarRight.vue_vue_type_script_setup_true_lang-D5Q1QqS8.js} +1 -1
- package/dist/{RastersTablePage-BjgVVZDP.js → RastersTablePage-DbiK7bD4.js} +1 -1
- package/dist/{cartocss-B-5m_Jgg.js → cartocss-H7PBnoyC.js} +37 -37
- package/dist/{import-utils-Bzs6QWW3.js → import-utils-BYsmUngb.js} +1 -1
- package/dist/{index-DhmYISKS.js → index-Bd_JFn54.js} +4785 -4722
- package/dist/index.css +1 -1
- package/dist/index.js +1 -1
- package/dist/index.umd.cjs +25 -25
- package/dist/{raster-XFH5nm6L.js → raster-DzFKHCJf.js} +3 -3
- package/dist/{register-CNWivGIA.js → register-ChSxZGlt.js} +3 -3
- package/dist/{service-CAelhYEL.js → service-DB7wy37J.js} +5 -5
- package/dist/{vs-datatable-DkR1zed2.js → vs-datatable-BvSBnibk.js} +2 -3
- package/module/gis/card/gis.metadata.table/index.yml +22 -22
- package/module/gis/card/gis.rasters.table/index.yml +11 -11
- package/module/gis/card/gis.registers.table/index.yml +23 -23
- package/module/gis/card/gis.services.table/index.yml +25 -25
- package/module/gis/cls/bool.yes_no.json +12 -12
- package/module/gis/cls/encoding.json +14 -14
- package/module/gis/cls/geom_type.json +14 -14
- package/module/gis/cls/gis.column_type.json +34 -34
- package/module/gis/cls/gis.column_view_type.json +26 -26
- package/module/gis/cls/gis.filter_type.json +22 -22
- package/module/gis/cls/language.json +10 -10
- package/module/gis/cls/meta.service_type.json +42 -42
- package/module/gis/cls/ogc.service.json +21 -21
- package/module/gis/cls/source_type.json +10 -10
- package/module/gis/cls/standarts.json +6 -6
- package/module/gis/cls/topic_category.json +106 -106
- package/module/gis/cls/update_frequency.json +29 -29
- package/module/gis/cls/view.json +21 -21
- package/module/gis/form/feedback.answer.form.json +10 -10
- package/module/gis/form/gis.cartocss.form.json +64 -64
- package/module/gis/form/gis.group_list.form.json +17 -17
- package/module/gis/form/gis.maps.form.json +61 -61
- package/module/gis/form/gis.metadata.form.json +240 -240
- package/module/gis/form/gis.metadata_new.form.json +195 -195
- package/module/gis/form/gis.ogc_service.form.json +51 -51
- package/module/gis/form/gis.rasters.form.json +76 -76
- package/module/gis/form/gis.registers_column.form.json +84 -84
- package/module/gis/form/gis.registers_filter.form.json +65 -65
- package/module/gis/form/gis.services.form.json +111 -111
- package/module/gis/form/gis.services_attributes.form.json +75 -75
- package/module/gis/form/gis.services_filter.form.json +65 -65
- package/module/gis/menu.json +43 -43
- package/module/gis/select/admin.cls.name.sql +9 -9
- package/module/gis/select/layer_list.sql +7 -7
- package/module/gis/select/layer_list_text.sql +7 -7
- package/module/gis/select/pg.column_name.geometry.sql +12 -12
- package/module/gis/select/pg.columns.parent.sql +6 -6
- package/module/gis/select/pg.table_name.sql +17 -17
- package/module/gis/select/service_id.sql +1 -1
- package/module/gis/select/srid.sql +7 -7
- package/module/gis/table/gis.cartocss.table.json +74 -74
- package/module/gis/table/gis.group_list.table.json +58 -58
- package/module/gis/table/gis.maps.table.json +110 -110
- package/module/gis/table/gis.metadata.table.json +70 -70
- package/module/gis/table/gis.metadata_new.table.json +137 -137
- package/module/gis/table/gis.ogc_service.table.json +100 -100
- package/module/gis/table/gis.rasters.table.json +113 -113
- package/module/gis/table/gis.registers.table.json +143 -143
- package/module/gis/table/gis.services.table.json +120 -120
- package/module/gis/table/site.gis.registers.table.json +88 -88
- package/module/gis/table/site.gis.services.table.json +106 -106
- package/module/gis/templates/ISO19136_2017_gml_template.xml +330 -330
- package/module/gis/tokens.yml +5 -5
- package/module/permissions/form/permissions.users.form.json +151 -151
- package/module/permissions/table/gis.permissions.table.json +97 -97
- package/package.json +2 -2
- package/server/routes/registers/functions/gis.suggest.js +16 -8
- package/server/routes/registers/functions/handleRegistryRequest.js +3 -2
- package/server/routes/registers/registers.route.test.js +1 -1
- package/server/routes/services/functions/get.services.js +34 -4
- package/server/routes/services/services.route.test.js +4 -0
|
@@ -1,6 +1,9 @@
|
|
|
1
|
+
import { createHash } from 'node:crypto';
|
|
2
|
+
|
|
1
3
|
import { NotFoundError } from '@opengis/fastify-table/errors.js';
|
|
2
4
|
import {
|
|
3
|
-
dataUpdate, getMeta, pgClients, yml2json,
|
|
5
|
+
dataUpdate, getMeta, pgClients, yml2json,
|
|
6
|
+
getTemplate, getSelect, getRedis
|
|
4
7
|
} from '@opengis/fastify-table/utils.js';
|
|
5
8
|
|
|
6
9
|
const columnType = {
|
|
@@ -13,6 +16,8 @@ const columnType = {
|
|
|
13
16
|
'timestamp with time zone': 'date',
|
|
14
17
|
};
|
|
15
18
|
|
|
19
|
+
const rclient = getRedis();
|
|
20
|
+
|
|
16
21
|
export default async function getServices({ id }, pg = pgClients.client) {
|
|
17
22
|
const t = await getTemplate('layer', id);
|
|
18
23
|
if (t) return t;
|
|
@@ -79,9 +84,34 @@ export default async function getServices({ id }, pg = pgClients.client) {
|
|
|
79
84
|
?.split?.(','),
|
|
80
85
|
}));
|
|
81
86
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
87
|
+
|
|
88
|
+
if (id && rows.length && rows[0].filters) {
|
|
89
|
+
const activeFilters = await Promise.all((rows[0].filters || []).filter((f) => f.disabled !== true).map(async (el) => {
|
|
90
|
+
const hash = createHash('md5').update([id, el.name, el.data].filter(Boolean).join('-')).digest('hex');
|
|
91
|
+
const redisKey = `${pg?.options?.database}:gis-suggest-filter:${hash}`;
|
|
92
|
+
|
|
93
|
+
const cls = el.data ? await getSelect(el.data, pg) : undefined;
|
|
94
|
+
const { arr, sql } = cls || {};
|
|
95
|
+
|
|
96
|
+
const r = {
|
|
97
|
+
...el, id: el.name || el.id, type: el.type, api: `/api/gis-suggest/${hash}`, options: arr, select: sql
|
|
98
|
+
};
|
|
99
|
+
|
|
100
|
+
const unique = await rclient.setnx(redisKey, 1);
|
|
101
|
+
const ttl = await rclient.ttl(redisKey);
|
|
102
|
+
|
|
103
|
+
// skip subsequent calls
|
|
104
|
+
if (!unique && ttl !== -1) {
|
|
105
|
+
return r;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
await rclient.set(redisKey, JSON.stringify({ service: id, filter: el.name }), 'EX', 15 * 60);
|
|
109
|
+
return r;
|
|
110
|
+
}));
|
|
111
|
+
Object.assign(rows[0], {
|
|
112
|
+
filters: activeFilters,
|
|
113
|
+
});
|
|
114
|
+
}
|
|
85
115
|
|
|
86
116
|
if (id) {
|
|
87
117
|
return { ...rows[0], fields };
|
|
@@ -49,6 +49,10 @@ describe('GIS routes', () => {
|
|
|
49
49
|
expect(res1.body).toHaveProperty('service_id');
|
|
50
50
|
expect(res1.body).toHaveProperty('name');
|
|
51
51
|
expect(res1.body).toHaveProperty('service_key');
|
|
52
|
+
expect(res1.body).toHaveProperty('filters');
|
|
53
|
+
expect(res1.body.filters.length).toBeGreaterThan(0);
|
|
54
|
+
expect(res1.body.filters[0]).toHaveProperty('api');
|
|
55
|
+
expect(res1.body.filters[0].api).toMatch('/gis-suggest/');
|
|
52
56
|
|
|
53
57
|
const res2 = await injectWithHeaders({
|
|
54
58
|
url: `/api/gis-service/${res.body.rows[0].service_id}/${res.body.fields[0].name}`,
|