31 lines
949 B
JavaScript
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();
|
|
} |