"use strict";

var validateConnectionName = function(connectionName){
    if (!connectionName){
        connectionName = global.currentConnectionName ?
            global.currentConnectionName : SharedConstants.DEFAULT_DB_CONNECTION;
    }
    return connectionName;
};

var getDataServicesConfig = function(connectionName){

    var ds =  config.get("dataServices");

    var dbConfig = {};
    if (ds){
        connectionName = validateConnectionName(connectionName);
        dbConfig =  ds[connectionName];
    }

    return dbConfig;

};

module.exports = {
    getConfig : function(conf) {
        var providerName = getDataServicesConfig().providerName;

        if (typeof providerName === 'string') {
            var providerPath = "./" + providerName.toLowerCase() + "/config";

            // this will require the DBConfig of the provider
            return require(providerPath).dbConfig.getConfig;
        } else {
            throw new Error("Database providerName not configured. Please specify the database provider in the providerName value");
        }
    },
    getDataServicesConfig : getDataServicesConfig,
    validateConnectionName :validateConnectionName
};