@opengis/gis 0.2.168 → 0.2.170
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-DzERD2T8.js → CardIcon-DXaESte6.js} +1 -1
- package/dist/{EntityTablePage-DAVJRQLe.js → EntityTablePage-BwyMNhrm.js} +1 -1
- package/dist/{ExtentOutlineLayer.vue_vue_type_script_setup_true_lang-B-6axJUY.js → ExtentOutlineLayer.vue_vue_type_script_setup_true_lang-DrHke0pk.js} +1 -1
- package/dist/{HeaderActions.vue_vue_type_script_setup_true_lang-D1iwSeRN.js → HeaderActions.vue_vue_type_script_setup_true_lang-9Rm8Dhc4.js} +1 -1
- package/dist/{MapSettings-wVix8wMh.js → MapSettings-E1aNltts.js} +1 -1
- package/dist/{RastersTablePage-u3oN_h_n.js → RastersTablePage-CJblEi8a.js} +1 -1
- package/dist/{cartocss-BIveBlgY.js → cartocss-Dv2QILZ2.js} +5 -5
- package/dist/{import-utils-DkKPU_Nd.js → import-utils-CL-V2wSj.js} +1 -1
- package/dist/{index-C3bl1qBS.js → index-Bi60lcRm.js} +4768 -4718
- package/dist/index.css +1 -1
- package/dist/index.js +1 -1
- package/dist/index.umd.cjs +31 -31
- package/dist/{raster-CfTJZx5p.js → raster-nn-sOUb9.js} +3 -3
- package/dist/{register-dV5ipRhb.js → register-CjHXBGr5.js} +3 -3
- package/dist/{service-DWC5gq3L.js → service-l3Csdnxm.js} +8 -7
- package/dist/{vs-datatable-Cd2Gp4jo.js → vs-datatable-CJlE3-mz.js} +3 -2
- 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/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,9 +1,9 @@
|
|
|
1
1
|
import { defineComponent as te, resolveDirective as We, openBlock as u, createElementBlock as m, createElementVNode as n, Fragment as W, renderList as X, toDisplayString as d, withDirectives as we, createTextVNode as Xe, normalizeClass as ae, ref as $, watch as S, computed as h, vModelText as Ke, onMounted as Ye, onBeforeUnmount as Ze, createCommentVNode as q, createVNode as B, withCtx as He, createBlock as F, resolveDynamicComponent as Je } from "vue";
|
|
2
2
|
import { useRouter as et, useRoute as tt } from "vue-router";
|
|
3
3
|
import { TooltipDirective as st, notify as M } from "@opengis/core";
|
|
4
|
-
import { _ as nt, u as lt, f as rt, M as ot, i as it, j as be, F as at } from "./index-
|
|
5
|
-
import { _ as ut, a as ct, b as dt, c as ft } from "./HeaderActions.vue_vue_type_script_setup_true_lang-
|
|
6
|
-
import { _ as he } from "./ExtentOutlineLayer.vue_vue_type_script_setup_true_lang-
|
|
4
|
+
import { _ as nt, u as lt, f as rt, M as ot, i as it, j as be, F as at } from "./index-Bi60lcRm.js";
|
|
5
|
+
import { _ as ut, a as ct, b as dt, c as ft } from "./HeaderActions.vue_vue_type_script_setup_true_lang-9Rm8Dhc4.js";
|
|
6
|
+
import { _ as he } from "./ExtentOutlineLayer.vue_vue_type_script_setup_true_lang-DrHke0pk.js";
|
|
7
7
|
const mt = { class: "flex-1 overflow-y-auto p-4 sm:p-6" }, pt = { class: "space-y-3" }, gt = { class: "bg-white p-3 rounded-xl border border-gray-200 shadow-sm" }, yt = { class: "grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-2" }, vt = { class: "text-xs text-gray-500 mb-1" }, xt = {
|
|
8
8
|
key: 0,
|
|
9
9
|
class: "text-base text-md font-semibold text-gray-900"
|
|
@@ -2,9 +2,9 @@ import { defineComponent as B, mergeModels as j, useModel as S, computed as h, d
|
|
|
2
2
|
import { useRoute as Z, useRouter as ee } from "vue-router";
|
|
3
3
|
import { notify as F } from "@opengis/core";
|
|
4
4
|
import { _ as te } from "./TableFormHeader.vue_vue_type_script_setup_true_lang-Mci_tseM.js";
|
|
5
|
-
import { V as N } from "./vs-datatable-
|
|
6
|
-
import { _ as z, n as R, m as E, r as H } from "./import-utils-
|
|
7
|
-
import { a as ae, b as le, c as se, d as oe, e as ie } from "./index-
|
|
5
|
+
import { V as N } from "./vs-datatable-CJlE3-mz.js";
|
|
6
|
+
import { _ as z, n as R, m as E, r as H } from "./import-utils-CL-V2wSj.js";
|
|
7
|
+
import { a as ae, b as le, c as se, d as oe, e as ie } from "./index-Bi60lcRm.js";
|
|
8
8
|
import { LucideChevronRight as re } from "lucide-vue-next";
|
|
9
9
|
import { _ as ne } from "./MapSettingsTabs.vue_vue_type_script_setup_true_lang-CKCK3NqY.js";
|
|
10
10
|
const ue = { class: "vs-form" }, de = { class: "vs-form__body auto-rows-max container" }, ce = { class: "flex flex-wrap" }, me = { class: "h-fit w-full mb-6 bg-white border border-gray-200 rounded-lg p-6" }, ve = { class: "h-fit w-full flex flex-wrap" }, pe = { class: "w-full" }, fe = /* @__PURE__ */ B({
|
|
@@ -4,12 +4,12 @@ var L = (e, n, t) => pi(e, typeof n != "symbol" ? n + "" : n, t);
|
|
|
4
4
|
import { openBlock as _, createElementBlock as M, createElementVNode as g, defineComponent as ae, ref as E, watch as $, createTextVNode as mi, createVNode as D, createBlock as P, createCommentVNode as W, defineAsyncComponent as hi, unref as ze, withCtx as bn, withDirectives as fn, vModelText as dn, normalizeClass as _e, Fragment as kt, renderList as At, toDisplayString as fe, getCurrentInstance as Ct, onBeforeUnmount as wt, toRef as gi, computed as ve, onMounted as yi, resolveDynamicComponent as vi } from "vue";
|
|
5
5
|
import { useRoute as bi, useRouter as xi } from "vue-router";
|
|
6
6
|
import { notify as X } from "@opengis/core";
|
|
7
|
-
import { _ as Xe, u as Ge, f as Si, M as ki, g as Ai, h as Ci, i as wi, j as tt, k as Ti, l as _i, m as Ei, s as it, n as Ii } from "./index-
|
|
8
|
-
import { _ as Ni, a as $i, b as Li, c as Fi } from "./HeaderActions.vue_vue_type_script_setup_true_lang-
|
|
9
|
-
import { S as Oi, C as Ri } from "./CardIcon-
|
|
7
|
+
import { _ as Xe, u as Ge, f as Si, M as ki, g as Ai, h as Ci, i as wi, j as tt, k as Ti, l as _i, m as Ei, s as it, n as Ii } from "./index-Bi60lcRm.js";
|
|
8
|
+
import { _ as Ni, a as $i, b as Li, c as Fi } from "./HeaderActions.vue_vue_type_script_setup_true_lang-9Rm8Dhc4.js";
|
|
9
|
+
import { S as Oi, C as Ri } from "./CardIcon-DXaESte6.js";
|
|
10
10
|
import { _ as Tt } from "./MonacoEditor.vue_vue_type_script_setup_true_lang-D3ZPeXMw.js";
|
|
11
|
-
import { V as Ze } from "./vs-datatable-
|
|
12
|
-
import { _ as Nn, m as $n, r as $e } from "./import-utils-
|
|
11
|
+
import { V as Ze } from "./vs-datatable-CJlE3-mz.js";
|
|
12
|
+
import { _ as Nn, m as $n, r as $e } from "./import-utils-CL-V2wSj.js";
|
|
13
13
|
/*! js-yaml 5.2.1 https://github.com/nodeca/js-yaml @license MIT */
|
|
14
14
|
var T = Symbol("NOT_RESOLVED"), Ln = Symbol("MERGE_KEY");
|
|
15
15
|
function U(e, n) {
|
|
@@ -3010,7 +3010,8 @@ ${B}` : B;
|
|
|
3010
3010
|
return (d.queryRenderedFeatures(f) || []).filter((N) => {
|
|
3011
3011
|
var Qn, Jn, Xn, Zn, et, nt;
|
|
3012
3012
|
const te = ((Qn = N == null ? void 0 : N.properties) == null ? void 0 : Qn.id) ?? (N == null ? void 0 : N.id);
|
|
3013
|
-
if (te == null || !(N != null && N.source) || S && String(N.source) !== S)
|
|
3013
|
+
if (te == null || !(N != null && N.source) || S && String(N.source) !== S)
|
|
3014
|
+
return !1;
|
|
3014
3015
|
const G = Ge(N.source) || Ge((Jn = N.layer) == null ? void 0 : Jn.id);
|
|
3015
3016
|
if (!G) return !1;
|
|
3016
3017
|
const ue = (Zn = (Xn = G == null ? void 0 : G.opts) == null ? void 0 : Xn.source) == null ? void 0 : Zn.type, Be = (nt = (et = G == null ? void 0 : G.opts) == null ? void 0 : et.layer) == null ? void 0 : nt.type;
|
|
@@ -3465,7 +3466,7 @@ ${B}` : B;
|
|
|
3465
3466
|
]);
|
|
3466
3467
|
};
|
|
3467
3468
|
}
|
|
3468
|
-
}), Ba = /* @__PURE__ */ Xe(Na, [["__scopeId", "data-v-
|
|
3469
|
+
}), Ba = /* @__PURE__ */ Xe(Na, [["__scopeId", "data-v-21ef302a"]]);
|
|
3469
3470
|
export {
|
|
3470
3471
|
Ba as default
|
|
3471
3472
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { defineComponent as F, mergeModels as O, defineAsyncComponent as I, useModel as R, ref as y, watch as K, openBlock as o, createElementBlock as s, createElementVNode as e, createVNode as $, unref as x, withCtx as S, createStaticVNode as V, useSlots as P, computed as H, Fragment as b, createTextVNode as U, createCommentVNode as N, renderList as A, normalizeStyle as Q, toDisplayString as M, normalizeClass as z, withModifiers as X, createBlock as Y, resolveDynamicComponent as ee, withDirectives as te, renderSlot as ne } from "vue";
|
|
2
2
|
import { notify as E } from "@opengis/core";
|
|
3
3
|
import { Edit as le, Trash as oe } from "lucide-vue-next";
|
|
4
|
-
import { _ as u } from "./index-
|
|
4
|
+
import { _ as u } from "./index-Bi60lcRm.js";
|
|
5
5
|
const se = { class: "flex items-center justify-center col-span-3 gap-2" }, re = { class: "flex justify-end p-[20px] gap-[10px] border-t w-full" }, ie = /* @__PURE__ */ F({
|
|
6
6
|
__name: "vs-datatable-controls",
|
|
7
7
|
props: /* @__PURE__ */ O({
|
|
@@ -725,11 +725,12 @@ const kt = /* @__PURE__ */ u(pt, [["render", wt]]), W = {
|
|
|
725
725
|
])
|
|
726
726
|
])) : (o(), s(b, { key: 1 }, [
|
|
727
727
|
a.slot && g(a.slot) ? ne(i.$slots, a.slot, {
|
|
728
|
+
key: 0,
|
|
728
729
|
row: l,
|
|
729
730
|
column: a,
|
|
730
731
|
value: l[a.key],
|
|
731
732
|
rowIndex: f
|
|
732
|
-
}, void 0, !0
|
|
733
|
+
}, void 0, !0) : a.type === "color" ? (o(), s("div", zt, [
|
|
733
734
|
e("div", {
|
|
734
735
|
class: z(["w-4 h-4 rounded-full align-middle", `bg-[${l[a.key]}]`])
|
|
735
736
|
}, null, 2)
|
|
@@ -0,0 +1,303 @@
|
|
|
1
|
+
{
|
|
2
|
+
"history": true,
|
|
3
|
+
"height": "calc(100vh - 65px)",
|
|
4
|
+
"source_path": "data_address.street",
|
|
5
|
+
"layers": [
|
|
6
|
+
{
|
|
7
|
+
"id": "address",
|
|
8
|
+
"service": "vtile",
|
|
9
|
+
"source_path": "data_address.address",
|
|
10
|
+
"url": "/api/map-tiles/addr/{z}/{x}/{y}.pbf",
|
|
11
|
+
"title": "Адреси",
|
|
12
|
+
"visible": true,
|
|
13
|
+
"style": {
|
|
14
|
+
"type": "point",
|
|
15
|
+
"color": "orange",
|
|
16
|
+
"width": 1,
|
|
17
|
+
"border": 1,
|
|
18
|
+
"opacity": 0.6,
|
|
19
|
+
"stroke": "black",
|
|
20
|
+
"popup": {
|
|
21
|
+
"mode": "html",
|
|
22
|
+
"title": "<strong>Адреса</strong>",
|
|
23
|
+
"fields": [
|
|
24
|
+
{
|
|
25
|
+
"label": "Номер будинку",
|
|
26
|
+
"value": "addr_num"
|
|
27
|
+
}
|
|
28
|
+
],
|
|
29
|
+
"content": "<p style='font-size: 14px; color: #000000; background: #FFFFFF; padding: 6px 10px; border-radius: 6px; margin: 0;'><b>Номер будинку:</b> {{addr_num}}</p>"
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"id": "street",
|
|
35
|
+
"service": "vtile",
|
|
36
|
+
"source_path": "data_address.street",
|
|
37
|
+
"visible": true,
|
|
38
|
+
"url": "/api/map-tiles/addr/{z}/{x}/{y}.pbf",
|
|
39
|
+
"title": "Вулиці",
|
|
40
|
+
"style": {
|
|
41
|
+
"type": "line",
|
|
42
|
+
"color": "blue",
|
|
43
|
+
"popup": {
|
|
44
|
+
"mode": "html",
|
|
45
|
+
"title": "<strong>Вулиця</strong>",
|
|
46
|
+
"fields": [
|
|
47
|
+
{
|
|
48
|
+
"label": "Версія",
|
|
49
|
+
"value": "name"
|
|
50
|
+
}
|
|
51
|
+
]
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
"id": "sline",
|
|
57
|
+
"service": "vtile",
|
|
58
|
+
"source_path": "data_address.address",
|
|
59
|
+
"url": "/api/map-tiles/addr/{z}/{x}/{y}.pbf",
|
|
60
|
+
"geometry_column": "geom_sline",
|
|
61
|
+
"visible": true,
|
|
62
|
+
"title": "Прив'язка адрес",
|
|
63
|
+
"style": {
|
|
64
|
+
"type": "line",
|
|
65
|
+
"color": "gray",
|
|
66
|
+
"popup": {
|
|
67
|
+
"mode": "html",
|
|
68
|
+
"title": "<strong>Прив'язка адреси</strong>",
|
|
69
|
+
"fields": [
|
|
70
|
+
{
|
|
71
|
+
"label": "Номер будинку",
|
|
72
|
+
"value": "addr_num"
|
|
73
|
+
}
|
|
74
|
+
]
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
],
|
|
79
|
+
"widgets": [
|
|
80
|
+
{
|
|
81
|
+
"type": "info",
|
|
82
|
+
"position": "top-left",
|
|
83
|
+
"config": {
|
|
84
|
+
"title": "Адресний реєстр",
|
|
85
|
+
"content": "<p style='font-size: 14px; color: #34495E;'>Карта адресного реєстру відображає офіційно зареєстровані адреси на території громади або населеного пункту. До складу інформації входять дані про вулиці, будинки, типи об'єктів (житлові, комерційні, адміністративні тощо), а також структуровані компоненти адреси: назва вулиці, номер будинку, корпус, літера, тощо.</p>",
|
|
86
|
+
"goTo": [
|
|
87
|
+
{
|
|
88
|
+
"label": "Карта БП/МУО",
|
|
89
|
+
"url": "/maps/bp_myo"
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
"label": "Карта містобудівної документації",
|
|
93
|
+
"url": "/maps/mbd"
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
"label": "Основна карта",
|
|
97
|
+
"url": "/maps/main"
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
"label": "Карта тимчасових споруд",
|
|
101
|
+
"url": "/maps/ts"
|
|
102
|
+
}
|
|
103
|
+
]
|
|
104
|
+
},
|
|
105
|
+
"visible": true
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
"type": "layers",
|
|
109
|
+
"position": "top-left",
|
|
110
|
+
"search": true,
|
|
111
|
+
"config": {
|
|
112
|
+
"layers": [
|
|
113
|
+
{
|
|
114
|
+
"id": "address",
|
|
115
|
+
"service": "vtile",
|
|
116
|
+
"url": "/api/map-tiles/addr/{z}/{x}/{y}.pbf",
|
|
117
|
+
"service_key": "address",
|
|
118
|
+
"map_key": "addr",
|
|
119
|
+
"title": "Адреси",
|
|
120
|
+
"visible": true,
|
|
121
|
+
"style": {
|
|
122
|
+
"type": "point",
|
|
123
|
+
"color": "orange",
|
|
124
|
+
"width": 1,
|
|
125
|
+
"border": 1,
|
|
126
|
+
"opacity": 0.6,
|
|
127
|
+
"stroke": "black",
|
|
128
|
+
"popup": {
|
|
129
|
+
"mode": "html",
|
|
130
|
+
"content": [
|
|
131
|
+
"<p style='font-size: 14px; color: #000000; padding: 6px 10px; border-radius: 6px; margin: 0;'><b>Номер будинку:</b> {{addr_num}}</p>"
|
|
132
|
+
]
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
"id": "street",
|
|
138
|
+
"service": "vtile",
|
|
139
|
+
"url": "/api/map-tiles/addr/{z}/{x}/{y}.pbf",
|
|
140
|
+
"service_key": "street",
|
|
141
|
+
"map_key": "addr",
|
|
142
|
+
"visible": true,
|
|
143
|
+
"title": "Вулиці",
|
|
144
|
+
"style": {
|
|
145
|
+
"type": "line",
|
|
146
|
+
"color": "blue",
|
|
147
|
+
"popup": {
|
|
148
|
+
"mode": "html",
|
|
149
|
+
"content": [
|
|
150
|
+
"<p style='font-size: 14px; color: #000000; padding: 6px 10px; border-radius: 6px; margin: 0;'><b>Вулиця:</b> {{name}}</p>"
|
|
151
|
+
]
|
|
152
|
+
}
|
|
153
|
+
},
|
|
154
|
+
"actions": [
|
|
155
|
+
{
|
|
156
|
+
"icon": "<svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_231_103)\"><path d=\"M12 20L9 21V12.5L4.52 7.572C4.18545 7.20393 4.00005 6.7244 4 6.227V4H20V6.172C19.9999 6.70239 19.7891 7.21101 19.414 7.586L15 12\" stroke=\"#424242\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path><path d=\"M21.121 20.1209C21.5406 19.7014 21.8265 19.1668 21.9423 18.5849C22.0581 18.0029 21.9988 17.3997 21.7717 16.8514C21.5447 16.3032 21.1602 15.8346 20.6668 15.5049C20.1734 15.1752 19.5934 14.9993 19 14.9993C18.4066 14.9993 17.8266 15.1752 17.3332 15.5049C16.8398 15.8346 16.4553 16.3032 16.2283 16.8514C16.0012 17.3997 15.9419 18.0029 16.0577 18.5849C16.1735 19.1668 16.4594 19.7014 16.879 20.1209C17.297 20.5399 18.004 21.1659 19 21.9999C20.051 21.1099 20.759 20.4839 21.121 20.1209Z\" stroke=\"#424242\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path><path d=\"M19 18V18.01\" stroke=\"#424242\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path></g><defs><clipPath id=\"clip0_231_103\"><rect width=\"24\" height=\"24\" fill=\"white\"></rect></clipPath></defs></svg>",
|
|
157
|
+
"widget": "filters"
|
|
158
|
+
}
|
|
159
|
+
]
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
"id": "sline",
|
|
163
|
+
"service": "vtile",
|
|
164
|
+
"url": "/api/map-tiles/addr/{z}/{x}/{y}.pbf",
|
|
165
|
+
"visible": true,
|
|
166
|
+
"geometry_column": "geom_sline",
|
|
167
|
+
"title": "Прив'язка адрес",
|
|
168
|
+
"noCard": true,
|
|
169
|
+
"style": {
|
|
170
|
+
"type": "line",
|
|
171
|
+
"color": "gray",
|
|
172
|
+
"popup": {
|
|
173
|
+
"mode": "html",
|
|
174
|
+
"title": "<strong>Прив'язка адреси</strong>",
|
|
175
|
+
"fields": [
|
|
176
|
+
{
|
|
177
|
+
"label": "Номер будинку",
|
|
178
|
+
"value": "addr_num"
|
|
179
|
+
}
|
|
180
|
+
]
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
]
|
|
185
|
+
}
|
|
186
|
+
},
|
|
187
|
+
{
|
|
188
|
+
"type": "card",
|
|
189
|
+
"position": "top-right",
|
|
190
|
+
"config": {
|
|
191
|
+
"title": "Інформація про об'єкт"
|
|
192
|
+
}
|
|
193
|
+
},
|
|
194
|
+
{
|
|
195
|
+
"type": "basemaps",
|
|
196
|
+
"position": "bottom-left",
|
|
197
|
+
"title": "Базові карти",
|
|
198
|
+
"config": {
|
|
199
|
+
"default": "voyager",
|
|
200
|
+
"layers": [
|
|
201
|
+
{
|
|
202
|
+
"id": "voyager",
|
|
203
|
+
"title": "Базова карта (voyager)",
|
|
204
|
+
"url": "https://data.gki.com.ua/api-user/rtile/voyager/ua/{z}/{x}/{y}.png",
|
|
205
|
+
"service": "raster",
|
|
206
|
+
"attribution": "© <a href='http://www.openstreetmap.org/copyright'>OpenStreetMap</a>, © <a href='https://carto.com/attributions'>CARTO</a>",
|
|
207
|
+
"image": "https://data.gki.com.ua/api-user/rtile/voyager/ua/12/2422/1400.png",
|
|
208
|
+
"owner": "OSM",
|
|
209
|
+
"basemap": true
|
|
210
|
+
},
|
|
211
|
+
{
|
|
212
|
+
"id": "esri",
|
|
213
|
+
"title": "ESRI Online Imagery(2022-2023)",
|
|
214
|
+
"url": "https://server.arcgisonline.com/arcgis/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}.png",
|
|
215
|
+
"service": "raster",
|
|
216
|
+
"image": "https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/7/47/69.png"
|
|
217
|
+
}
|
|
218
|
+
]
|
|
219
|
+
},
|
|
220
|
+
"visible": true
|
|
221
|
+
},
|
|
222
|
+
{
|
|
223
|
+
"type": "legend",
|
|
224
|
+
"position": "bottom-right",
|
|
225
|
+
"config": {
|
|
226
|
+
"width": "200px",
|
|
227
|
+
"items": [
|
|
228
|
+
{
|
|
229
|
+
"label": "Адреси",
|
|
230
|
+
"color": "orange",
|
|
231
|
+
"shape": "circle"
|
|
232
|
+
},
|
|
233
|
+
{
|
|
234
|
+
"label": "Вулиці",
|
|
235
|
+
"color": "blue",
|
|
236
|
+
"shape": "line"
|
|
237
|
+
},
|
|
238
|
+
{
|
|
239
|
+
"label": "Прив'язка адрес",
|
|
240
|
+
"color": "gray",
|
|
241
|
+
"shape": "line"
|
|
242
|
+
}
|
|
243
|
+
]
|
|
244
|
+
}
|
|
245
|
+
},
|
|
246
|
+
{
|
|
247
|
+
"id": "filters",
|
|
248
|
+
"type": "filters",
|
|
249
|
+
"position": "top-left",
|
|
250
|
+
"config": {
|
|
251
|
+
"visible": false,
|
|
252
|
+
"title": "Фільтри (Вулиці)",
|
|
253
|
+
"layer_id": "street",
|
|
254
|
+
"source_path": "data_address.street",
|
|
255
|
+
"filters": [
|
|
256
|
+
{
|
|
257
|
+
"label": "Назва вулиці",
|
|
258
|
+
"id": "name",
|
|
259
|
+
"type": "Text",
|
|
260
|
+
"inline": true
|
|
261
|
+
},
|
|
262
|
+
{
|
|
263
|
+
"label": "Тип об'єкта",
|
|
264
|
+
"id": "type",
|
|
265
|
+
"data": "str_type",
|
|
266
|
+
"type": "Autocomplete",
|
|
267
|
+
"inline": true
|
|
268
|
+
},
|
|
269
|
+
{
|
|
270
|
+
"label": "Статус",
|
|
271
|
+
"id": "status",
|
|
272
|
+
"data": "address.status",
|
|
273
|
+
"type": "Autocomplete",
|
|
274
|
+
"inline": true
|
|
275
|
+
}
|
|
276
|
+
],
|
|
277
|
+
"conditions": {
|
|
278
|
+
"layers": [
|
|
279
|
+
"street"
|
|
280
|
+
]
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
],
|
|
285
|
+
"interactions": {
|
|
286
|
+
"hover": {
|
|
287
|
+
"enabled": true
|
|
288
|
+
},
|
|
289
|
+
"click": {
|
|
290
|
+
"enabled": true
|
|
291
|
+
},
|
|
292
|
+
"navigation": {
|
|
293
|
+
"enabled": true
|
|
294
|
+
}
|
|
295
|
+
},
|
|
296
|
+
"tools": [
|
|
297
|
+
"home",
|
|
298
|
+
"geolocation",
|
|
299
|
+
"length",
|
|
300
|
+
"area",
|
|
301
|
+
"print"
|
|
302
|
+
]
|
|
303
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opengis/gis",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.170",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"author": "Softpro",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -43,22 +43,22 @@
|
|
|
43
43
|
},
|
|
44
44
|
"dependencies": {
|
|
45
45
|
"@fortawesome/free-solid-svg-icons": "7.3.1",
|
|
46
|
-
"@mapbox/sphericalmercator": "
|
|
47
|
-
"carto": "
|
|
46
|
+
"@mapbox/sphericalmercator": "2.0.2",
|
|
47
|
+
"carto": "1.2.0",
|
|
48
48
|
"sharp": "0.35.3"
|
|
49
49
|
},
|
|
50
50
|
"peerDependencies": {
|
|
51
|
-
"@opengis/fastify-table": "^2.
|
|
51
|
+
"@opengis/fastify-table": "^2.5.32"
|
|
52
52
|
},
|
|
53
53
|
"resolutions": {
|
|
54
54
|
"rollup": "4.30.0"
|
|
55
55
|
},
|
|
56
56
|
"devDependencies": {
|
|
57
|
-
"@opengis/core": "^0.0.
|
|
58
|
-
"@opengis/fastify-table": "^2.
|
|
59
|
-
"@opengis/filter": "0.1.
|
|
60
|
-
"@opengis/form": "^0.
|
|
61
|
-
"@opengis/table": "^0.0.
|
|
57
|
+
"@opengis/core": "^0.0.37",
|
|
58
|
+
"@opengis/fastify-table": "^2.5.32",
|
|
59
|
+
"@opengis/filter": "0.1.52",
|
|
60
|
+
"@opengis/form": "^0.1.20",
|
|
61
|
+
"@opengis/table": "^0.0.47",
|
|
62
62
|
"@vitejs/plugin-vue": "^5.2.4",
|
|
63
63
|
"eslint": "^8.57.1",
|
|
64
64
|
"eslint-config-airbnb": "19.0.4",
|
|
@@ -68,7 +68,7 @@
|
|
|
68
68
|
"vue-eslint-parser": "^10.4.1",
|
|
69
69
|
"lucide-vue-next": "^0.577.0",
|
|
70
70
|
"sass-embedded": "1.86.3",
|
|
71
|
-
"typescript": "^
|
|
71
|
+
"typescript": "^7.0.2",
|
|
72
72
|
"vite": "^6.4.3",
|
|
73
73
|
"vue": "^3.5.38",
|
|
74
74
|
"vue-router": "4.5.1",
|
package/plugin.js
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
import fp from 'fastify-plugin';
|
|
2
2
|
|
|
3
|
+
import { join, dirname } from 'node:path';
|
|
4
|
+
import { fileURLToPath } from 'node:url';
|
|
5
|
+
|
|
3
6
|
import {
|
|
4
7
|
config, addHook, getMeta, pgClients, execMigrations,
|
|
5
8
|
} from '@opengis/fastify-table/utils.js';
|
|
6
9
|
|
|
7
10
|
config.prefix = config.prefix || '/api';
|
|
8
|
-
import { join, dirname } from 'path';
|
|
9
|
-
import { fileURLToPath } from 'url';
|
|
10
|
-
import mapnikLogger from './server/routes/mapnik/controllers/mapnikLogger.js';
|
|
11
|
-
import mapnikStat from './server/routes/mapnik/controllers/mapnikStat.js';
|
|
12
11
|
|
|
13
12
|
const dir = dirname(fileURLToPath(import.meta.url));
|
|
14
13
|
|
|
@@ -29,16 +28,25 @@ const columnType = {
|
|
|
29
28
|
'integer[]': 'array',
|
|
30
29
|
'character varying[]': 'array',
|
|
31
30
|
};
|
|
32
|
-
|
|
31
|
+
|
|
33
32
|
async function plugin(app, opts = config) {
|
|
34
|
-
//
|
|
35
|
-
app.register(import('./server/routes/map/index.mjs'), opts);
|
|
33
|
+
// plugins
|
|
36
34
|
app.register(import('./server/plugins/crons.js'), opts);
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
app.register(import('./server/routes/
|
|
40
|
-
app.
|
|
41
|
-
app.
|
|
35
|
+
|
|
36
|
+
// routes
|
|
37
|
+
app.register(import('./server/routes/gis/gis.route.js'), opts);
|
|
38
|
+
app.register(import('./server/routes/cartocss/cartocss.route.js'), opts);
|
|
39
|
+
app.register(import('./server/routes/map/map.route.js'), opts);
|
|
40
|
+
app.register(import('./server/routes/mapnik/mapnik.route.js'), opts);
|
|
41
|
+
app.register(import('./server/routes/mapnik.prefixless/mapnik.prefixless.route.js')); // no /api prefix applied
|
|
42
|
+
app.register(import('./server/routes/maps/maps.route.js'), opts);
|
|
43
|
+
app.register(import('./server/routes/metadata/metadata.route.js'), opts);
|
|
44
|
+
app.register(import('./server/routes/ogc/ogc.route.js'), opts);
|
|
45
|
+
app.register(import('./server/routes/permissions/permissions.route.js'), opts);
|
|
46
|
+
app.register(import('./server/routes/registers/registers.route.js'), opts);
|
|
47
|
+
app.register(import('./server/routes/services/services.route.js'), opts);
|
|
48
|
+
app.register(import('./server/routes/widgets/widgets.route.js'), opts);
|
|
49
|
+
|
|
42
50
|
|
|
43
51
|
addHook('afterData', async ({
|
|
44
52
|
pg = pgClients.client, payload, id, template,
|
|
@@ -50,6 +58,7 @@ async function plugin(app, opts = config) {
|
|
|
50
58
|
const { columns = [] } = await getMeta({ table, pg });
|
|
51
59
|
// payload.rows[0].token = payload.tokens?.edit; // token with ignore filtering of payload keys check
|
|
52
60
|
Object.assign(payload, { fields: columns?.map?.(({ name, title, dataTypeID }) => ({ name, title: title || name, type: columnType[pg?.pgType?.[dataTypeID] || 'text'] })).filter(el => el.type) });
|
|
61
|
+
return null;
|
|
53
62
|
});
|
|
54
63
|
}
|
|
55
64
|
export default fp(plugin);
|
|
@@ -20,9 +20,7 @@ function sequence(arr, fn) {
|
|
|
20
20
|
|
|
21
21
|
const unsafe = true;
|
|
22
22
|
|
|
23
|
-
export default async function checkRasterFile({ rows,
|
|
24
|
-
const callback = reply ? eventStream(reply) : () => { };
|
|
25
|
-
|
|
23
|
+
export default async function checkRasterFile({ rows, callback = () => { }, nocache }) {
|
|
26
24
|
let
|
|
27
25
|
createdCount = 0,
|
|
28
26
|
existsCount = 0,
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import getCartocss from './functions/get.cartocss.js';
|
|
2
|
+
import addCartocss from './functions/add.cartocss.js';
|
|
3
|
+
|
|
4
|
+
import {
|
|
5
|
+
getCartocssSchema,
|
|
6
|
+
addCartocssSchema,
|
|
7
|
+
} from './cartocss.schema.js';
|
|
8
|
+
|
|
9
|
+
const privateParams = { config: { policy: 'L1', package: 'gis' } };
|
|
10
|
+
const publicParams = { config: { policy: 'L0', package: 'gis' } };
|
|
11
|
+
|
|
12
|
+
async function route(app) {
|
|
13
|
+
app.get('/gis-css/:id', { ...publicParams, schema: getCartocssSchema }, async ({ params, query, user, pg }) => {
|
|
14
|
+
const result = await getCartocss({
|
|
15
|
+
id: params.id,
|
|
16
|
+
sql: query.sql,
|
|
17
|
+
nocache: query.nocache,
|
|
18
|
+
isAdmin: user?.user_type?.includes?.('admin')
|
|
19
|
+
}, pg);
|
|
20
|
+
return result;
|
|
21
|
+
});
|
|
22
|
+
app.post('/gis-css/:id', { ...privateParams, schema: addCartocssSchema }, async ({ params, body, user, pg }) => {
|
|
23
|
+
const result = await addCartocss({
|
|
24
|
+
id: params.id,
|
|
25
|
+
body,
|
|
26
|
+
uid: user?.uid,
|
|
27
|
+
}, pg);
|
|
28
|
+
return result;
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
export default route;
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { afterAll, beforeAll, describe, expect, test } from 'vitest';
|
|
2
|
+
|
|
3
|
+
import { getPGAsync } from '@opengis/fastify-table/utils.js';
|
|
4
|
+
|
|
5
|
+
import { build, injectWithHeaders } from '../../../test/helper.js';
|
|
6
|
+
|
|
7
|
+
const user = { id: '2', type: 'admin' };
|
|
8
|
+
|
|
9
|
+
let pg;
|
|
10
|
+
|
|
11
|
+
beforeAll(async () => {
|
|
12
|
+
await build();
|
|
13
|
+
|
|
14
|
+
pg = await getPGAsync();
|
|
15
|
+
|
|
16
|
+
await cleanUp('before');
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
afterAll(async () => {
|
|
20
|
+
await cleanUp('after');
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
const testId = 'testCss';
|
|
24
|
+
|
|
25
|
+
const cleanUp = async (when) => {
|
|
26
|
+
if (!pg) return;
|
|
27
|
+
const rowCount = await pg.query('delete from gis.cartocss where cartocss_id=$1', [testId]).then(r => r.rowCount || 0);
|
|
28
|
+
const rowCount3 = await pg.query('delete from gis.metadata where metadata_id=$1', [testId]).then(r => r.rowCount || 0);
|
|
29
|
+
console.log(`clean up finished: ${when}`, rowCount, rowCount3);
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
describe('cartocss api', () => {
|
|
33
|
+
test('POST /gis-css/:id returns 200', async () => {
|
|
34
|
+
const payload = {
|
|
35
|
+
source_path: 'test',
|
|
36
|
+
config: { test: 1 },
|
|
37
|
+
style: '#test { color: red; }'
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
await pg.query('insert into gis.cartocss(cartocss_id,name) values($1,$2)', [testId, 'unit-test']).catch(err => console.error(err));
|
|
41
|
+
const res = await injectWithHeaders({
|
|
42
|
+
method: 'POST',
|
|
43
|
+
url: `/api/gis-css/${testId}`,
|
|
44
|
+
payload,
|
|
45
|
+
headers: { uid: user.id, user_type: user.type }
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
expect(res.statusCode).toBe(200);
|
|
49
|
+
expect(res.body).toHaveProperty('message');
|
|
50
|
+
expect(res.body).toHaveProperty('code');
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
test('POST /gis-metadata/:type/:id returns 200', async () => {
|
|
54
|
+
const res = await injectWithHeaders({
|
|
55
|
+
method: 'POST',
|
|
56
|
+
url: `/api/gis-metadata/css/${testId}`,
|
|
57
|
+
payload: {
|
|
58
|
+
layer_id: testId
|
|
59
|
+
},
|
|
60
|
+
headers: { uid: user.id, user_type: user.type }
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
expect(res.statusCode).toBe(200);
|
|
64
|
+
expect(res.body).toHaveProperty('metadata_id');
|
|
65
|
+
expect(res.body.metadata_id).toBe(testId);
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
test('GET /gis-css/:id returns 200', async () => {
|
|
69
|
+
const res = await injectWithHeaders({
|
|
70
|
+
url: `/api/gis-css/${testId}`,
|
|
71
|
+
});
|
|
72
|
+
|
|
73
|
+
expect(res.statusCode).toBe(200);
|
|
74
|
+
expect(res.body).toHaveProperty('source_path');
|
|
75
|
+
expect(res.body).toHaveProperty('cartocss_id');
|
|
76
|
+
expect(res.body).toHaveProperty('cartocss_key');
|
|
77
|
+
expect(res.body).toHaveProperty('url');
|
|
78
|
+
});
|
|
79
|
+
});
|