Support sequence URLs

This commit is contained in:
Nicolò P 2023-10-17 14:54:20 +02:00
parent 9c34e106c1
commit 75ce4bb012
2 changed files with 35 additions and 0 deletions

26
controllers/sequence.mjs Normal file
View File

@ -0,0 +1,26 @@
'use strict';
import Manifest from '../src/Manifest.js';
import Common from '../src/common.js';
/**
* Generate a sequence object to serve
* @param {string} manifestId
* @param {string | int} name
*/
export default async function generateSequence(manifestId, name) {
const IIIF_API_VERSION = process.env.IIIF_API_VERSION;
const BASE_URL = process.env.BASE_URL;
let manifest = new Manifest(IIIF_API_VERSION, BASE_URL);
manifest.generateID(manifestId);
manifest = await Common.populateCanvases(
manifest,
await Common.getImageList(manifestId),
manifestId
);
return manifest.toObject().sequences[name];
}

View File

@ -1,5 +1,6 @@
import generateManifest from '../controllers/manifest.mjs';
import generateCanvas from '../controllers/canvas.mjs';
import generateSequence from '../controllers/sequence.mjs';
import express from 'express';
let router = express.Router();
@ -18,4 +19,12 @@ router.get('/iiif/:manifestid/canvas/:name', async function(req, res) {
res.json(canvas);
});
/* GET sequence JSON */
router.get('/iiif/:manifestid/sequence/:name', async function(req, res) {
const sequence = await generateSequence(req.params.manifestid, req.params.name)
res.set('Access-Control-Allow-Origin', '*');
res.json(sequence);
});
export default router;