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