From 0c3b5cf476b77b547af34367c6fa94a26e2c5a80 Mon Sep 17 00:00:00 2001 From: Athanasios <ath.kouk.oid@gmail.com> Date: Sun, 18 Apr 2021 11:59:10 +0200 Subject: [PATCH] Complete service --- config.js | 6 +++--- routes/nodes.js | 9 ++++----- src/attributes.js | 2 +- src/default.js | 10 +--------- src/features.js | 2 +- src/geometries.js | 2 +- src/handler.js | 2 ++ src/node.js | 18 ++++++++++++++++++ 8 files changed, 31 insertions(+), 20 deletions(-) create mode 100644 src/node.js diff --git a/config.js b/config.js index 36c5001..4d80fe4 100644 --- a/config.js +++ b/config.js @@ -6,8 +6,8 @@ module.exports = { NODE: "3dNodeIndexDocument.json.gz", NODEPAGES: ".json.gz", SHARED: "sharedResource.json.gz", - FEATURES: "0.json.gz", - GEOMETRIES: "0.bin.gz", - ATTRIBUTES: "0.bin.gz" + FEATURES: ".json.gz", + GEOMETRIES: ".bin.gz", + ATTRIBUTES: ".bin.gz" } }; \ No newline at end of file diff --git a/routes/nodes.js b/routes/nodes.js index 15d5f06..0343fa1 100644 --- a/routes/nodes.js +++ b/routes/nodes.js @@ -3,10 +3,9 @@ const getHandler = require('../src/handler'); let router = express.Router(); -router.route("/:nodeid/?").get((req, res) => { +router.route("/:nodeid").get((req, res) => { - let param = req.params.nodeid; - let handler = getHandler(param); + let handler = getHandler("node"); handler(req, res); }); @@ -19,7 +18,7 @@ router.route("/:nodeid/:resource").get((req, res) => { }); -router.route("/:nodeid/:resource/0").get((req, res) => { +router.route("/:nodeid/:resource/:resourceid").get((req, res) => { let param = req.params.resource; let handler = getHandler(param); @@ -27,7 +26,7 @@ router.route("/:nodeid/:resource/0").get((req, res) => { }); -router.route("/:nodeid/:resource/:resourceid/0").get((req, res) => { +router.route("/:nodeid/:resource/:subresource/:subresourceid").get((req, res) => { let param = req.params.resource; let handler = getHandler(param); diff --git a/src/attributes.js b/src/attributes.js index dcb3789..a477475 100644 --- a/src/attributes.js +++ b/src/attributes.js @@ -4,7 +4,7 @@ const fs = require('fs'); const handle = (req, res) => { let baseUrl = req.baseUrl.replace(/^\/?|\/?$/g, ""); - let resourse = `${config.BASE_DIR}/${baseUrl}/${req.params.nodeid}/${req.params.resource}/${req.params.resourceid}/${config.FOLDER_INDEX.ATTRIBUTES}`; + let resourse = `${config.BASE_DIR}/${baseUrl}/${req.params.nodeid}/${req.params.resource}/${req.params.subresource}/${req.params.subresourceid}${config.FOLDER_INDEX.ATTRIBUTES}`; if (!fs.existsSync(resourse)) throw new Error("not found"); res.set({ diff --git a/src/default.js b/src/default.js index 5b52766..0bb6bde 100644 --- a/src/default.js +++ b/src/default.js @@ -3,15 +3,7 @@ const fs = require('fs'); const handle = (req, res) => { - let baseUrl = req.baseUrl.replace(/^\/?|\/?$/g, ""); - let resourse = `${config.BASE_DIR}/${baseUrl}/${req.params.nodeid}/${config.FOLDER_INDEX.NODE}`; - if (!fs.existsSync(resourse)) throw new Error("not found"); - - res.set({ - 'Content-Type': 'application/json', - 'Content-Encoding': 'gzip' - }); - res.sendFile(resourse); + throw new Error("not found"); }; diff --git a/src/features.js b/src/features.js index dd3e731..1c1ccd2 100644 --- a/src/features.js +++ b/src/features.js @@ -4,7 +4,7 @@ const fs = require('fs'); const handle = (req, res) => { let baseUrl = req.baseUrl.replace(/^\/?|\/?$/g, ""); - let resourse = `${config.BASE_DIR}/${baseUrl}/${req.params.nodeid}/${req.params.resource}/${config.FOLDER_INDEX.FEATURES}`; + let resourse = `${config.BASE_DIR}/${baseUrl}/${req.params.nodeid}/${req.params.resource}/${req.params.resourceid}${config.FOLDER_INDEX.FEATURES}`; if (!fs.existsSync(resourse)) throw new Error("not found"); res.set({ diff --git a/src/geometries.js b/src/geometries.js index c2bafda..e1f1ba7 100644 --- a/src/geometries.js +++ b/src/geometries.js @@ -4,7 +4,7 @@ const fs = require('fs'); const handle = (req, res) => { let baseUrl = req.baseUrl.replace(/^\/?|\/?$/g, ""); - let resourse = `${config.BASE_DIR}/${baseUrl}/${req.params.nodeid}/${req.params.resource}/${config.FOLDER_INDEX.GEOMETRIES}`; + let resourse = `${config.BASE_DIR}/${baseUrl}/${req.params.nodeid}/${req.params.resource}/${req.params.resourceid}${config.FOLDER_INDEX.GEOMETRIES}`; if (!fs.existsSync(resourse)) throw new Error("not found"); res.set({ diff --git a/src/handler.js b/src/handler.js index d646efc..26edda6 100644 --- a/src/handler.js +++ b/src/handler.js @@ -1,4 +1,5 @@ const _default_ = require('./default'); +const node = require('./node'); const nodepages = require('./nodepages'); const shared = require('./shared'); const features = require('./features'); @@ -9,6 +10,7 @@ const layers = require('./layers'); const handlers = { _default_: _default_, + node: node, nodepages: nodepages, shared: shared, features: features, diff --git a/src/node.js b/src/node.js new file mode 100644 index 0000000..5b52766 --- /dev/null +++ b/src/node.js @@ -0,0 +1,18 @@ +const config = require('../config'); +const fs = require('fs'); + +const handle = (req, res) => { + + let baseUrl = req.baseUrl.replace(/^\/?|\/?$/g, ""); + let resourse = `${config.BASE_DIR}/${baseUrl}/${req.params.nodeid}/${config.FOLDER_INDEX.NODE}`; + if (!fs.existsSync(resourse)) throw new Error("not found"); + + res.set({ + 'Content-Type': 'application/json', + 'Content-Encoding': 'gzip' + }); + res.sendFile(resourse); + +}; + +module.exports = handle; -- GitLab