michaelleeallen/reducto

View on GitHub
lib/iterator.js

Summary

Maintainability
A
0 mins
Test Coverage
const _ = require('lodash');
const batch = require('./batch');

/**
 * Allows a list of objects from one service call to be used as
 * context for downstream service calls.
 * @param {object} config - route config
 * @param {object} services - services config
 * @returns {function} middleware
 */
module.exports = (config, services) => (req, res, next) => {
  var list = _.get(res.locals, config.key, []);
  var _services = list.map(obj => Object.assign({ type: 'service', context: obj }, config.service));
  batch({services: _services}, services)(req, res, next);
};