All files / happn-service-mongo-2/lib config.js

60% Statements 18/30
45% Branches 9/20
100% Functions 3/3
61.54% Lines 16/26

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 391x       1x 3x 3x 3x 3x 3x 3x 3x   3x     1x 3x 3x 3x                             3x     1x  
var mongoUrl = require('parse-mongo-url');
 
function Config() {}
 
Config.prototype.parse = function(config) {
  var parsed = JSON.parse(JSON.stringify(config));
  Eif (!parsed.database) parsed.database = 'happn';
  Eif (!parsed.collection)
    parsed.collection = parsed.opts && parsed.opts.collection ? parsed.opts.collection : 'happn';
  Iif (!parsed.url) parsed.url = 'mongodb://127.0.0.1:27017';
  Eif (!parsed.opts) parsed.opts = {};
  parsed.url = this.getDBConnectionUrl(parsed.url, parsed.database);
 
  return parsed;
};
 
Config.prototype.getDBConnectionUrl = function(connUrl, databaseName) {
  var url = connUrl;
  var mongoUrlParts = mongoUrl(connUrl);
  Iif (databaseName != null && databaseName != mongoUrlParts.dbName) {
    // we need to add the db name
    url = 'mongodb://';
    var servers = [];
    if (mongoUrlParts.auth)
      url += mongoUrlParts.auth.user + ':' + mongoUrlParts.auth.password + '@';
    for (var i in mongoUrlParts.servers) {
      servers[i] = mongoUrlParts.servers[i].host + ':' + mongoUrlParts.servers[i].port;
    }
 
    url += servers.join(',');
    url += '/';
    url += databaseName;
    if (connUrl.indexOf('?') !== -1) url += connUrl.substring(connUrl.indexOf('?'));
  }
  return url;
};
 
module.exports = Config;