summaryrefslogtreecommitdiffstats
path: root/server/lib/external-backends/backendhelper.js
diff options
context:
space:
mode:
authorJannik Schönartz2019-03-15 05:49:30 +0100
committerJannik Schönartz2019-03-15 05:49:30 +0100
commitc2c64dafe7f2a4fc2accd7ee5f87d382886bbedb (patch)
tree08ac85332cdff8af7e682add94223dcc2bc29e60 /server/lib/external-backends/backendhelper.js
parentmerge (diff)
downloadbas-c2c64dafe7f2a4fc2accd7ee5f87d382886bbedb.tar.gz
bas-c2c64dafe7f2a4fc2accd7ee5f87d382886bbedb.tar.xz
bas-c2c64dafe7f2a4fc2accd7ee5f87d382886bbedb.zip
[external-backeds] Big idoit rework, to match the updated api
Diffstat (limited to 'server/lib/external-backends/backendhelper.js')
-rw-r--r--server/lib/external-backends/backendhelper.js48
1 files changed, 21 insertions, 27 deletions
diff --git a/server/lib/external-backends/backendhelper.js b/server/lib/external-backends/backendhelper.js
index ae1af3d..bb95844 100644
--- a/server/lib/external-backends/backendhelper.js
+++ b/server/lib/external-backends/backendhelper.js
@@ -15,22 +15,11 @@ module.exports = {
const instance = ba.getInstance(backend.type)
var tmpClient = JSON.parse(JSON.stringify(client))
- // If the client id is set we need to get the external id.
- if (client.id) {
- var exid = backend.mappedClients.find(y => y.id === parseInt(client.id))
- if (exid) tmpClient.id = exid.backend_x_client.externalId
- } else {
- // If we don't already have the client id, we need to check if there is already a client with the provided uuid in the backend.
- var cl = await instance.getClient(backend.credentials, { uuid: tmpClient.uuid })
- if (cl.succes) {
- tmpClient.id = cl.data
- }
- }
-
+ // Add client has no support for update anymore.. use update method.. maybe call conflict here
// Convert the parent group id to the external backend parentId.
// if (client.parentId) {
if (client.parents) {
- var elements = backend.mappedGroups.filter(x => client.parents.includes(x.id))
+ const elements = backend.mappedGroups.filter(x => client.parents.includes(x.id))
if (elements.length > 1) {
// Conflict occured!
const conflict = await db.conflict.create({ description: 'Multiple parents found' })
@@ -43,13 +32,15 @@ module.exports = {
conflict.createObject({ objectType: 'GROUP', objectId: element.id })
}
} else if (elements.length === 1) tmpClient['parentId'] = elements[0].backend_x_group.externalId
-
- // var element = backend.mappedGroups.find(x => x.id === parseInt(client.parentId))
- // if (element) tmpClient['parentId'] = element.backend_x_group.externalId
}
- var addClient = await instance.addClient(backend.credentials, tmpClient)
+ let addClient = await instance.addClient(backend.credentials, tmpClient)
addClient.backendId = backend.id
+ if (addClient.succes) {
+ // If the object was created we need to make the objectid / external id mapping.
+ const clientDb = await db.client.findOne({ where: { id: client.id } })
+ backend.addMappedClients(clientDb, { through: { externalId: addClient.id, externalType: addClient.type } })
+ }
result.push(addClient)
}
return result
@@ -57,11 +48,11 @@ module.exports = {
updateClient: async function (client) {
// Get all backends and call addClient for each instance.
- var backends = await db.backend.findAll({ include: ['mappedGroups', 'mappedClients'] })
- var result = []
+ const backends = await db.backend.findAll({ include: ['mappedGroups', 'mappedClients'] })
+ let result = []
- for (var b in backends) {
- var backend = backends[b]
+ for (let b in backends) {
+ const backend = backends[b]
const ba = new ExternalBackends()
const instance = ba.getInstance(backend.type)
var tmpClient = JSON.parse(JSON.stringify(client))
@@ -76,7 +67,7 @@ module.exports = {
if (element) tmpClient['parentId'] = element.backend_x_group.externalId
}
- var updateClient = await instance.updateClient(backend.credentials, tmpClient)
+ let updateClient = await instance.updateClient(backend.credentials, tmpClient)
updateClient.backendId = backend.id
result.push(updateClient)
}
@@ -100,15 +91,18 @@ module.exports = {
},
uploadFiles: async function (clientId, files) {
- var backends = await db.backend.findAll({ include: ['mappedClients'] })
- for (var b in backends) {
- var backend = backends[b]
+ const backends = await db.backend.findAll({ include: ['mappedClients'] })
+ let results = []
+ for (let b in backends) {
+ const backend = backends[b]
const ba = new ExternalBackends()
const instance = ba.getInstance(backend.type)
- var exid = backend.mappedClients.find(y => y.id === parseInt(clientId))
+ let exid = backend.mappedClients.find(y => y.id === parseInt(clientId))
if (exid) exid = exid.backend_x_client.externalId
- instance.uploadFiles(backend.credentials, exid, files)
+ results.push(await instance.uploadFiles(backend.credentials, exid, files))
}
+ return results
}
+
}