From 567cf4c15156fa963559f5ecfa83cbe452f6fd64 Mon Sep 17 00:00:00 2001 From: Athanasios <ath.kouk.oid@gmail.com> Date: Sun, 25 Jul 2021 21:46:30 +0200 Subject: [PATCH] make boundingbox optional --- src/assets.js | 30 +++++++++++++++++++++++++++--- src/getSceneHandler.js | 2 +- 2 files changed, 28 insertions(+), 4 deletions(-) diff --git a/src/assets.js b/src/assets.js index bb63b19..1e2da84 100644 --- a/src/assets.js +++ b/src/assets.js @@ -2,7 +2,31 @@ const fs = require("fs"); const boxIntersect = require("box-intersect"); const path = require('path'); -const getIntersectingLayers = (bb, layers) => { +const getLayers = (layers, boundingbox) => { + if (boundingbox === undefined) { + + return new Promise((resolve, reject) => { + fs.readFile("./assets/assets.json", (err, data) => { + if (err) { + reject(); + } + let assets = JSON.parse(data); + let requestedLayers = layers.split(","); + assets = assets.filter(asset => requestedLayers.includes(asset.id)); + assets = assets.filter(asset => asset.scope == "public"); + resolve(assets); + }); + }); + + } else { + + return getIntersectingLayers(layers, boundingbox); + + } + +} + +const getIntersectingLayers = (layers,bb) => { return new Promise((resolve, reject) => { fs.readFile("./assets/assets.json", (err, data) => { @@ -77,7 +101,7 @@ const isPublic = (url) => { let assets = JSON.parse(data); assets = assets.filter(asset => { let parentDir = path.dirname(asset.url); - return !path.relative(parentDir, url).startsWith(".."); + return !path.relative(parentDir, url).startsWith(".."); }); if (assets.length == 0) { resolve(false); @@ -93,4 +117,4 @@ const isPublic = (url) => { } -module.exports = { getIntersectingLayers, allLayersExist, getPublicLayers, isPublic }; \ No newline at end of file +module.exports = { getLayers, allLayersExist, getPublicLayers, isPublic }; \ No newline at end of file diff --git a/src/getSceneHandler.js b/src/getSceneHandler.js index 64aa58a..31aa4f3 100644 --- a/src/getSceneHandler.js +++ b/src/getSceneHandler.js @@ -2,7 +2,7 @@ const assets = require("../src/assets"); const getSceneHandler = (req, res) => { - assets.getIntersectingLayers(req.query.boundingbox, req.query.layers).then(layers => { + assets.getLayers(req.query.layers, req.query.boundingbox).then(layers => { layers = layers.map(layer => { delete layer.scope; -- GitLab