nodejs-rigorous
Version:
Rigorous Framework
54 lines (45 loc) • 1.48 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');
module.exports = function (collectionName, queryRead, attributeObjectUpdated, params) {
return new Promise(function (resolve, reject) {
try {
var op = mongoose.model(collectionName).findOneAndUpdate(queryRead, attributeObjectUpdated, {
"new": true
}).select({
_id: 1
}); // Update
op.exec(function (err, resultUnfiltered) {
if (resultUnfiltered === null) {
reject(new RigorousError(errorTypes.RESPONSE_ERROR_DATA_NOT_FOUND));
}
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);
});
return null;
});
} catch (errGlobal) {
reject(errGlobal);
}
});
};