mirror of
https://github.com/qlik-oss/nebula.js.git
synced 2025-12-19 17:58:43 -05:00
55 lines
1.1 KiB
JavaScript
55 lines
1.1 KiB
JavaScript
const express = require('express');
|
|
const bodyParser = require('body-parser');
|
|
|
|
module.exports = function router({ base, snapshotUrl, snapshooter }) {
|
|
const r = express.Router();
|
|
|
|
r.use(
|
|
bodyParser.json({
|
|
limit: '10mb',
|
|
})
|
|
);
|
|
|
|
// returns an existing image
|
|
r.get('/image/:id', (req, res) => {
|
|
const p = snapshooter.getStoredImage(req.params.id);
|
|
if (p) {
|
|
res.contentType('image/png');
|
|
res.end(p, 'binary');
|
|
} else {
|
|
res.sendStatus('404');
|
|
}
|
|
});
|
|
|
|
r.post('/capture', async (req, res) => {
|
|
try {
|
|
const key = await snapshooter.captureImageOfSnapshot(req.body);
|
|
res.send({
|
|
url: `${base}/image/${key}`,
|
|
});
|
|
} catch (e) {
|
|
console.error(e);
|
|
res.sendStatus('500');
|
|
}
|
|
});
|
|
|
|
// post snapshot
|
|
r.post('/snapshot', (req, res) => {
|
|
const key = snapshooter.storeSnapshot(req.body);
|
|
res.json({
|
|
url: `${snapshotUrl}?snapshot=${key}`,
|
|
});
|
|
});
|
|
|
|
r.get('/snapshot/:id', (req, res) => {
|
|
const p = snapshooter.getStoredSnapshot(req.params.id);
|
|
if (p) {
|
|
res.json(p);
|
|
} else {
|
|
res.sendStatus('404');
|
|
}
|
|
});
|
|
|
|
return r;
|
|
};
|