2021-05-11 23:12:42 +02:00
|
|
|
const { event, sequence, configuration } = require('../../../../lib/db');
|
|
|
|
|
const { transform } = require('../../../../lib/sse');
|
|
|
|
|
const render = require('../../../../lib/render');
|
|
|
|
|
|
|
|
|
|
const html = async function (req, res, next) {
|
|
|
|
|
try {
|
|
|
|
|
const query = req.query;
|
|
|
|
|
query.sequence = req.params.sequence;
|
|
|
|
|
const events = await event.list(req.params.project, query);
|
|
|
|
|
const sequences = await sequence.list(req.params.project, query);
|
|
|
|
|
const seis = transform(events, sequences, {projectId: req.params.project});
|
|
|
|
|
const templates = await configuration.get(req.params.project, "sse/templates");
|
|
|
|
|
const template = templates[0].template;
|
|
|
|
|
|
|
|
|
|
const response = await render(seis, template);
|
2021-05-15 17:10:28 +02:00
|
|
|
|
|
|
|
|
if ("download" in query || "d" in query) {
|
|
|
|
|
const filename = `${req.params.project}-seq${query.sequence.padStart(3, "0")}.html`;
|
|
|
|
|
res.set("Content-Disposition", `attachment; filename="${filename}"`);
|
|
|
|
|
}
|
2021-05-11 23:12:42 +02:00
|
|
|
res.status(200).send(response);
|
|
|
|
|
next();
|
|
|
|
|
} catch (err) {
|
2021-05-13 20:14:50 +02:00
|
|
|
if (err.message.startsWith("template")) {
|
|
|
|
|
next({message: err.message});
|
|
|
|
|
} else {
|
|
|
|
|
next(err);
|
|
|
|
|
}
|
2021-05-11 23:12:42 +02:00
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
module.exports = html;
|