Use absolute path from the current directory for configuration file.
[e-mobility-charging-stations-simulator.git] / src / utils / Configuration.js
1 const fs = require('fs');
2
3 class Configuration {
4 static configurationFile;
5
6 // Read the config file
7 static getConfig() {
8 if (!Configuration.configurationFile) {
9 Configuration.configurationFile = JSON.parse(fs.readFileSync('./src/assets/config.json', 'utf8'));
10 }
11 return Configuration.configurationFile;
12 }
13
14 static getStatisticsDisplayInterval() {
15 // Read conf
16 return Configuration.getConfig().statisticsDisplayInterval;
17 }
18
19 static getAutoReconnectTimeout() {
20 // Read conf
21 return Configuration.getConfig().hasOwnProperty('autoReconnectTimeout') ? Configuration.getConfig().autoReconnectTimeout : 10;
22 }
23
24 static getAutoReconnectMaxRetries() {
25 // Read conf
26 return Configuration.getConfig().hasOwnProperty('autoReconnectMaxRetries') ? Configuration.getConfig().autoReconnectMaxRetries : -1;
27 }
28
29 static getChargingStationTemplateURLs() {
30 // Read conf
31 return Configuration.getConfig().stationTemplateURLs;
32 }
33
34 static getChargingStationTemplate() {
35 // Read conf
36 return Configuration.getConfig().stationTemplate;
37 }
38
39 static getNumberofChargingStation() {
40 // Read conf
41 return (Configuration.getConfig().numberOfStation ? Configuration.getConfig().numberOfStation : 0);
42 }
43
44 static useWorkerPool() {
45 return Configuration.getConfig().useWorkerPool;
46 }
47
48 static getWorkerPoolSize() {
49 return Configuration.getConfig().workerPoolSize;
50 }
51
52 static getConsoleLog() {
53 return (Configuration.getConfig().hasOwnProperty('consoleLog') ? Configuration.getConfig().consoleLog : false);
54 }
55
56 static getLogFile() {
57 return (Configuration.getConfig().hasOwnProperty('logFile') ? Configuration.getConfig().logFile : 'combined.log');
58 }
59
60 static getErrorFile() {
61 return (Configuration.getConfig().hasOwnProperty('errorFile') ? Configuration.getConfig().errorFile : 'error.log');
62 }
63
64 static getMeterValueInterval() {
65 // Read conf
66 return (Configuration.getChargingStationConfiguration().hasOwnProperty('meterValueInterval') ? Configuration.getChargingStationConfiguration().meterValueInterval * 1000 : 60000);
67 }
68
69 static getAutomaticTransactionConfiguration() {
70 // Read conf
71 return Configuration.getChargingStationTemplate().AutomaticTransactionGenerator;
72 }
73
74 static getSupervisionURLs() {
75 // Read conf
76 return Configuration.getConfig().supervisionURLs;
77 }
78
79 static getEquallySupervisionDistribution() {
80 return Configuration.getConfig().distributeStationToTenantEqually;
81 }
82
83 static getChargingStationConfiguration() {
84 return (Configuration.getChargingStationTemplate().hasOwnProperty('Configuration') ? Configuration.getChargingStationTemplate().Configuration : {});
85 }
86
87 static getChargingStationAuthorizationFile() {
88 return (Configuration.getChargingStationTemplate().hasOwnProperty('authorizationFile') ? Configuration.getChargingStationTemplate().authorizationFile : '');
89 }
90
91 static getChargingStationConnectors() {
92 return Configuration.getChargingStationTemplate().Connectors;
93 }
94
95 static getChargingStationConnector(number) {
96 return Configuration.getChargingStationTemplate().Connectors[number];
97 }
98 }
99
100 module.exports = Configuration;