UNPKG

node-rigorous

Version:
84 lines (65 loc) 3.11 kB
"use strict"; function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } var mongoose = require('mongoose'); var _require = require('../../../factory/RigorousError/index'), RigorousError = _require.RigorousError, errorTypes = _require.errorTypes; var patch = require('./patch'); var helper_format_checker = require('../../../helpers/h_format_checker'); /** * params.virtualReturnedFields = [{ path: 'owner', select: { xx: 1, yy: 1 } }] */ module.exports = /*#__PURE__*/ function () { var _ref = _asyncToGenerator( /*#__PURE__*/ regeneratorRuntime.mark(function _callee(modelName, query, params) { var selectAttributesReturned, virtualReturnedFields, op, resultOne, resultJson; return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: _context.prev = 0; if (!helper_format_checker.isNil(params)) { _context.next = 3; break; } throw new RigorousError(errorTypes.RESPONSE_ERROR_OPERATION_OP_PARAMS_MISSING); case 3: if (!(helper_format_checker.isNil(params.selectAttributesReturned) && helper_format_checker.isObjectEmpty(params.selectAttributesReturned))) { _context.next = 5; break; } throw new RigorousError(errorTypes.RESPONSE_ERROR_OPERATION); case 5: selectAttributesReturned = params.selectAttributesReturned; virtualReturnedFields = params.virtualReturnedFields; op = mongoose.model(modelName).findOne(query).select(selectAttributesReturned); if (virtualReturnedFields) { virtualReturnedFields.forEach(function (virtualFieldReturned) { op.populate(virtualFieldReturned); }); } _context.next = 11; return op.exec(); case 11: resultOne = _context.sent; resultJson = patch.leanWithId(resultOne); return _context.abrupt("return", resultJson); case 16: _context.prev = 16; _context.t0 = _context["catch"](0); throw new RigorousError(errorTypes.RESPONSE_ERROR_OPERATION, _context.t0); case 19: case "end": return _context.stop(); } } }, _callee, null, [[0, 16]]); })); return function (_x, _x2, _x3) { return _ref.apply(this, arguments); }; }();