diff --git a/pages/api/image.js b/pages/api/image.js index b5e63252..e6ae826e 100644 --- a/pages/api/image.js +++ b/pages/api/image.js @@ -1,6 +1,6 @@ import { connect } from '../../src/core/db' import Image from '../../src/core/Image' -import ImageArtifactType from '../../src/core/ImageArtifactType' +import { encodeImage } from '../../src/api/image' export default async (req, res) => { await connect() @@ -9,8 +9,7 @@ export default async (req, res) => { const image = await Image.findByFile(file) if (image) { - const data = image.getPicture(ImageArtifactType.LARGE) - res.json(data) + res.json(encodeImage(image)) } else { res.status(404) res.json({ diff --git a/src/api/image.js b/src/api/image.js new file mode 100644 index 00000000..717ec47b --- /dev/null +++ b/src/api/image.js @@ -0,0 +1,24 @@ +import ImageArtifactType from '../core/ImageArtifactType' + +export function encodeImage(image) { + const artifacts = [ + ImageArtifactType.SMALL, + ImageArtifactType.MEDIUM, + ImageArtifactType.BIG, + ImageArtifactType.LARGE, + ImageArtifactType.ORIGIN, + ImageArtifactType.ORIGINAL, + ImageArtifactType.FACEBOOK = 'fb' + ].reduce((acc, size) => { + return { + ...acc, + [size]: image.getPicture(size), + } + }, {}) + + return { + artifacts, + hash: image.hash, + file: image.file, + } +}