greek-manifests/controllers/canvas.mjs

31 lines
949 B
JavaScript

import Canvas from '../src/Canvas.js';
import Image from '../src/Image.js';
import Common from '../src/common.js';
/**
* Generate a canvas object to serve
* @param {string} manifestId The corresponding manifest's id
* @param {number|string} name The canvas name
*/
export default async function generateCanvas(manifestId, name) {
const IIIF_API_VERSION = process.env.IIIF_API_VERSION;
const BASE_URL = process.env.BASE_URL;
const canvas = new Canvas(IIIF_API_VERSION, BASE_URL);
canvas.generateID(manifestId, name);
canvas.setLabel(`${manifestId}-${name.toLowerCase()}`);
const image = new Image(canvas.id);
image.generateID(process.env.IMAGE_SERVER_URL, await Common.getImageName(canvas));
const imgSize = await Common.getImageSize(image.id);
image.setSize(imgSize.height, imgSize.width);
canvas.setThumbnail(
imgSize.thumb.height,
imgSize.thumb.width,
image.id
);
canvas.addImage(image);
return canvas.toObject();
}