Commit 9a2f0ed2 authored by Athanasios's avatar Athanasios
Browse files

Complete service

parent 7681b81e
...@@ -4,8 +4,9 @@ module.exports = { ...@@ -4,8 +4,9 @@ module.exports = {
FOLDER_INDEX: { FOLDER_INDEX: {
SCENELAYER: "3dSceneLayer.json.gz", SCENELAYER: "3dSceneLayer.json.gz",
NODE: "3dNodeIndexDocument.json.gz", NODE: "3dNodeIndexDocument.json.gz",
SHARED: "sharedResource.json.gz",
FEATURES: "0.json.gz", FEATURES: "0.json.gz",
GEOMETRIES: "0.bin.gz", GEOMETRIES: "0.bin.gz",
SHARED: "sharedResource.json.gz" ATTRIBUTES: "0.bin.gz"
} }
}; };
\ No newline at end of file
...@@ -3,19 +3,43 @@ const getHandler = require('../src/handler'); ...@@ -3,19 +3,43 @@ const getHandler = require('../src/handler');
let router = express.Router(); let router = express.Router();
router.route("/").get((req, res) => { router.route("/:nodeid/?").get((req, res) => {
res.sendStatus(404); let param = req.params.nodeid;
res.end(); let handler = getHandler(param);
handler(req, res);
});
router.route("/:nodeid/:resource").get((req, res) => {
let param = req.params.resource;
let handler = getHandler(param);
handler(req, res);
}); });
router.route("[/]?*/:leaf").get((req, res) => { router.route("/:nodeid/:resource/0").get((req, res) => {
let leaf = req.params.leaf; let param = req.params.resource;
let handler = getHandler(leaf); let handler = getHandler(param);
handler(req, res); handler(req, res);
}); });
router.route("/:nodeid/:resource/:resourceid/0").get((req, res) => {
let param = req.params.resource;
let handler = getHandler(param);
handler(req, res);
});
router.route("*").get((req, res) => {
res.sendStatus(404);
res.end();
});
module.exports = router; module.exports = router;
\ No newline at end of file
...@@ -22,7 +22,7 @@ router.route("/").get((req, res) => { ...@@ -22,7 +22,7 @@ router.route("/").get((req, res) => {
}); });
router.route("/:layer").get((req, res) => { router.route("/:layer/layers/0").get((req, res) => {
let handler = getHandler("layer"); let handler = getHandler("layer");
handler(req, res); handler(req, res);
......
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}/${req.params.resource}/${req.params.resourceid}/${config.FOLDER_INDEX.ATTRIBUTES}`;
if (!fs.existsSync(resourse)) throw new Error("not found");
res.set({
'Content-Disposition': 'attachment; filename=0.bin',
'Content-Type': 'application/octet-stream',
'Content-Encoding': 'gzip'
});
res.sendFile(resourse);
};
module.exports = handle;
\ No newline at end of file
...@@ -3,13 +3,9 @@ const fs = require('fs'); ...@@ -3,13 +3,9 @@ const fs = require('fs');
const handle = (req, res) => { const handle = (req, res) => {
let resourse = `${config.BASE_DIR}${req.originalUrl}/${config.FOLDER_INDEX.NODE}`; let originalUrl = req.originalUrl.replace(/^\/?|\/?$/g, "");
let resourse = `${config.BASE_DIR}/${originalUrl}/${config.FOLDER_INDEX.NODE}`;
if (!fs.existsSync(resourse)) { if (!fs.existsSync(resourse)) throw new Error("not found");
res.sendStatus(404);
res.end();
return;
}
res.set({ res.set({
'Content-Type': 'application/json', 'Content-Type': 'application/json',
......
...@@ -3,13 +3,9 @@ const fs = require('fs'); ...@@ -3,13 +3,9 @@ const fs = require('fs');
const handle = (req, res) => { const handle = (req, res) => {
let resourse = `${config.BASE_DIR}${req.originalUrl}/${config.FOLDER_INDEX.FEATURES}`; let baseUrl = req.baseUrl.replace(/^\/?|\/?$/g, "");
let resourse = `${config.BASE_DIR}/${baseUrl}/${req.params.nodeid}/${req.params.resource}/${config.FOLDER_INDEX.FEATURES}`;
if (!fs.existsSync(resourse)) { if (!fs.existsSync(resourse)) throw new Error("not found");
res.sendStatus(404);
res.end();
return;
}
res.set({ res.set({
'Content-Type': 'application/json', 'Content-Type': 'application/json',
......
...@@ -3,13 +3,9 @@ const fs = require('fs'); ...@@ -3,13 +3,9 @@ const fs = require('fs');
const handle = (req, res) => { const handle = (req, res) => {
let resourse = `${config.BASE_DIR}${req.originalUrl}/${config.FOLDER_INDEX.GEOMETRIES}`; let baseUrl = req.baseUrl.replace(/^\/?|\/?$/g, "");
let resourse = `${config.BASE_DIR}/${baseUrl}/${req.params.nodeid}/${req.params.resource}/${config.FOLDER_INDEX.GEOMETRIES}`;
if (!fs.existsSync(resourse)) { if (!fs.existsSync(resourse)) throw new Error("not found");
res.sendStatus(404);
res.end();
return;
}
res.set({ res.set({
'Content-Disposition': 'attachment; filename=0.bin', 'Content-Disposition': 'attachment; filename=0.bin',
......
const _default_ = require('./default'); const _default_ = require('./default');
const shared = require('./shared');
const features = require('./features'); const features = require('./features');
const geometries = require('./geometries'); const geometries = require('./geometries');
const shared = require('./shared'); const attributes = require('./attributes');
const layer = require('./layer'); const layer = require('./layer');
const layers = require('./layers'); const layers = require('./layers');
const handlers = { const handlers = {
_default_: _default_, _default_: _default_,
shared: shared,
features: features, features: features,
geometries: geometries, geometries: geometries,
shared: shared, attributes: attributes,
layer: layer, layer: layer,
layers: layers layers: layers
} }
......
...@@ -3,13 +3,8 @@ const fs = require('fs'); ...@@ -3,13 +3,8 @@ const fs = require('fs');
const handle = (req, res) => { const handle = (req, res) => {
let resourse = `${config.BASE_DIR}/scenelayers/${req.params.layer}/${config.FOLDER_INDEX.SCENELAYER}`; let resourse = `${config.BASE_DIR}/scenelayers/${req.params.layer}/layers/0/${config.FOLDER_INDEX.SCENELAYER}`;
if (!fs.existsSync(resourse)) throw new Error("not found");
if (!fs.existsSync(resourse)) {
res.sendStatus(404);
res.end();
return;
}
res.set({ res.set({
'Content-Type': 'application/json', 'Content-Type': 'application/json',
......
...@@ -3,13 +3,9 @@ const fs = require('fs'); ...@@ -3,13 +3,9 @@ const fs = require('fs');
const handle = (req, res) => { const handle = (req, res) => {
let resourse = `${config.BASE_DIR}${req.originalUrl}/${config.FOLDER_INDEX.SHARED}`; let baseUrl = req.baseUrl.replace(/^\/?|\/?$/g, "");
let resourse = `${config.BASE_DIR}/${baseUrl}/${req.params.nodeid}/${req.params.resource}/${config.FOLDER_INDEX.SHARED}`;
if (!fs.existsSync(resourse)) { if (!fs.existsSync(resourse)) throw new Error("not found");
res.sendStatus(404);
res.end();
return;
}
res.set({ res.set({
'Content-Type': 'application/json', 'Content-Type': 'application/json',
......
...@@ -7,4 +7,4 @@ style. ...@@ -7,4 +7,4 @@ style.
ul ul
each layer in layers each layer in layers
li li
a(href=`${layer}`)= layer a(href=`${layer}/layers/0`)= layer
\ No newline at end of file \ No newline at end of file
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment