UNPKG

nodejs-rigorous

Version:
54 lines (45 loc) 1.48 kB
"use strict"; 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); } }); };