From 873a1406958b7b6c2e74ce168c7ad9be0756c73c Mon Sep 17 00:00:00 2001
From: Rudolf Copi Eckelberg <rce16@inf.ufpr.br>
Date: Thu, 6 Oct 2016 16:18:49 -0300
Subject: [PATCH] Config file style changed

---
 .gitignore                      |  1 -
 config.json.example             | 68 +++++++++++++++++++++++++++++++++
 config/config.json.example      | 21 ----------
 config/test_config.json.example | 21 ----------
 gulpfile.babel.js               |  6 +--
 src/libs/app.js                 |  2 +-
 src/libs/config.js              | 24 ++----------
 src/libs/db/monet.js            | 12 +++---
 src/libs/db/mongoose.js         |  2 +-
 src/libs/log.js                 |  2 +-
 src/libs/models/simulation.js   |  1 -
 src/libs/routes/simulation.js   |  1 -
 src/server.js                   |  4 +-
 13 files changed, 84 insertions(+), 81 deletions(-)
 create mode 100644 config.json.example
 delete mode 100644 config/config.json.example
 delete mode 100644 config/test_config.json.example

diff --git a/.gitignore b/.gitignore
index 136ccb71..979717eb 100644
--- a/.gitignore
+++ b/.gitignore
@@ -20,4 +20,3 @@ build/*
 
 config.json
 docs/
-test_config.json
diff --git a/config.json.example b/config.json.example
new file mode 100644
index 00000000..67f5a4f1
--- /dev/null
+++ b/config.json.example
@@ -0,0 +1,68 @@
+{
+    "development":
+    {
+        "port": 3000,
+        "ip": "127.0.0.1",
+        "debug" : true,
+        "monetdb": {
+            "host": "simcaqdb1",
+            "port": 50000,
+            "dbname": "simcaq_dev",
+            "user": "monetdb",
+            "password":"monetdb",
+            "nrConnections": "16"
+        },
+        "mongodb" : {
+            "uri": "mongodb://localhost/users"
+        },
+        "default": {
+            "api": {
+                "version" : "v1"
+            }
+        }
+    },
+    "test":
+    {
+        "port": 3000,
+        "ip": "127.0.0.1",
+        "debug" : true,
+        "monetdb": {
+            "host": "simcaqdb1",
+            "port": 50000,
+            "dbname": "simcaq_dev",
+            "user": "monetdb",
+            "password":"monetdb",
+            "nrConnections": "16"
+        },
+        "mongodb" : {
+            "uri": "mongodb://localhost/test_users"
+        },
+        "default": {
+            "api": {
+                "version" : "v1"
+            }
+        }
+    },
+    "production":
+    {
+        "port": 3000,
+        "ip": "127.0.0.1",
+        "debug" : true,
+        "monetdb": {
+            "host": "simcaqdb1",
+            "port": 50000,
+            "dbname": "simcaq_dev",
+            "user": "monetdb",
+            "password":"monetdb",
+            "nrConnections": "16"
+        },
+        "mongodb" : {
+            "uri": "mongodb://localhost/users"
+        },
+        "default": {
+            "api": {
+                "version" : "v1"
+            }
+        }
+    }
+}
diff --git a/config/config.json.example b/config/config.json.example
deleted file mode 100644
index 136ee928..00000000
--- a/config/config.json.example
+++ /dev/null
@@ -1,21 +0,0 @@
-{
-    "port": 3000,
-    "ip": "127.0.0.1",
-    "debug" : false,
-    "monetdb": {
-        "host": "simcaqdb1",
-        "port": 50000,
-        "dbname": "simcaq_dev",
-        "user": "monetdb",
-        "password":"monetdb",
-        "nrConnections": "16"
-    },
-    "mongodb" : {
-        "uri": "mongodb://localhost/users"
-    },
-    "default": {
-        "api": {
-            "version" : "v1"
-        }
-    }
-}
diff --git a/config/test_config.json.example b/config/test_config.json.example
deleted file mode 100644
index 0a8d9146..00000000
--- a/config/test_config.json.example
+++ /dev/null
@@ -1,21 +0,0 @@
-{
-    "port": 3000,
-    "ip": "127.0.0.1",
-    "debug" : true,
-    "monetdb": {
-        "host": "simcaqdb1",
-        "port": 50000,
-        "dbname": "simcaq_dev",
-        "user": "monetdb",
-        "password":"monetdb",
-        "nrConnections": "16"
-    },
-    "mongodb" : {
-        "uri": "mongodb://localhost/test_users"
-    },
-    "default": {
-        "api": {
-            "version" : "v1"
-        }
-    }
-}
diff --git a/gulpfile.babel.js b/gulpfile.babel.js
index 66bc5000..1f23dd9e 100644
--- a/gulpfile.babel.js
+++ b/gulpfile.babel.js
@@ -46,10 +46,8 @@ gulp.task('compile', () => {
         .pipe(gulp.dest('build'));  // move compiled files to build directory
 
     // copy configuration file to build directory
-    gulp.src('config/config.json')
-        .pipe(gulp.dest('build/config'));
-    gulp.src('config/test_config.json')
-        .pipe(gulp.dest('build/config'));
+    gulp.src('config.json')
+        .pipe(gulp.dest('build'));
 });
 
 gulp.task('build', ['compile']);
diff --git a/src/libs/app.js b/src/libs/app.js
index bed5deb7..a1b3ff01 100644
--- a/src/libs/app.js
+++ b/src/libs/app.js
@@ -12,7 +12,7 @@ const log = require(`${libs}/log`)(module);
 
 process.env.NODE_ENV = process.env.NODE_ENV || 'development';
 const config = require(`${libs}/config`);
-const cache = require('apicache').options({ debug: config.get('debug') }).middleware;
+const cache = require('apicache').options({ debug: config.debug }).middleware;
 
 const app = express();
 
diff --git a/src/libs/config.js b/src/libs/config.js
index d61eff99..2c07d19e 100644
--- a/src/libs/config.js
+++ b/src/libs/config.js
@@ -1,23 +1,5 @@
-const nconf = require('nconf');
+let conf = require(`${process.cwd()}/config.json`);
 
-const CONFIG_DIR = `config`
-let config_file;
+conf = conf[process.env.NODE_ENV];
 
-switch(process.env.NODE_ENV) {
-    case 'development':
-        config_file = `${CONFIG_DIR}/config.json`;
-        break;
-    case 'test':
-        config_file = `${CONFIG_DIR}/test_config.json`;
-        break;
-    case 'production':
-        config_file = `${CONFIG_DIR}/config.json`;
-        break;
-}
-
-// Exports the config.json as an object with get functions
-nconf.argv()
-    .env()
-    .file({ file: `${process.cwd()}/${config_file}` });
-
-module.exports = nconf;
+module.exports = conf;
diff --git a/src/libs/db/monet.js b/src/libs/db/monet.js
index dd7e620a..d19fb37d 100644
--- a/src/libs/db/monet.js
+++ b/src/libs/db/monet.js
@@ -6,16 +6,16 @@ const config = require(`${libs}/config`);
 
 // Connection options
 const poolOptions = {
-    nrConnections: config.get('monetdb:nrConnections'),
+    nrConnections: config.monetdb.nrConnections,
 };
 
 // Configuration options
 const options = {
-    host: config.get('monetdb:host'),
-    port: config.get('monetdb:port'),
-    dbname: config.get('monetdb:dbname'),
-    user: config.get('monetdb:user'),
-    password: config.get('monetdb:password'),
+    host: config.monetdb.host,
+    port: config.monetdb.port,
+    dbname: config.monetdb.dbname,
+    user: config.monetdb.user,
+    password: config.monetdb.password,
 };
 
 // Connection singleton
diff --git a/src/libs/db/mongoose.js b/src/libs/db/mongoose.js
index b1a078fd..8571b993 100644
--- a/src/libs/db/mongoose.js
+++ b/src/libs/db/mongoose.js
@@ -8,7 +8,7 @@ const mongoose = require('mongoose');
 
 module.exports = () => {
     // Get mongodb URI (ip and port) in config file
-    const mongoUri = config.get('mongodb:uri');
+    const mongoUri = config.mongodb.uri;
     log.debug(`Connecting to MongDB on URI ${mongoUri}`);
     // Connection singleton
     const db = mongoose.connect(mongoUri);
diff --git a/src/libs/log.js b/src/libs/log.js
index ee975b8d..1cf59931 100644
--- a/src/libs/log.js
+++ b/src/libs/log.js
@@ -47,7 +47,7 @@ function logger(module) {
         ],
         exitOnError: false,
     });
-    if (!config.get('debug')) {
+    if (!config.debug) {
         log.remove('debug-log');
     }
     return log;
diff --git a/src/libs/models/simulation.js b/src/libs/models/simulation.js
index b2bfe828..a445c280 100644
--- a/src/libs/models/simulation.js
+++ b/src/libs/models/simulation.js
@@ -1,7 +1,6 @@
 const mongoose = require('mongoose')
 
 const libs = `${process.cwd()}/libs`;
-const config = require(`${libs}/config`);
 const log = require(`${libs}/log`)(module);
 
 const Schema = mongoose.Schema;
diff --git a/src/libs/routes/simulation.js b/src/libs/routes/simulation.js
index 9b97e7bb..30aa6b5a 100644
--- a/src/libs/routes/simulation.js
+++ b/src/libs/routes/simulation.js
@@ -6,7 +6,6 @@ const libs = `${process.cwd()}/libs`;
 
 
 const log = require(`${libs}/log`)(module);
-const config = require(`${libs}/config`);
 
 const squel = require('squel');
 
diff --git a/src/server.js b/src/server.js
index d9e37cac..ea8de70e 100644
--- a/src/server.js
+++ b/src/server.js
@@ -9,10 +9,10 @@ const log = require(`${libs}/log`)(module);
 const app = require(`${libs}/app`);
 
 // Set default port: first environment variable PORT, then configuration and last 3000
-app.set('port', process.env.PORT || config.get('port') || 3000);
+app.set('port', process.env.PORT || config.port || 3000);
 
 // Set default ip: first environment variable IOP, then configuration and last '127.0.0.1'
-app.set('ip', process.env.IP || config.get('ip') || '127.0.0.1');
+app.set('ip', process.env.IP || config.ip || '127.0.0.1');
 
 const server = app.listen(app.get('port'), () => {
     log.info(`Express server listening on port ${server.address().port}`);
-- 
GitLab