/*!
 * Adds dynamically-updated docs as /explorer
 */
var path = require('path');
var loopback = require('loopback');
var swagger = require('loopback/node_modules/strong-remoting/ext/swagger');
var express = require('loopback/node_modules/express');
var STATIC_ROOT = path.join(__dirname, 'public');

module.exports = explorer;

/**
 * Example usage:
 *
 * var explorer = require('loopback-explorer');
 * app.use('/explorer', explorer(app));
 */

function explorer(loopbackApplication, options) {
  var options = options || {};
  var remotes = loopbackApplication.remotes();
  swagger(remotes, options);

  var app = express();
  app.get('/config.json', function(req, res) {
    res.send({
      discoveryUrl: (options.basePath || '') + '/swagger/resources'
    });
  });
  app.use(loopback.static(STATIC_ROOT));
  return app;
}