22 lines
692 B
JavaScript
22 lines
692 B
JavaScript
import { sendBinary, sendJson } from './http.js';
|
|
import { resizeImage } from './image-resize.js';
|
|
import { getImageByHash } from './queries/image.js';
|
|
|
|
export function createImageHandler() {
|
|
return async function handle(_req, res, { url }) {
|
|
const path = url.searchParams.get('path');
|
|
|
|
if (!path) {
|
|
return sendJson(res, 400, { Message: "Missing required query parameter 'path'." });
|
|
}
|
|
|
|
const image = await getImageByHash(path, '200');
|
|
if (!image) {
|
|
return sendJson(res, 404, { Message: `No image was found for path '${path}'.` });
|
|
}
|
|
|
|
const buffer = await resizeImage(image.buffer);
|
|
return sendBinary(res, 200, buffer, image.contentType);
|
|
};
|
|
}
|