summaryrefslogtreecommitdiffstats
path: root/server/lib/external-backends/external-backends.js
diff options
context:
space:
mode:
Diffstat (limited to 'server/lib/external-backends/external-backends.js')
-rw-r--r--server/lib/external-backends/external-backends.js30
1 files changed, 30 insertions, 0 deletions
diff --git a/server/lib/external-backends/external-backends.js b/server/lib/external-backends/external-backends.js
new file mode 100644
index 0000000..5ab2adf
--- /dev/null
+++ b/server/lib/external-backends/external-backends.js
@@ -0,0 +1,30 @@
+/* global __appdir */
+const fs = require('fs');
+const path = require('path');
+
+class ExternalBackends {
+ getBackends() {
+ var files = fs.readdirSync(path.join(__appdir, 'lib', 'external-backends', 'backends'));
+ return files;
+ }
+
+ getCredentials() {
+ return "If this method gets called the backend class has NOT IMPLEMENTED the getCredentials method!";
+ }
+
+ getInstance(type) {
+ const bList = this.getBackends();
+ const bType = type + '-backend.js';
+
+ // Check if it's a valid backend type.
+ if (bList.indexOf(bType) == -1) {
+ console.log(bType + " is not a valid backend type.");
+ return null;
+ }
+
+ const backend = new (require(path.join(__appdir, 'lib', 'external-backends', 'backends', bType)))();
+ return backend;
+ }
+}
+
+module.exports = ExternalBackends;