From c2c64dafe7f2a4fc2accd7ee5f87d382886bbedb Mon Sep 17 00:00:00 2001 From: Jannik Schönartz Date: Fri, 15 Mar 2019 04:49:30 +0000 Subject: [external-backeds] Big idoit rework, to match the updated api --- server/lib/external-backends/backendhelper.js | 48 ++++++++++++--------------- 1 file changed, 21 insertions(+), 27 deletions(-) (limited to 'server/lib/external-backends/backendhelper.js') 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 } + } -- cgit v1.2.3-55-g7522