greek-manifests/routes/index.mjs

62 lines
1.8 KiB
JavaScript

import generateManifest from '../controllers/manifest.mjs';
import generateCanvas from '../controllers/canvas.mjs';
import generateSequence from '../controllers/sequence.mjs';
import exposeParams from '../controllers/params.mjs';
import express from 'express';
let router = express.Router();
// TODO Log errors
/* GET manifest JSON */
router.get('/iiif/:manifestid/manifest', async function(req, res) {
let manifest = {};
res.set('Access-Control-Allow-Origin', '*');
try {
manifest = await generateManifest(req.params.manifestid)
} catch(error) {
res.status(500).json({
status: 500,
message: 'There was an error processing this request',
details: error
});
}
res.json(manifest);
});
/* GET canvas JSON */
router.get('/iiif/:manifestid/canvas/:name', async function(req, res) {
let canvas = {};
res.set('Access-Control-Allow-Origin', '*');
try {
canvas = await generateCanvas(req.params.manifestid, req.params.name)
} catch(error) {
res.status(500).json({status: 500, message: 'There was an error processing this request: ' + error});
return;
}
res.json(canvas);
});
/* GET sequence JSON */
router.get('/iiif/:manifestid/sequence/:name', async function(req, res) {
let sequence = {};
res.set('Access-Control-Allow-Origin', '*');
try {
sequence = await generateSequence(req.params.manifestid, req.params.name)
} catch(error) {
res.status(500).json({status: 500, message: 'There was an error processing this request'});
}
res.json(sequence);
});
/* GET possible params for manifest responses */
router.get('/params', async function(req, res) {
res.set('Access-Control-Allow-Origin', '*');
try {
res.json(await exposeParams());
} catch(error) {
res.status(500).json({status: 500, message: 'There was an error processing this request'});
}
});
export default router;