Make the station worker self contained.
[e-mobility-charging-stations-simulator.git] / src / utils / Configuration.js
index 7fdfbe2d77a0fb360197e403165b1e7d4d0eab0a..9220127ceaad763eaa85daea562cd6632d1b4033 100644 (file)
@@ -1,41 +1,37 @@
-const config = require('../assets/config.json');
+const fs = require('fs');
+const Utils = require('./Utils');
 
 class Configuration {
+  static configurationFile;
+
   // Read the config file
   static getConfig() {
-    return config;
+    if (!Configuration.configurationFile) {
+      Configuration.configurationFile = JSON.parse(fs.readFileSync('./src/assets/config.json', 'utf8'));
+    }
+    return Configuration.configurationFile;
   }
 
   static getStatisticsDisplayInterval() {
     // Read conf
-    return Configuration.getConfig().statisticsDisplayInterval;
+    return Utils.objectHasOwnProperty(Configuration.getConfig(), 'statisticsDisplayInterval') ? Configuration.getConfig().statisticsDisplayInterval : 60;
   }
 
   static getAutoReconnectTimeout() {
     // Read conf
-    return Configuration.getConfig().hasOwnProperty('autoReconnectTimeout') ? Configuration.getConfig().autoReconnectTimeout : 10;
+    return Utils.objectHasOwnProperty(Configuration.getConfig(), 'autoReconnectTimeout') ? Configuration.getConfig().autoReconnectTimeout : 10;
   }
 
   static getAutoReconnectMaxRetries() {
     // Read conf
-    return Configuration.getConfig().hasOwnProperty('autoReconnectMaxRetries') ? Configuration.getConfig().autoReconnectMaxRetries : -1;
+    return Utils.objectHasOwnProperty(Configuration.getConfig(), 'autoReconnectMaxRetries') ? Configuration.getConfig().autoReconnectMaxRetries : -1;
   }
 
-  static getChargingStationTemplateURLs() {
+  static getStationTemplateURLs() {
     // Read conf
     return Configuration.getConfig().stationTemplateURLs;
   }
 
-  static getChargingStationTemplate() {
-    // Read conf
-    return Configuration.getConfig().stationTemplate;
-  }
-
-  static getNumberofChargingStation() {
-    // Read conf
-    return (Configuration.getConfig().numberOfStation ? Configuration.getConfig().numberOfStation : 0);
-  }
-
   static useWorkerPool() {
     return Configuration.getConfig().useWorkerPool;
   }
@@ -45,25 +41,19 @@ class Configuration {
   }
 
   static getConsoleLog() {
-    return (Configuration.getConfig().hasOwnProperty('consoleLog') ? Configuration.getConfig().consoleLog : false);
-  }
-
-  static getLogFile() {
-    return (Configuration.getConfig().hasOwnProperty('logFile') ? Configuration.getConfig().logFile : 'combined.log');
+    return Utils.objectHasOwnProperty(Configuration.getConfig(), 'consoleLog') ? Configuration.getConfig().consoleLog : false;
   }
 
-  static getErrorFile() {
-    return (Configuration.getConfig().hasOwnProperty('errorFile') ? Configuration.getConfig().errorFile : 'error.log');
+  static getLogLevel() {
+    return Utils.objectHasOwnProperty(Configuration.getConfig(), 'logLevel') ? Configuration.getConfig().logLevel : 'info';
   }
 
-  static getMeterValueInterval() {
-    // Read conf
-    return (Configuration.getChargingStationConfiguration().hasOwnProperty('meterValueInterval') ? Configuration.getChargingStationConfiguration().meterValueInterval * 1000 : 60000);
+  static getLogFile() {
+    return Utils.objectHasOwnProperty(Configuration.getConfig(), 'logFile') ? Configuration.getConfig().logFile : 'combined.log';
   }
 
-  static getAutomaticTransactionConfiguration() {
-    // Read conf
-    return Configuration.getChargingStationTemplate().AutomaticTransactionGenerator;
+  static getErrorFile() {
+    return Utils.objectHasOwnProperty(Configuration.getConfig(), 'errorFile') ? Configuration.getConfig().errorFile : 'error.log';
   }
 
   static getSupervisionURLs() {
@@ -71,24 +61,8 @@ class Configuration {
     return Configuration.getConfig().supervisionURLs;
   }
 
-  static getEquallySupervisionDistribution() {
-    return Configuration.getConfig().distributeStationToTenantEqually;
-  }
-
-  static getChargingStationConfiguration() {
-    return (Configuration.getChargingStationTemplate().hasOwnProperty('Configuration') ? Configuration.getChargingStationTemplate().Configuration : {});
-  }
-
-  static getChargingStationAuthorizationFile() {
-    return (Configuration.getChargingStationTemplate().hasOwnProperty('authorizationFile') ? Configuration.getChargingStationTemplate().authorizationFile : '');
-  }
-
-  static getChargingStationConnectors() {
-    return Configuration.getChargingStationTemplate().Connectors;
-  }
-
-  static getChargingStationConnector(number) {
-    return Configuration.getChargingStationTemplate().Connectors[number];
+  static getDistributeStationToTenantEqually() {
+    return Utils.objectHasOwnProperty(Configuration.getConfig(), 'distributeStationToTenantEqually') ? Configuration.getConfig().distributeStationToTenantEqually : true;
   }
 }