var service = { mget: require('../service/mget') };
var logger = require('pelias-logger').get('api:controller:place');

function setup( config, backend ){

  // allow overriding of dependencies
  backend = backend || require('../src/backend');

  function controller( req, res, next ){

    // do not run controller when a request
    // validation error has occurred.
    if( req.errors && req.errors.length ){
      return next();
    }

    var query = req.clean.ids.map( function(id) {
      return {
        _index: config.indexName,
        _type: id.layers,
        _id: id.id
      };
    });

    logger.debug( '[ES req]', query );

    service.mget( backend, query, function( err, docs ) {
      console.log('err:' + err);

      // error handler
      if( err ){
        req.errors.push( err );
      }
      // set response data
      else {
        res.data = docs;
      }
      logger.debug('[ES response]', docs);

      next();
    });
  }

  return controller;
}

module.exports = setup;