no message

This commit is contained in:
2018-03-04 20:47:21 -05:00
parent c131f42632
commit 3f9766cab0
3 changed files with 179 additions and 8 deletions

56
modules/images.js Normal file
View File

@@ -0,0 +1,56 @@
const fs = require('fs');
const ShortId = require('shortid');
const ATTACHMENT_STORE = '../images';
const ATTACHMENT_STORE_PROFILE = '/profile';
const ATTACHMENT_STORE_MESSAGE = '/message';
const ATTACHMENT_SUFFIX_DETAIL = '_detail';
const ATTACHMENT_SUFFIX_THUMBNAIL = '_thumbnail';
function generateFilename (filename, type = 'detail') {
var re = /(?:\.([^.]+))?$/;
var ext = re.exec(filename)[1];
return shortid.generate() + (type === 'thumbnail' ? ATTACHMENT_SUFFIX_THUMBNAIL : ATTACHMENT_SUFFIX_DETAIL) + "." + ext;
}
function processImage (data, context, type, callback) {
var folder = ATTACHMENT_STORE + (context === 'profile' ? ATTACHMENT_STORE_PROFILE : ATTACHMENT_STORE_MESSAGE);
var filename = generateFilename(data.imageFilename, type);
var data_url = data.image;
var matches = data_url.match(/^data:.+\/(.+);base64,(.*)$/);
var base64_data = matches[2];
var buffer = new Buffer(base64_data, 'base64');
saveImage(folder + '/' + filename, buffer, callback);
}
function saveImage (filename, data, callback = function(){}) {
fs.writeFile(filename, data, function (err, stat) {
if (err) {
callback(err, null);
} else {
callback(null, filename.substring(2));
}
});
}
module.exports = {
save: (data, filename, callback = function(){}) {
saveImage(filename, data, callback);
},
saveMessageImage: (data, callback) => {
processImage(data, 'message', 'detail', callback);
},
saveProfileDetailImage: (data, callback) => {
processImage(data, 'profile', 'detail', callback);
},
saveProfileThumbnailImage: (data, callback) => {
processImage(data, 'profile', 'thumbnail', callback);
}
};