Expose manifest params JSON

This commit is contained in:
Nicolò P 2023-11-03 16:15:34 +01:00
parent 4ffc5277c0
commit 6895e69618
3 changed files with 34 additions and 1 deletions

10
controllers/params.mjs Normal file
View File

@ -0,0 +1,10 @@
'use strict';
import Common from '../src/common.js';
/**
* Show all possible parameters for manifest URLs
*/
export default async function exposeParams() {
return await Common.getParamsFromFolders();
}

View File

@ -1,6 +1,7 @@
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();
@ -26,5 +27,9 @@ router.get('/iiif/:manifestid/sequence/:name', async function(req, res) {
res.json(sequence);
});
/* GET possible params for manifest responses */
router.get('/params', async function(req, res) {
res.json(await exposeParams());
});
export default router;
export default router;

View File

@ -43,6 +43,24 @@ function extractDNOMetadata(imgFilename) {
date: '',
}
}
/**
* Retrieves available image techniques
* for all papyruses based on folder contents
* @returns {object}
*/
Common.getParamsFromFolders = async function() {
let params = {};
const papyri = await fs.promises.readdir(process.env.IMAGES_DIR);
for (let p of papyri) {
params[p] = [];
for (let tech of await fs.promises.readdir(`${process.env.IMAGES_DIR}/${p}`)) {
params[p].push(tech.toLowerCase().replaceAll('_','-'));
}
}
return params;
}
/**
* @param {string} manifestId
*/