summaryrefslogtreecommitdiffstats
path: root/server/lib/external-backends/external-backends.js
diff options
context:
space:
mode:
authorJannik Schönartz2018-08-05 03:24:49 +0200
committerJannik Schönartz2018-08-05 03:24:49 +0200
commitfb7727d1c0ee0a93376773943436779e27f60ba8 (patch)
tree08192340d691ed63a62c6dcf6044a95afe349061 /server/lib/external-backends/external-backends.js
parentfixed eslint (diff)
downloadbas-fb7727d1c0ee0a93376773943436779e27f60ba8.tar.gz
bas-fb7727d1c0ee0a93376773943436779e27f60ba8.tar.xz
bas-fb7727d1c0ee0a93376773943436779e27f60ba8.zip
[external-backends] Added comments for the API functions and in the external-backend prototype file. Added iDoIT method to get a list of all objects.
Diffstat (limited to 'server/lib/external-backends/external-backends.js')
-rw-r--r--server/lib/external-backends/external-backends.js54
1 files changed, 51 insertions, 3 deletions
diff --git a/server/lib/external-backends/external-backends.js b/server/lib/external-backends/external-backends.js
index be32c13..e01a15c 100644
--- a/server/lib/external-backends/external-backends.js
+++ b/server/lib/external-backends/external-backends.js
@@ -3,16 +3,34 @@ const fs = require('fs')
const path = require('path')
class ExternalBackends {
+ /*
+ * Returns a list of all backends which have a .js file.
+ */
getBackends () {
var files = fs.readdirSync(path.join(__appdir, 'lib', 'external-backends', 'backends'))
return files
}
+ /*
+ * Returns the credential structure / fields, defined in the backends.
+ *
+ * If type === switch there can be child elements in the elements attribute.
+ * Those elements are only shown, if the switch is set to true.
+ * [{ type: 'text', id: 1, name: '<NAME>', icon: '<ICON_NAME>' },
+ * { type: 'password', id: 2, name: '<NAME>', icon: '<ICON_NAME>' },
+ * { type: 'switch', id: 3, name: '<NAME>', icon: '<ICON_NAME>' , elements: [ { type: ... } ] },
+ * { type: 'select', id: 4, name: '<NAME>', icon: '<ICON_NAME>' }, ...]
+ */
getCredentials () {
console.log('If this method gets called the backend class has NOT IMPLEMENTED the getCredentials method!')
return null
}
+ /*
+ * type: <BACKEND_TYPE>
+ *
+ * Returns the instance of a given backend type.
+ */
getInstance (type) {
const bList = this.getBackends()
const bType = type + '-backend.js'
@@ -27,16 +45,46 @@ class ExternalBackends {
return backend
}
+ /* Returns an empty array [] if the backends doesn't have the function implemented.
+ *
+ * return: ['<SYNC_TYPE>', ...]
+ */
getSyncTypes () {
return []
}
+ /*
+ * credendtials: <BACKEND_CREDENTIALS>
+ *
+ * Returns a list of all objects in the backend.
+ */
+ async getObjects (credendtials) {
+ return { status: 'NOT_IMPLEMENTED_EXCEPTION', error: 'The provided backend does not have a getObjects method' }
+ }
+
+ /*
+ * credendtials: <BACKEND_CREDENTIALS>
+ * oid: <OBJECT_ID>
+ *
+ * Call the API of the backend and returns the information to the object including a list of childs.
+ */
+ async getObject (credentials, oid) {
+ return { status: 'NOT_IMPLEMENTED_EXCEPTION', error: 'The provided backend does not have a getObject method' }
+ }
+
+ /*
+ * Checks the connection of a given backend.
+ *
+ * return: { success: <boolean>, status: '<STATUS_CODE_IF_ERROR>', error: '<ERROR_MESSAGE>' }
+ */
async checkConnection (backend) {
- console.log('If this method gets called the backend class has NOT IMPLEMENTED the checkConnection method!')
- return null
+ return { success: false, status: 'NOT_IMPLEMENTED_EXCEPTION', error: 'The provided backend does not have a checkConnection method' }
}
- // Return an empty array [] if the backends doesn't have such a function.
+ /* Returns an empty array [] if the backends doesn't have such a function.
+ *
+ * return: [{id: <id>, title: <title>}, ...]
+ */
async getObjectTypes (credentials) {
return []
}