@opengis/gis 0.2.167 → 0.2.169
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-golqfa-Y.js → CardIcon-xkRDr3_E.js} +1 -1
- package/dist/{EntityTablePage-BhmxePgR.js → EntityTablePage-D1IR5Bmq.js} +1 -1
- package/dist/{ExtentOutlineLayer.vue_vue_type_script_setup_true_lang-BFa27smR.js → ExtentOutlineLayer.vue_vue_type_script_setup_true_lang-BJKIgAkD.js} +1 -1
- package/dist/{HeaderActions.vue_vue_type_script_setup_true_lang-Dp0MjgnU.js → HeaderActions.vue_vue_type_script_setup_true_lang-BU8__ouG.js} +1 -1
- package/dist/{MapSettings-F_DT3xKl.js → MapSettings-DIOlNpt6.js} +1 -1
- package/dist/{RastersTablePage-3rXQ0baG.js → RastersTablePage-OD1VqHP8.js} +1 -1
- package/dist/{cartocss-CN-UrS7V.js → cartocss-BiamDcNB.js} +5 -5
- package/dist/{import-utils-F5ErbNz1.js → import-utils-CvUG1jV0.js} +1 -1
- package/dist/{index-CdB0VXro.js → index-C6W8IkTm.js} +1224 -1221
- package/dist/index.css +1 -1
- package/dist/index.js +1 -1
- package/dist/index.umd.cjs +53 -40
- package/dist/{raster-DWmiWlf7.js → raster-BbIiZGoX.js} +3 -3
- package/dist/{register-D1jLD0hK.js → register-Dt2QoLZ3.js} +3 -3
- package/dist/service-CdUYntMi.js +3472 -0
- package/dist/{vs-datatable-BWItxbtK.js → vs-datatable-BELnJrfM.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.form.json +124 -124
- 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/module/test/map/addr.json +303 -0
- package/module/test/map/{addr.yml → addr1.yml} +3 -1
- package/module/test/select/address.str_id.sql +3 -0
- package/package.json +10 -10
- package/plugin.js +21 -12
- package/server/plugins/mapnik/funcs/checkRasterFile.js +1 -3
- package/server/routes/cartocss/cartocss.route.js +31 -0
- package/server/routes/cartocss/cartocss.route.test.js +79 -0
- package/server/routes/cartocss/cartocss.schema.js +73 -0
- package/server/routes/{gis/cartocss → cartocss/functions}/add.cartocss.js +8 -11
- package/server/routes/{gis/cartocss → cartocss/functions}/get.cartocss.js +11 -13
- package/server/routes/gis/functions/checkXML.js +107 -0
- package/server/routes/gis/functions/dashboard.js +24 -0
- package/server/routes/gis/gis.route.js +26 -0
- package/server/routes/gis/gis.route.test.js +34 -0
- package/server/routes/gis/gis.schema.js +1 -0
- package/server/routes/map/{controllers → functions}/clearTiles.js +9 -8
- package/server/routes/map/{controllers → functions}/geojson.js +43 -43
- package/server/routes/map/{controllers → functions}/gis.convert.js +15 -23
- package/server/routes/map/{controllers → functions}/gis.icon.js +23 -10
- package/server/routes/map/{controllers → functions}/jsonData.js +72 -71
- package/server/routes/map/{controllers → functions}/layerList.js +17 -17
- package/server/routes/map/{controllers → functions}/map.js +8 -9
- package/server/routes/map/{controllers → functions}/mapCatalog.js +7 -7
- package/server/routes/map/functions/mapCatalogAttribute.js +54 -0
- package/server/routes/map/{controllers → functions}/mapFeatures.js +22 -18
- package/server/routes/map/{controllers → functions}/mapFormat.js +25 -28
- package/server/routes/map/{controllers → functions}/mapTiles.js +39 -30
- package/server/routes/map/{controllers → functions}/maps.js +3 -3
- package/server/routes/map/{controllers → functions}/marker_icon.js +1 -1
- package/server/routes/map/{controllers → functions}/parseGeoFile.js +10 -11
- package/server/routes/map/{controllers → functions}/pointHeight.js +3 -7
- package/server/routes/map/{controllers → functions}/vtile.js +5 -3
- package/server/routes/map/{vtile1.js → functions/vtile1.js} +39 -33
- package/server/routes/map/map.route.js +280 -0
- package/server/routes/map/map.route.test.js +503 -0
- package/server/routes/map/map.schema.js +356 -0
- package/server/routes/mapnik/{controllers → functions}/clearTiles.js +26 -29
- package/server/routes/mapnik/{controllers → functions}/createXml.js +17 -20
- package/server/routes/mapnik/{controllers → functions}/createXmlMulti.js +11 -15
- package/server/routes/mapnik/{controllers → functions}/fileSearch.js +6 -9
- package/server/routes/mapnik/functions/fileStat.js +28 -0
- package/server/routes/mapnik/{controllers → functions}/pretile.js +29 -35
- package/server/routes/mapnik/{controllers → functions}/rasterInfo.js +19 -10
- package/server/routes/mapnik/{controllers → functions}/readDir.js +4 -4
- package/server/routes/mapnik/functions/rtile.js +164 -0
- package/server/routes/mapnik/{controllers → functions}/uploadRaster.js +19 -24
- package/server/routes/mapnik/functions/uploadXML.js +27 -0
- package/server/routes/mapnik/mapnik.route.js +102 -0
- package/server/routes/mapnik/mapnik.route.test.js +371 -0
- package/server/routes/mapnik/mapnik.schema.mjs +190 -0
- package/server/routes/mapnik.prefixless/functions/mapnikLogger.js +31 -0
- package/server/routes/{mapnik/controllers → mapnik.prefixless/functions}/mapnikStat.js +7 -5
- package/server/routes/mapnik.prefixless/mapnik.prefixless.route.js +20 -0
- package/server/routes/mapnik.prefixless/mapnik.prefixless.route.test.js +91 -0
- package/server/routes/mapnik.prefixless/mapnik.prefixless.schema.mjs +27 -0
- package/server/routes/maps/functions/add.map.js +42 -0
- package/server/routes/{map/maps → maps/functions}/del.map.js +6 -7
- package/server/routes/{map/maps → maps/functions}/get.map.js +12 -11
- package/server/routes/maps/maps.route.js +58 -0
- package/server/routes/maps/maps.route.test.js +231 -0
- package/server/routes/maps/maps.schema.js +10 -0
- package/server/routes/metadata/functions/editMetadata.js +35 -0
- package/server/routes/metadata/functions/metadataXML.js +19 -0
- package/server/routes/metadata/metadata.route.js +26 -0
- package/server/routes/metadata/metadata.route.test.js +47 -0
- package/server/routes/metadata/metadata.schema.js +53 -0
- package/server/routes/{gis/ogc → ogc/functions}/map.info.point.js +22 -29
- package/server/routes/ogc/ogc.route.js +21 -0
- package/server/routes/ogc/ogc.route.test.js +54 -0
- package/server/routes/ogc/ogc.schema.js +16 -0
- package/server/routes/permissions/functions/catalog.permissions.edit.js +20 -0
- package/server/routes/permissions/functions/catalog.permissions.js +13 -0
- package/server/routes/permissions/{controllers → functions}/gis.catalog.js +10 -10
- package/server/routes/permissions/permissions.route.js +35 -0
- package/server/routes/permissions/permissions.route.test.js +35 -0
- package/server/routes/permissions/permissions.schema.js +44 -0
- package/server/routes/registers/functions/add.registry.js +37 -0
- package/server/routes/{gis/registers/funcs → registers/functions}/classifiers.js +2 -2
- package/server/routes/{gis/registers → registers/functions}/del.registry.js +5 -5
- package/server/routes/{gis/registers/funcs → registers/functions}/get.info.js +9 -5
- package/server/routes/{gis/registers → registers/functions}/gis.export.js +27 -21
- package/server/routes/{gis/registers → registers/functions}/gis.registry.js +22 -15
- package/server/routes/{gis/registers → registers/functions}/gis.registry.list.js +12 -10
- package/server/routes/{gis/registers/funcs → registers/functions}/handleRegistryRequest.js +12 -11
- package/server/routes/registers/registers.route.js +80 -0
- package/server/routes/registers/registers.route.test.js +145 -0
- package/server/routes/registers/registers.schema.js +246 -0
- package/server/routes/{gis/services → services/functions}/add.service.js +14 -16
- package/server/routes/services/functions/create.route.js +93 -0
- package/server/routes/{gis/services → services/functions}/del.service.js +5 -5
- package/server/routes/{gis/services → services/functions}/get.service.users.js +15 -13
- package/server/routes/services/functions/get.services.col.js +34 -0
- package/server/routes/{gis/services → services/functions}/get.services.js +21 -16
- package/server/routes/services/services.route.js +76 -0
- package/server/routes/services/services.route.test.js +168 -0
- package/server/routes/services/services.schema.js +278 -0
- package/server/routes/widgets/functions/add.widget.js +39 -0
- package/server/routes/widgets/functions/del.widget.js +18 -0
- package/server/routes/{map/widgets → widgets/functions}/get.widget.js +12 -11
- package/server/routes/widgets/widgets.route.js +61 -0
- package/server/routes/widgets/widgets.route.test.js +144 -0
- package/server/routes/widgets/widgets.schema.js +25 -0
- package/dist/service-JGNtth-y.js +0 -2593
- package/module/cls.json +0 -7
- package/module/gis/card/gis.metadata.table/main_info.hbs +0 -21
- package/module/gis/card/gis.metadata.table/metadata_info.hbs +0 -28
- package/module/gis/card/gis.metadata.table/other.hbs +0 -26
- package/module/gis/card/gis.rasters.table/main_info.hbs +0 -27
- package/module/gis/card/gis.registers.table/cls.hbs +0 -36
- package/module/gis/card/gis.registers.table/columns.hbs +0 -89
- package/module/gis/card/gis.registers.table/filters.hbs +0 -80
- package/module/gis/card/gis.registers.table/main_info.hbs +0 -35
- package/module/gis/card/gis.registers.table/source.hbs +0 -45
- package/module/gis/card/gis.services.table/attributes.hbs +0 -91
- package/module/gis/card/gis.services.table/filters.hbs +0 -83
- package/module/gis/card/gis.services.table/main_info.hbs +0 -27
- package/module/gis/card/gis.services.table/source.hbs +0 -26
- package/module/test/cls/bp_build_type.json +0 -37
- package/module/test/cls/doc_status.json +0 -32
- package/module/test/cls/ts.temp_status.json +0 -18
- package/module/test/cls/ts.temp_structure.ts_class.json +0 -50
- package/module/test/cls/ts.temp_type.json +0 -10
- package/module/test/layer/bp.json +0 -60
- package/module/test/layer/bp1.yml +0 -33
- package/module/test/layer/individual.yml +0 -54
- package/module/test/layer/ts.linking_passport.yml +0 -56
- package/module/test/layer/ts.temp_structure.yml +0 -51
- package/module/test/map/bp_myo.json +0 -44
- package/module/test/map/bpf.json +0 -44
- package/module/test/map/main.json +0 -39
- package/module/test/map/mbd.json +0 -92
- package/module/test/map/ts.json +0 -53
- package/module/test/select/address_id.json +0 -3
- package/module/test/select/address_id.sql +0 -8
- package/module/test/select/core.user_uid.sql +0 -1
- package/module/test/table/data_address.street.table.json +0 -70
- package/module/test/table/data_bp_myo.bp.table.json +0 -123
- package/server/routes/gis/checkXML.js +0 -117
- package/server/routes/gis/dashboard.js +0 -29
- package/server/routes/gis/index.mjs +0 -92
- package/server/routes/gis/metadata/editMetadata.js +0 -34
- package/server/routes/gis/metadata/metadataXML.js +0 -13
- package/server/routes/gis/registers/add.registry.js +0 -35
- package/server/routes/gis/registers/insert.columns.js +0 -107
- package/server/routes/gis/registers/insert.filters.js +0 -110
- package/server/routes/gis/services/create.route.js +0 -96
- package/server/routes/gis/services/get.services.col.js +0 -33
- package/server/routes/map/controllers/mapCatalogAttribute.js +0 -56
- package/server/routes/map/index.mjs +0 -259
- package/server/routes/map/maps/add.map.js +0 -43
- package/server/routes/map/widgets/add.widget.js +0 -39
- package/server/routes/map/widgets/del.widget.js +0 -23
- package/server/routes/mapnik/controllers/fileStat.js +0 -28
- package/server/routes/mapnik/controllers/mapnikLogger.js +0 -29
- package/server/routes/mapnik/controllers/rtile.js +0 -167
- package/server/routes/mapnik/index.js +0 -40
- package/server/routes/permissions/controllers/catalog.permissions.edit.js +0 -22
- package/server/routes/permissions/controllers/catalog.permissions.js +0 -8
- package/server/routes/permissions/index.mjs +0 -18
- /package/server/routes/map/{controllers/pin → pin}/circle1.svg +0 -0
- /package/server/routes/map/{controllers/pin → pin}/circle2.svg +0 -0
- /package/server/routes/map/{controllers/pin → pin}/none.svg +0 -0
- /package/server/routes/map/{controllers/pin → pin}/pin.svg +0 -0
- /package/server/routes/map/{controllers/pin → pin}/pin1.svg +0 -0
- /package/server/routes/map/{controllers/pin → pin}/pin2.svg +0 -0
- /package/server/routes/map/{controllers/pin → pin}/pin3.svg +0 -0
- /package/server/routes/map/{controllers/pin → pin}/pin4.svg +0 -0
- /package/server/routes/map/{controllers/pin → pin}/pin5.svg +0 -0
- /package/server/routes/map/{controllers/pin → pin}/pin6.svg +0 -0
- /package/server/routes/map/{controllers/pin → pin}/pin7.svg +0 -0
- /package/server/routes/permissions/{controllers/utils → functions}/get.permissions.js +0 -0
- /package/server/routes/{gis/registers/funcs → registers/functions}/columns.js +0 -0
- /package/server/routes/{gis/registers/funcs → registers/functions}/content.type.js +0 -0
- /package/server/routes/{gis/registers → registers/functions}/map.registry.js +0 -0
- /package/server/routes/{gis/services → services/functions}/get.layer.geom.js +0 -0
- /package/server/routes/{gis/services → services/functions}/legend.auto.js +0 -0
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
SELECT addr_id,
|
|
2
|
-
coalesce(c.name , ' ') || ' ' || (select name from data_address.street where str_id=a.parent limit 1) ||
|
|
3
|
-
coalesce(', ' ||addr_num,'')
|
|
4
|
-
FROM data_address.address a
|
|
5
|
-
left join data_address.street b on a.parent=b.str_id
|
|
6
|
-
left join admin.cls c on c.parent='str_type' and c.code=b.type::text
|
|
7
|
-
order by
|
|
8
|
-
b.name
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
select uid, coalesce(coalesce(sur_name,'')||coalesce(' '||user_name,'') ||coalesce(' '||father_name,''),login) as text from admin.users
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"key": "str_id",
|
|
3
|
-
"table": "data_address.street",
|
|
4
|
-
"controls": [
|
|
5
|
-
"search",
|
|
6
|
-
"list",
|
|
7
|
-
"add"
|
|
8
|
-
],
|
|
9
|
-
"form": "data_address.street.form",
|
|
10
|
-
"access": "user",
|
|
11
|
-
"sqlColumns": "*",
|
|
12
|
-
"order": "cdate desc",
|
|
13
|
-
"columns": [
|
|
14
|
-
{
|
|
15
|
-
"ua": "Назва вулиці",
|
|
16
|
-
"meta": "title",
|
|
17
|
-
"name": "name",
|
|
18
|
-
"format": "text"
|
|
19
|
-
},
|
|
20
|
-
{
|
|
21
|
-
"ua": "Статус",
|
|
22
|
-
"name": "status",
|
|
23
|
-
"data": "address.status",
|
|
24
|
-
"format": "select"
|
|
25
|
-
},
|
|
26
|
-
{
|
|
27
|
-
"ua": "Тип об'єкта",
|
|
28
|
-
"name": "type",
|
|
29
|
-
"data": "str_type",
|
|
30
|
-
"format": "select"
|
|
31
|
-
},
|
|
32
|
-
{
|
|
33
|
-
"ua": "Територіальна належність",
|
|
34
|
-
"name": "parent",
|
|
35
|
-
"data": "address.atu.object_id_all",
|
|
36
|
-
"width": 300,
|
|
37
|
-
"format": "select"
|
|
38
|
-
},
|
|
39
|
-
{
|
|
40
|
-
"ua": "Довжина вулиці",
|
|
41
|
-
"name": "str_length",
|
|
42
|
-
"html": "{{num_format str_length dec='2'}}",
|
|
43
|
-
"format": "number"
|
|
44
|
-
},
|
|
45
|
-
{
|
|
46
|
-
"ua": "Версія",
|
|
47
|
-
"name": "version",
|
|
48
|
-
"format": "text"
|
|
49
|
-
}
|
|
50
|
-
],
|
|
51
|
-
"meta": {
|
|
52
|
-
"search": "name",
|
|
53
|
-
"title": "name"
|
|
54
|
-
},
|
|
55
|
-
"ua": "Вулиці",
|
|
56
|
-
"filterList": [
|
|
57
|
-
{
|
|
58
|
-
"ua": "Тип об'єкта",
|
|
59
|
-
"name": "type",
|
|
60
|
-
"data": "str_type",
|
|
61
|
-
"type": "Autocomplete"
|
|
62
|
-
},
|
|
63
|
-
{
|
|
64
|
-
"ua": "Статус",
|
|
65
|
-
"name": "status",
|
|
66
|
-
"data": "address.status",
|
|
67
|
-
"type": "Autocomplete"
|
|
68
|
-
}
|
|
69
|
-
]
|
|
70
|
-
}
|
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"key": "bp_id",
|
|
3
|
-
"table": "data_bp_myo.bp",
|
|
4
|
-
"actions": [
|
|
5
|
-
"add",
|
|
6
|
-
"edit",
|
|
7
|
-
"del"
|
|
8
|
-
],
|
|
9
|
-
"controls": [
|
|
10
|
-
"search",
|
|
11
|
-
"list",
|
|
12
|
-
"add"
|
|
13
|
-
],
|
|
14
|
-
"access": "user",
|
|
15
|
-
"order": "cdate desc",
|
|
16
|
-
"meta": {
|
|
17
|
-
"title": "bp_code",
|
|
18
|
-
"search": "bp_code,bp_number,bp_reg_num,bp_issued_name,bp_customer_name,bp_object_name"
|
|
19
|
-
},
|
|
20
|
-
"title": "Будівельні паспорти",
|
|
21
|
-
"form": "data_bp_myo.bp.form",
|
|
22
|
-
"columns": [
|
|
23
|
-
{
|
|
24
|
-
"ua": "Реєстраційний номер МБК",
|
|
25
|
-
"name": "bp_number",
|
|
26
|
-
"width": 100,
|
|
27
|
-
"format": "text"
|
|
28
|
-
},
|
|
29
|
-
{
|
|
30
|
-
"ua": "Реєстраційний номер в ЄДЕССБ",
|
|
31
|
-
"meta": "title",
|
|
32
|
-
"name": "bp_code",
|
|
33
|
-
"hidden": true,
|
|
34
|
-
"format": "text"
|
|
35
|
-
},
|
|
36
|
-
{
|
|
37
|
-
"ua": "Реєстраційний номер",
|
|
38
|
-
"name": "bp_reg_num",
|
|
39
|
-
"width": 100,
|
|
40
|
-
"format": "text"
|
|
41
|
-
},
|
|
42
|
-
{
|
|
43
|
-
"ua": "Назва об’єкта будівництва",
|
|
44
|
-
"name": "bp_object_name",
|
|
45
|
-
"width": 300,
|
|
46
|
-
"format": "text"
|
|
47
|
-
},
|
|
48
|
-
{
|
|
49
|
-
"ua": "Адреса",
|
|
50
|
-
"name": "address",
|
|
51
|
-
"width": 300,
|
|
52
|
-
"format": "text"
|
|
53
|
-
},
|
|
54
|
-
{
|
|
55
|
-
"ua": "Вид будівництва",
|
|
56
|
-
"name": "bp_build_type",
|
|
57
|
-
"data": "bp_build_type",
|
|
58
|
-
"width": 150,
|
|
59
|
-
"format": "badge"
|
|
60
|
-
},
|
|
61
|
-
{
|
|
62
|
-
"ua": "Дата видачі",
|
|
63
|
-
"name": "bp_issued_date",
|
|
64
|
-
"width": 100,
|
|
65
|
-
"format": "date"
|
|
66
|
-
},
|
|
67
|
-
{
|
|
68
|
-
"ua": "Статус реєстрації",
|
|
69
|
-
"name": "bp_doc_status",
|
|
70
|
-
"data": "doc_status",
|
|
71
|
-
"width": 150,
|
|
72
|
-
"hidden": true,
|
|
73
|
-
"format": "badge"
|
|
74
|
-
},
|
|
75
|
-
{
|
|
76
|
-
"ua": "Назва органу, що видав",
|
|
77
|
-
"name": "bp_issued_name",
|
|
78
|
-
"width": 300,
|
|
79
|
-
"hidden": true,
|
|
80
|
-
"format": "text"
|
|
81
|
-
},
|
|
82
|
-
{
|
|
83
|
-
"ua": "Замовник",
|
|
84
|
-
"name": "bp_customer_name",
|
|
85
|
-
"width": 300,
|
|
86
|
-
"format": "text"
|
|
87
|
-
},
|
|
88
|
-
{
|
|
89
|
-
"ua": "Кадастрові номери",
|
|
90
|
-
"name": "land_number",
|
|
91
|
-
"format": "slot",
|
|
92
|
-
"hidden": true,
|
|
93
|
-
"slot": {
|
|
94
|
-
"content": "<p v-for=\"item in data?.land_number\">{{item}}</p>"
|
|
95
|
-
}
|
|
96
|
-
},
|
|
97
|
-
{
|
|
98
|
-
"ua": "Версія документу",
|
|
99
|
-
"name": "obj_version",
|
|
100
|
-
"format": "text",
|
|
101
|
-
"hidden": true
|
|
102
|
-
}
|
|
103
|
-
],
|
|
104
|
-
"filterList": [
|
|
105
|
-
{
|
|
106
|
-
"ua": "Вид будівництва",
|
|
107
|
-
"name": "bp_build_type",
|
|
108
|
-
"data": "bp_build_type",
|
|
109
|
-
"type": "Check"
|
|
110
|
-
},
|
|
111
|
-
{
|
|
112
|
-
"ua": "Дата видачі",
|
|
113
|
-
"name": "bp_issued_date",
|
|
114
|
-
"type": "Date"
|
|
115
|
-
},
|
|
116
|
-
{
|
|
117
|
-
"ua": "Статус документа",
|
|
118
|
-
"name": "bp_doc_status",
|
|
119
|
-
"data": "doc_status",
|
|
120
|
-
"type": "Check"
|
|
121
|
-
}
|
|
122
|
-
]
|
|
123
|
-
}
|
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
import path from 'node:path';
|
|
2
|
-
|
|
3
|
-
import { config, eventStream, pgClients } from "@opengis/fastify-table/utils.js";
|
|
4
|
-
|
|
5
|
-
import mapnik from "../../plugins/mapnik/funcs/mapnik.js";
|
|
6
|
-
|
|
7
|
-
const {
|
|
8
|
-
GetRasterStatus, GetRasterInfo, RenderTile,
|
|
9
|
-
} = mapnik();
|
|
10
|
-
|
|
11
|
-
export default async function checkXML(req, reply) {
|
|
12
|
-
const { pg = pgClients.client } = req;
|
|
13
|
-
const send = process.env.NODE_ENV === 'test' || process.env.VITEST
|
|
14
|
-
? console.log
|
|
15
|
-
: eventStream(reply);
|
|
16
|
-
|
|
17
|
-
const errors = { raster: 0, css: 0, service: 0 };
|
|
18
|
-
try {
|
|
19
|
-
const rasters = pg?.pk?.['gis.rasters'] ? await pg.query('select * from gis.rasters').then(el => el.rows || []) : [];
|
|
20
|
-
|
|
21
|
-
const css = pg?.pk?.['gis.cartocss'] ? await pg.query('select * from gis.cartocss').then(el => el.rows || []) : [];
|
|
22
|
-
|
|
23
|
-
const dataset = pg?.pk?.['gis.dataset'] && false ? await pg.query('select * from gis.dataset').then(el => el.rows || []) : [];
|
|
24
|
-
|
|
25
|
-
const total = rasters.length + css.length + dataset.length;
|
|
26
|
-
let successCount = 0;
|
|
27
|
-
|
|
28
|
-
send(`Всього растрів: ${rasters.length || '0'}`);
|
|
29
|
-
|
|
30
|
-
await rasters.reduce(
|
|
31
|
-
(promise, row, idx) => promise.then(async () => {
|
|
32
|
-
const uploadStatus = path.extname(row.source_path) ? await GetRasterStatus({ path: row.source_path }) : {};
|
|
33
|
-
|
|
34
|
-
if (uploadStatus.exists === false) {
|
|
35
|
-
errors.raster += 1;
|
|
36
|
-
send(`${idx}/${rasters.length} ERROR: GetRasterStatus: not uploaded (raster:${row.raster_id}/${row.name})`);
|
|
37
|
-
return null;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
if (uploadStatus.finished === false) {
|
|
41
|
-
errors.raster += 1;
|
|
42
|
-
send(`${idx}/${rasters.length} ERROR: GetRasterStatus: upload not finished (raster:${row.raster_id}/${row.name})`);
|
|
43
|
-
return null;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
const rasterInfo = await GetRasterInfo({
|
|
47
|
-
path: row.source_path,
|
|
48
|
-
}).catch(err => ({ err }));
|
|
49
|
-
|
|
50
|
-
if (rasterInfo.err) {
|
|
51
|
-
errors.raster += 1;
|
|
52
|
-
send(`${idx}/${rasters.length} ERROR: GetRasterInfo: ${rasterInfo.err} (raster:${row.raster_id}/${row.name})`);
|
|
53
|
-
return null;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
const data = await RenderTile({
|
|
57
|
-
path: row.source_path,
|
|
58
|
-
width: 256,
|
|
59
|
-
bbox: [3713463.7081504324, 6088362.176970857, 3713616.5822070027, 6088515.051027427], // /:id/18/155363/91245.png
|
|
60
|
-
ttl: '0',
|
|
61
|
-
}).catch(err => ({ err: err.toString() }));
|
|
62
|
-
|
|
63
|
-
if (data.err) {
|
|
64
|
-
errors.raster += 1;
|
|
65
|
-
send(`${idx}/${rasters.length} ERROR: RenderTile: ${data.err} (raster:${row.raster_id}/${row.name})`);
|
|
66
|
-
return null;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
send(`${idx}/${rasters.length} OK: (raster:${row.raster_id}/${row.name})`);
|
|
70
|
-
successCount += 1;
|
|
71
|
-
}),
|
|
72
|
-
Promise.resolve(),
|
|
73
|
-
);
|
|
74
|
-
|
|
75
|
-
send(`Всього CSS: ${css.length || '0'}`);
|
|
76
|
-
|
|
77
|
-
await css.reduce(
|
|
78
|
-
(promise, row, idx) => promise.then(async () => {
|
|
79
|
-
const data = await RenderTile({
|
|
80
|
-
path: row.source_path,
|
|
81
|
-
name: row.source_path ? undefined : row.cartocss_id,
|
|
82
|
-
width: 256,
|
|
83
|
-
bbox: [3713463.7081504324, 6088362.176970857, 3713616.5822070027, 6088515.051027427], // /:id/18/155363/91245.png
|
|
84
|
-
ttl: '0',
|
|
85
|
-
}).catch(err => ({ err: err.toString() }));
|
|
86
|
-
|
|
87
|
-
if (data.err) {
|
|
88
|
-
errors.css += 1;
|
|
89
|
-
send(`${idx}/${css.length} ERROR: RenderTile: ${data.err} (css:${row.cartocss_id}/${row.name})`);
|
|
90
|
-
return null;
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
send(`${idx}/${css.length} OK: (css:${row.cartocss_id}/${row.name})`);
|
|
94
|
-
successCount += 1;
|
|
95
|
-
}),
|
|
96
|
-
Promise.resolve(),
|
|
97
|
-
);
|
|
98
|
-
|
|
99
|
-
send(`Всього наборів: ${dataset.length || '0'}`);
|
|
100
|
-
// ? place dataset check logic here
|
|
101
|
-
|
|
102
|
-
const errorCount = Object.keys(errors).reduce((acc, curr) => acc + errors[curr], 0);
|
|
103
|
-
send(`Всього помилок: ${errorCount || '0'}`);
|
|
104
|
-
send(`Помилки растрів: ${errors.raster || '0'}`);
|
|
105
|
-
send(`Помилки CSS: ${errors.css || '0'}`);
|
|
106
|
-
send(`Помилки наборів: ${errors.dataset || '0'}`);
|
|
107
|
-
|
|
108
|
-
send(`Успіх: ${successCount || '0'}/${total || '0'}`);
|
|
109
|
-
}
|
|
110
|
-
catch (err) {
|
|
111
|
-
send(config.local ? err.toString() : 'check error');
|
|
112
|
-
throw err; // allow logger to catch error automatically
|
|
113
|
-
}
|
|
114
|
-
finally {
|
|
115
|
-
send('finish', true);
|
|
116
|
-
}
|
|
117
|
-
}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { pgClients } from '@opengis/fastify-table/utils.js';
|
|
2
|
-
|
|
3
|
-
export default async function getDashboard({ pg = pgClients.client }) {
|
|
4
|
-
try {
|
|
5
|
-
const statsQuery = `
|
|
6
|
-
SELECT
|
|
7
|
-
(SELECT COUNT(*)::int FROM gis.services) as services_count,
|
|
8
|
-
(SELECT COUNT(*)::int FROM gis.registers) as registers_count,
|
|
9
|
-
(SELECT COUNT(*)::int FROM gis.maps) as maps_count,
|
|
10
|
-
(SELECT COUNT(*)::int FROM gis.ogc_service) as ogc_count
|
|
11
|
-
`;
|
|
12
|
-
|
|
13
|
-
const result = await pg.query(statsQuery);
|
|
14
|
-
const stats = result?.rows?.[0] || {};
|
|
15
|
-
|
|
16
|
-
return {
|
|
17
|
-
cards: {
|
|
18
|
-
services: stats.services_count || 0,
|
|
19
|
-
registers: stats.registers_count || 0,
|
|
20
|
-
maps: stats.maps_count || 0,
|
|
21
|
-
ogc: stats.ogc_count || 0,
|
|
22
|
-
},
|
|
23
|
-
};
|
|
24
|
-
}
|
|
25
|
-
catch (error) {
|
|
26
|
-
console.error('Dashboard error:', error);
|
|
27
|
-
return { status: 500, error: 'Internal Server Error' };
|
|
28
|
-
}
|
|
29
|
-
}
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
import insertColumns from './registers/insert.columns.js';
|
|
2
|
-
import insertFilters from './registers/insert.filters.js';
|
|
3
|
-
|
|
4
|
-
import metadataXML from './metadata/metadataXML.js';
|
|
5
|
-
import editMetadata from './metadata/editMetadata.js';
|
|
6
|
-
|
|
7
|
-
import getLayerGeom from './services/get.layer.geom.js';
|
|
8
|
-
import gisRegistry from './registers/gis.registry.js';
|
|
9
|
-
import gisRegistryList from './registers/gis.registry.list.js';
|
|
10
|
-
import mapRegistry from './registers/map.registry.js';
|
|
11
|
-
import gisExport from './registers/gis.export.js';
|
|
12
|
-
|
|
13
|
-
import getServices from './services/get.services.js';
|
|
14
|
-
import getServiceUsers from './services/get.service.users.js';
|
|
15
|
-
import deleteService from './services/del.service.js';
|
|
16
|
-
import addService from './services/add.service.js';
|
|
17
|
-
|
|
18
|
-
import addGisRegistry from './registers/add.registry.js';
|
|
19
|
-
import deleteGisRegistry from './registers/del.registry.js';
|
|
20
|
-
import getServicesCol from './services/get.services.col.js';
|
|
21
|
-
import legendAuto from './services/legend.auto.js';
|
|
22
|
-
import mapInfoPoint from './ogc/map.info.point.js';
|
|
23
|
-
import getDashboard from './dashboard.js';
|
|
24
|
-
import checkXML from './checkXML.js';
|
|
25
|
-
|
|
26
|
-
import getCartocss from './cartocss/get.cartocss.js';
|
|
27
|
-
import addCartocss from './cartocss/add.cartocss.js';
|
|
28
|
-
import createRoute from './services/create.route.js';
|
|
29
|
-
|
|
30
|
-
const mapInfoPointSchema = {
|
|
31
|
-
querystring: {
|
|
32
|
-
type: 'object',
|
|
33
|
-
properties: {
|
|
34
|
-
x: { type: 'number' },
|
|
35
|
-
y: { type: 'number' },
|
|
36
|
-
layers: { type: 'string' },
|
|
37
|
-
index: { type: 'number', minimum: 0 },
|
|
38
|
-
},
|
|
39
|
-
required: ['x', 'y', 'layers'],
|
|
40
|
-
},
|
|
41
|
-
};
|
|
42
|
-
const editMetadataSchema = {
|
|
43
|
-
params: {
|
|
44
|
-
type: 'object',
|
|
45
|
-
properties: {
|
|
46
|
-
type: { type: 'string', enum: ['raster', 'css', 'dataset', 'service'] },
|
|
47
|
-
id: { type: 'string' },
|
|
48
|
-
},
|
|
49
|
-
required: ['type', 'id'],
|
|
50
|
-
},
|
|
51
|
-
};
|
|
52
|
-
|
|
53
|
-
const params = { config: { package: 'gis' } };
|
|
54
|
-
const publicParams = { config: { policy: 'L0', package: 'gis' } };
|
|
55
|
-
|
|
56
|
-
async function route(app) {
|
|
57
|
-
app.get('/gis-check', params, checkXML);
|
|
58
|
-
app.put('/insert-columns/:token', params, insertColumns);
|
|
59
|
-
app.put('/insert-filters/:token', params, insertFilters);
|
|
60
|
-
app.get('/gis-registry/:slug', publicParams, gisRegistry);
|
|
61
|
-
app.get('/gis-registry/:slug/:objectId', publicParams, gisRegistry);
|
|
62
|
-
app.get('/gis-registry', publicParams, gisRegistryList);
|
|
63
|
-
app.post('/gis-registry', publicParams, addGisRegistry);
|
|
64
|
-
app.put('/gis-registry/:slug', publicParams, addGisRegistry);
|
|
65
|
-
app.delete('/gis-registry/:slug', publicParams, deleteGisRegistry);
|
|
66
|
-
app.get('/map-registry/:slug/:id', publicParams, mapRegistry);
|
|
67
|
-
|
|
68
|
-
app.get('/xml/:id', publicParams, metadataXML);
|
|
69
|
-
app.post('/gis-metadata/:type/:id', { ...params, schema: editMetadataSchema }, editMetadata);
|
|
70
|
-
|
|
71
|
-
app.get('/get-layer-geom/:id', publicParams, getLayerGeom);
|
|
72
|
-
|
|
73
|
-
app.get('/gis-export/:type/:slug', publicParams, gisExport);
|
|
74
|
-
|
|
75
|
-
app.get('/gis-service/:id?', publicParams, getServices);
|
|
76
|
-
app.get('/gis-service/:id/:col', publicParams, getServicesCol);
|
|
77
|
-
app.post('/gis-service/:id?', publicParams, addService);
|
|
78
|
-
app.put('/gis-service/:id', publicParams, addService);
|
|
79
|
-
app.delete('/gis-service/:id', publicParams, deleteService);
|
|
80
|
-
app.get('/legend-auto/:id', publicParams, legendAuto);
|
|
81
|
-
app.get('/gis-service-users/:id', publicParams, getServiceUsers);
|
|
82
|
-
|
|
83
|
-
app.get('/map-info-point', { ...publicParams, schema: mapInfoPointSchema }, mapInfoPoint);
|
|
84
|
-
|
|
85
|
-
app.get('/dashboard', publicParams, getDashboard);
|
|
86
|
-
|
|
87
|
-
app.get('/routes', publicParams, createRoute);
|
|
88
|
-
|
|
89
|
-
app.get('/gis-css/:id', publicParams, getCartocss);
|
|
90
|
-
app.post('/gis-css/:id', { config: { policy: 'L0', allowSql: true, package: 'gis' } }, addCartocss);
|
|
91
|
-
}
|
|
92
|
-
export default route;
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { pgClients, dataUpsert } from "@opengis/fastify-table/utils.js";
|
|
2
|
-
|
|
3
|
-
export default async function editMetadata(req, reply) {
|
|
4
|
-
const { pg = pgClients.client, body, params } = req;
|
|
5
|
-
const { type, id } = params || {};
|
|
6
|
-
const { uid } = req.user || {};
|
|
7
|
-
|
|
8
|
-
const q = {
|
|
9
|
-
raster: 'select 1 from gis.rasters where raster_id = $1',
|
|
10
|
-
css: 'select 1 from gis.cartocss where cartocss_id = $1',
|
|
11
|
-
dataset: 'select 1 from gis.dataset where dataset_id = $1',
|
|
12
|
-
service: 'select 1 from gis.services where service_id = $1',
|
|
13
|
-
}[type];
|
|
14
|
-
|
|
15
|
-
if (!q) {
|
|
16
|
-
return reply.code(400).send({ error: 'invalid params: type', code: 400 });
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
const exists = await pg.query(q, [id]).then(el => el.rowCount || 0);
|
|
20
|
-
|
|
21
|
-
if (!exists) {
|
|
22
|
-
return reply.code(404).send({ error: `${type} not found: ${id}`, code: 404 });
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
const data = await dataUpsert({
|
|
26
|
-
pg,
|
|
27
|
-
id,
|
|
28
|
-
table: 'gis.metadata',
|
|
29
|
-
data: { ...body, type, layer_id: id },
|
|
30
|
-
uid,
|
|
31
|
-
});
|
|
32
|
-
|
|
33
|
-
return reply.status(200).send(data);
|
|
34
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { handlebars, getTemplate } from "@opengis/fastify-table/utils.js";
|
|
2
|
-
|
|
3
|
-
export default async function insertColumns(req,reply) {
|
|
4
|
-
const { params} = req;
|
|
5
|
-
const { id } = params;
|
|
6
|
-
|
|
7
|
-
const pt = await getTemplate('templates','ISO19136_2017_gml_template');
|
|
8
|
-
const data = await handlebars.compile(pt)({ id: id });
|
|
9
|
-
|
|
10
|
-
return reply
|
|
11
|
-
.header('Content-Type', 'text/xml; charset=utf-8')
|
|
12
|
-
.send(data);
|
|
13
|
-
}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import { dataInsert, dataUpdate, pgClients } from "@opengis/fastify-table/utils.js";
|
|
2
|
-
|
|
3
|
-
export default async function addGisRegistry({
|
|
4
|
-
method, params = {}, body, pg = pgClients.client, user = {},
|
|
5
|
-
}, reply) {
|
|
6
|
-
if (method === 'POST') {
|
|
7
|
-
if (!body?.register_key) {
|
|
8
|
-
return reply.status(400).send('not enough body params: register_key');
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
const res = await dataInsert({
|
|
12
|
-
pg,
|
|
13
|
-
table: 'gis.registers',
|
|
14
|
-
data: body,
|
|
15
|
-
uid: user?.uid,
|
|
16
|
-
});
|
|
17
|
-
return reply.status(200).send(res.data);
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
if (!params.slug) {
|
|
21
|
-
return reply.status(400).send('not enough params: slug');
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
const id = await pg.query('select register_id from gis.registers where register_key=$1', [params.slug]).then(el => el.rows?.[0]?.register_id) || params.slug;
|
|
25
|
-
|
|
26
|
-
const row = await dataUpdate({
|
|
27
|
-
pg,
|
|
28
|
-
id,
|
|
29
|
-
table: 'gis.registers',
|
|
30
|
-
data: body,
|
|
31
|
-
uid: user?.uid,
|
|
32
|
-
});
|
|
33
|
-
|
|
34
|
-
return reply.status(200).send(row);
|
|
35
|
-
}
|
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
import { getToken } from '@opengis/fastify-table/utils.js';
|
|
2
|
-
/**
|
|
3
|
-
* Автозаповнення колонок Реєстру
|
|
4
|
-
*
|
|
5
|
-
* @method put
|
|
6
|
-
* @summary Автозаповнення колонок Реєстру
|
|
7
|
-
* @alias gis.registers
|
|
8
|
-
* @type api
|
|
9
|
-
* @tag dataset
|
|
10
|
-
* @param {String} token - токен
|
|
11
|
-
* @returns {Number} status - номер помилки
|
|
12
|
-
* @returns {String} error - опис помилки
|
|
13
|
-
* @returns {String} message - повідомлення про успішне виконання і передача певних даних
|
|
14
|
-
*/
|
|
15
|
-
export default async function insertColumns(req,reply) {
|
|
16
|
-
const {pg, user, params} = req;
|
|
17
|
-
const token = params.token;
|
|
18
|
-
if (!token) return { message: 'empty token', status: 400 };
|
|
19
|
-
try {
|
|
20
|
-
|
|
21
|
-
const tokenData = await getToken({ token, uid: user?.uid });
|
|
22
|
-
if (!tokenData) return reply.code(400).send({ message: 'access restricted', status: 400 });
|
|
23
|
-
|
|
24
|
-
const { id, type } = JSON.parse(tokenData) || {};
|
|
25
|
-
if (!id||!type) return reply.code(403).send({ message: 'access restricted', status: 403 });
|
|
26
|
-
if (!['services','registers'].includes(type)) return reply.code(403).send({ message: 'invalid type', status: 403 });
|
|
27
|
-
|
|
28
|
-
const tableColumn = (type === 'registers') ? 'table_name':'source_path';
|
|
29
|
-
const jsonColumn = (type === 'registers') ? 'columns':'attributes';
|
|
30
|
-
const pk = (type === 'registers')?'register_id':'service_id';
|
|
31
|
-
|
|
32
|
-
const select = `update gis.${type} set ${jsonColumn}=
|
|
33
|
-
(select
|
|
34
|
-
jsonb_agg(row_to_json(q)) as column_list
|
|
35
|
-
from
|
|
36
|
-
(select
|
|
37
|
-
q.column_name as name,
|
|
38
|
-
case
|
|
39
|
-
when q.column_name='editor_id' and comment is null then 'Хто редагував'
|
|
40
|
-
when q.column_name ilike '%geom%' and comment is null then 'Геометрія'
|
|
41
|
-
when q.column_name='editor_date' and comment is null then 'Дата редагування'
|
|
42
|
-
when q.column_name='image' and comment is null then 'Зображення'
|
|
43
|
-
when q.column_name='file' and comment is null then 'Файл'
|
|
44
|
-
when q.column_name='files' and comment is null then 'Файли'
|
|
45
|
-
else comment
|
|
46
|
-
end as ua,
|
|
47
|
-
case
|
|
48
|
-
when q.data_type in ('text','character varying') then 'text'
|
|
49
|
-
when q.data_type ='ARRAY' then 'tags'
|
|
50
|
-
when q.data_type in ('integer','numeric','double precision') then 'number'
|
|
51
|
-
when q.data_type ='boolean' then 'yes/no'
|
|
52
|
-
when q.data_type='USER-DEFINED' then 'geom'
|
|
53
|
-
when q.data_type in ('date','timestamp without time zone') then 'date'
|
|
54
|
-
end as format,
|
|
55
|
-
'' as data,
|
|
56
|
-
false as hidden_register,
|
|
57
|
-
false as hidden_card
|
|
58
|
-
from
|
|
59
|
-
(
|
|
60
|
-
select
|
|
61
|
-
column_name,
|
|
62
|
-
data_type,
|
|
63
|
-
table_schema || '.' || table_name as table_name
|
|
64
|
-
from
|
|
65
|
-
(
|
|
66
|
-
select
|
|
67
|
-
distinct table_name,
|
|
68
|
-
table_schema,
|
|
69
|
-
column_name,
|
|
70
|
-
data_type
|
|
71
|
-
from
|
|
72
|
-
information_schema.columns
|
|
73
|
-
) q
|
|
74
|
-
) q
|
|
75
|
-
|
|
76
|
-
left join lateral (
|
|
77
|
-
SELECT
|
|
78
|
-
pgd.description AS comment,
|
|
79
|
-
pgns.nspname||'.'||pgc.relname AS table_name,
|
|
80
|
-
pg_attribute.attname AS column_name
|
|
81
|
-
|
|
82
|
-
FROM
|
|
83
|
-
pg_catalog.pg_description pgd
|
|
84
|
-
JOIN pg_catalog.pg_class pgc ON pgd.objoid = pgc.oid
|
|
85
|
-
JOIN pg_catalog.pg_namespace pgns ON pgc.relnamespace = pgns.oid
|
|
86
|
-
JOIN pg_catalog.pg_attribute pg_attribute ON pgc.oid = pg_attribute.attrelid
|
|
87
|
-
AND pg_attribute.attnum = pgd.objsubid
|
|
88
|
-
)b on b.column_name=q.column_name and b.table_name=q.table_name
|
|
89
|
-
where
|
|
90
|
-
q.table_name = (
|
|
91
|
-
select
|
|
92
|
-
${tableColumn}
|
|
93
|
-
from
|
|
94
|
-
gis.${type}
|
|
95
|
-
where
|
|
96
|
-
${pk} = '${id}'
|
|
97
|
-
) and q.column_name not in ('cdate','uid') and q.data_type<>'json')q
|
|
98
|
-
)
|
|
99
|
-
where ${pk} = '${id}'
|
|
100
|
-
`;
|
|
101
|
-
await pg.one(select);
|
|
102
|
-
|
|
103
|
-
return { message: 'Колонки заповнені упішно', status: 200 };
|
|
104
|
-
} catch (err) {
|
|
105
|
-
return reply.code(500).send({ message: err.message, status: 500 });
|
|
106
|
-
}
|
|
107
|
-
}
|