nodejs-rigorous
Version:
Rigorous Framework
59 lines (47 loc) • 1.8 kB
JavaScript
;
var mongoose = require('mongoose');
var _require = require('../../../factory/RigorousError/index'),
RigorousError = _require.RigorousError,
errorTypes = _require.errorTypes;
var mongoRead = require('./read');
var callbackResult = require('./callback_result');
var helper_format_checker = require('../../../helpers/h_format_checker');
module.exports = function (collectionName, attributeObjectUpdated, beforeCreateTransformation, params) {
return new Promise(function (resolve, reject) {
try {
if (helper_format_checker.isNil(params)) {
throw new RigorousError(errorTypes.RESPONSE_ERROR_OPERATION);
}
if (helper_format_checker.isNil(params.selectAttributesReturned) && helper_format_checker.isObjectEmpty(params.selectAttributesReturned)) {
throw new RigorousError(errorTypes.RESPONSE_ERROR_OPERATION);
}
if (beforeCreateTransformation) {
// dynamic Transformation
beforeCreateTransformation(attributeObjectUpdated);
} // Create
mongoose.model(collectionName).create(attributeObjectUpdated, function (err, resultUnfiltered) {
callbackResult.exec(err, resultUnfiltered).then(function (result) {
var ids = [];
if (Array.isArray(result)) {
result.forEach(function (resultUnit) {
ids.push(resultUnit.id);
});
} else {
ids.push(result.id);
}
mongoRead(collectionName, {
_id: {
$in: ids
}
}, params).then(function (resultJson) {
return resolve(resultJson);
});
})["catch"](function (err2) {
return reject(err2);
});
});
} catch (errGlobal) {
reject(errGlobal);
}
});
};