summaryrefslogtreecommitdiffstats
path: root/server/lib/external-backends
diff options
context:
space:
mode:
authorJannik Schönartz2018-07-17 00:22:55 +0200
committerJannik Schönartz2018-07-17 00:22:55 +0200
commite1d4375f741e5c67e0304c7fda36eda41df4b4c1 (patch)
treeff13e78bf7ae322923b2b6c4f371d41f7655752a /server/lib/external-backends
parent[server/ipxe] Building ipxe with external configs. (diff)
downloadbas-e1d4375f741e5c67e0304c7fda36eda41df4b4c1.tar.gz
bas-e1d4375f741e5c67e0304c7fda36eda41df4b4c1.tar.xz
bas-e1d4375f741e5c67e0304c7fda36eda41df4b4c1.zip
[external-backends] Added API and Frontend module external-backends.
Diffstat (limited to 'server/lib/external-backends')
-rw-r--r--server/lib/external-backends/backends/another-backend.js9
-rw-r--r--server/lib/external-backends/backends/dummy-backend.js9
-rw-r--r--server/lib/external-backends/backends/template-backend.js9
-rw-r--r--server/lib/external-backends/external-backends.js30
4 files changed, 57 insertions, 0 deletions
diff --git a/server/lib/external-backends/backends/another-backend.js b/server/lib/external-backends/backends/another-backend.js
new file mode 100644
index 0000000..9458e1e
--- /dev/null
+++ b/server/lib/external-backends/backends/another-backend.js
@@ -0,0 +1,9 @@
+var ExternalBackends = require('../external-backends.js');
+
+class AnotherBackend extends ExternalBackends {
+ getCredentials() {
+ return [{ type: "text", name: "text 1" }, { type: "text", name: "text 2" }, { type: "password", name: "password 1", show: false}, { type: "password", name: "password 2", show: true}, { type: "password", name: "password 3", show: false}];
+ }
+}
+
+module.exports = AnotherBackend; \ No newline at end of file
diff --git a/server/lib/external-backends/backends/dummy-backend.js b/server/lib/external-backends/backends/dummy-backend.js
new file mode 100644
index 0000000..205eeb1
--- /dev/null
+++ b/server/lib/external-backends/backends/dummy-backend.js
@@ -0,0 +1,9 @@
+var ExternalBackends = require('../external-backends.js');
+
+class DummyBackend extends ExternalBackends {
+ getCredentials() {
+ return [{ type: "switch", name: "switch 1", value: false }, { type: "switch", name: "switch 2", value: false }, { type: "switch", name: "switch 3", value: true }, { type: "select", name: "selection 1", items: ["wasd", "asdf", "qwertz"] }, { type: "select", name: "selection 2", items: ["1", "2", "3"] }];
+ }
+}
+
+module.exports = DummyBackend; \ No newline at end of file
diff --git a/server/lib/external-backends/backends/template-backend.js b/server/lib/external-backends/backends/template-backend.js
new file mode 100644
index 0000000..3271447
--- /dev/null
+++ b/server/lib/external-backends/backends/template-backend.js
@@ -0,0 +1,9 @@
+var ExternalBackends = require('../external-backends.js');
+
+class TemplateBackend extends ExternalBackends {
+ getCredentials() {
+ return [{ type: "text", name: "text test" }, { type: "password", name: "password test", show: true}, { type: "password", name: "password test nr2", show: false}, { type: "switch", name: "bool test", value: false }, { type: "select", name: "selection test", items: ["wasd", "asdf", "qwertz"] }];
+ }
+}
+
+module.exports = TemplateBackend; \ No newline at end of file
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;