diff --git a/lib/www/server/api/index.js b/lib/www/server/api/index.js index fc4d61c..39c4c8d 100644 --- a/lib/www/server/api/index.js +++ b/lib/www/server/api/index.js @@ -140,8 +140,9 @@ app.map({ post: [ mw.auth.access.write, mw.event.post ], put: [ mw.auth.access.write, mw.event.put ], delete: [ mw.auth.access.write, mw.event.delete ], + // TODO Rename -/:sequence → sequence/:sequence '-/:sequence/': { // NOTE: We need to avoid conflict with the next endpoint ☹ - get: [ mw.event.get ], + get: [ mw.event.sequence.get ], }, ':type/': { ':id/': { diff --git a/lib/www/server/api/middleware/event/get/geojson.js b/lib/www/server/api/middleware/event/sequence/get/geojson.js similarity index 94% rename from lib/www/server/api/middleware/event/get/geojson.js rename to lib/www/server/api/middleware/event/sequence/get/geojson.js index 056bb0a..e450fbe 100644 --- a/lib/www/server/api/middleware/event/get/geojson.js +++ b/lib/www/server/api/middleware/event/sequence/get/geojson.js @@ -1,4 +1,4 @@ -const { transform, prepare } = require('../../../../lib/sse'); +const { transform, prepare } = require('../../../../../lib/sse'); const geojson = async function (req, res, next) { try { diff --git a/lib/www/server/api/middleware/event/get/html.js b/lib/www/server/api/middleware/event/sequence/get/html.js similarity index 84% rename from lib/www/server/api/middleware/event/get/html.js rename to lib/www/server/api/middleware/event/sequence/get/html.js index 57f65da..769225d 100644 --- a/lib/www/server/api/middleware/event/get/html.js +++ b/lib/www/server/api/middleware/event/sequence/get/html.js @@ -1,9 +1,9 @@ -const { configuration } = require('../../../../lib/db'); -const { transform, prepare } = require('../../../../lib/sse'); -const render = require('../../../../lib/render'); +const { configuration } = require('../../../../../lib/db'); +const { transform, prepare } = require('../../../../../lib/sse'); +const render = require('../../../../../lib/render'); // FIXME Refactor when able -const defaultTemplatePath = require('path').resolve(__dirname, "../../../../../../../etc/default/templates/sequence.html.njk"); +const defaultTemplatePath = require('path').resolve(__dirname, "../../../../../../../../etc/default/templates/sequence.html.njk"); const html = async function (req, res, next) { try { @@ -13,9 +13,9 @@ const html = async function (req, res, next) { const seis = transform(events, sequences, {projectId: req.params.project, missingAsEvent: true}); const template = (await configuration.get(req.params.project, "sse/templates/0/template")) || defaultTemplatePath; // console.log("TEMPLATE", template); - + const response = await render(seis, template); - + if ("download" in query || "d" in query) { const extension = "html"; // Get the sequence number(s) (more than one sequence can be selected) diff --git a/lib/www/server/api/middleware/event/get/index.js b/lib/www/server/api/middleware/event/sequence/get/index.js similarity index 100% rename from lib/www/server/api/middleware/event/get/index.js rename to lib/www/server/api/middleware/event/sequence/get/index.js diff --git a/lib/www/server/api/middleware/event/get/json.js b/lib/www/server/api/middleware/event/sequence/get/json.js similarity index 93% rename from lib/www/server/api/middleware/event/get/json.js rename to lib/www/server/api/middleware/event/sequence/get/json.js index 48452db..b105614 100644 --- a/lib/www/server/api/middleware/event/get/json.js +++ b/lib/www/server/api/middleware/event/sequence/get/json.js @@ -1,4 +1,4 @@ -const { transform, prepare } = require('../../../../lib/sse'); +const { transform, prepare } = require('../../../../../lib/sse'); const json = async function (req, res, next) { try { diff --git a/lib/www/server/api/middleware/event/get/pdf.js b/lib/www/server/api/middleware/event/sequence/get/pdf.js similarity index 84% rename from lib/www/server/api/middleware/event/get/pdf.js rename to lib/www/server/api/middleware/event/sequence/get/pdf.js index 95b98ce..954cc81 100644 --- a/lib/www/server/api/middleware/event/get/pdf.js +++ b/lib/www/server/api/middleware/event/sequence/get/pdf.js @@ -1,13 +1,13 @@ const fs = require('fs/promises'); const Path = require('path'); const crypto = require('crypto'); -const { configuration } = require('../../../../lib/db'); -const { transform, prepare } = require('../../../../lib/sse'); -const render = require('../../../../lib/render'); -const { url2pdf } = require('../../../../lib/selenium'); +const { configuration } = require('../../../../../lib/db'); +const { transform, prepare } = require('../../../../../lib/sse'); +const render = require('../../../../../lib/render'); +const { url2pdf } = require('../../../../../lib/selenium'); // FIXME Refactor when able -const defaultTemplatePath = require('path').resolve(__dirname, "../../../../../../../etc/default/templates/sequence.html.njk"); +const defaultTemplatePath = require('path').resolve(__dirname, "../../../../../../../../etc/default/templates/sequence.html.njk"); function tmpname (tmpdir="/dev/shm") { return Path.join(tmpdir, crypto.randomBytes(16).toString('hex')+".tmp"); @@ -21,12 +21,12 @@ const pdf = async function (req, res, next) { const {events, sequences} = await prepare(req.params.project, query); const seis = transform(events, sequences, {projectId: req.params.project, missingAsEvent: true}); const template = (await configuration.get(req.params.project, "sse/templates/0/template")) || defaultTemplatePath; - + const html = await render(seis, template); - + await fs.writeFile(fname, html); const pdf = Buffer.from(await url2pdf("file://"+fname), "base64"); - + if ("download" in query || "d" in query) { const extension = "pdf"; // Get the sequence number(s) (more than one sequence can be selected) diff --git a/lib/www/server/api/middleware/event/get/seis.js b/lib/www/server/api/middleware/event/sequence/get/seis.js similarity index 93% rename from lib/www/server/api/middleware/event/get/seis.js rename to lib/www/server/api/middleware/event/sequence/get/seis.js index 2b06119..3fa0994 100644 --- a/lib/www/server/api/middleware/event/get/seis.js +++ b/lib/www/server/api/middleware/event/sequence/get/seis.js @@ -1,4 +1,4 @@ -const { transform, prepare } = require('../../../../lib/sse'); +const { transform, prepare } = require('../../../../../lib/sse'); const seis = async function (req, res, next) { try { diff --git a/lib/www/server/api/middleware/event/sequence/index.js b/lib/www/server/api/middleware/event/sequence/index.js new file mode 100644 index 0000000..ef9bbd5 --- /dev/null +++ b/lib/www/server/api/middleware/event/sequence/index.js @@ -0,0 +1,9 @@ + +module.exports = { +// list: require('./list'), + get: require('./get'), +// post: require('./post'), +// put: require('./put'), +// delete: require('./delete'), +// cache: require('./cache') +}