1
0
mirror of https://github.com/dap-ps/discover.git synced 2025-02-07 15:05:07 +00:00
discover/back-end/services/dapp-image-service.js
2019-06-03 21:01:42 +03:00

31 lines
939 B
JavaScript

const DAppImage = require('./../models/dapps-images-model');
class DAppImageService {
static async upload(req, image) {
try {
const uploadedImage = await DAppImage.create({ content: image });
return buildImageUrl(req, uploadedImage.hash);
} catch (error) {
// Code 11000 is because of uniqueness, so just return the already exist document
if (error.code == 11000) {
const existingImage = await DAppImage.findByContent(image);
return buildImageUrl(req, existingImage.hash);
}
throw new Error(error.message);
}
}
static async retrieveImage(imageHash) {
return DAppImage.findOne({ 'hash': imageHash });
}
}
const buildImageUrl = function (req, imageHash) {
return `${req.protocol}://${req.headers.host}${req.originalUrl}/image/${imageHash}`;
}
module.exports = DAppImageService;