diff --git a/src/assets.js b/src/assets.js index bb63b196fe81a8716b4e57ebdbce90652454cf90..1e2da84cf4c129f46ade846bd469a5b2b4bbe6da 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 64aa58aa212b801b1a9a3f9476f58e8b2fa59777..31aa4f369a6632fd407253880f8773f06758b253 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;