UNPKG

prometheus

Version:

Simple ODM for Node.js with pluggable adapters

46 lines (36 loc) 1.4 kB
var _ = require('underscore'), fs = require('fs'), deferred = require('deferred'), MD5 = require('MD5'), resizer = require('./image_resizer'); module.exports = function(file) { var self = this, _def = deferred(); if (!self._uploads) { console.warn('%s: model missing ._uploads object; returning...', __dirname); return; } fs.readFile(file.path, function (err, data) { var ext = '.' + file.name.split('.').pop(), basename = MD5(file.name + new Date().getTime()), path = self._uploads.path, path_pub = self._uploads.path_public, filename = basename + ext; if (err) { _def.resolve(err); } else { fs.writeFile(path + filename, data, function (err) { if (err) { _def.resolve(err); } else { self._attributes[file.attr] = path_pub + filename; /* --- Handle image resizes --- */ self._schema[file.attr].resize && resizer(path, basename, ext, self._schema[file.attr].resize); /* --- Resolve promise with public URL of original file --- */ _def.resolve(path_pub + filename); } }); } }); return _def.promise; }