From 75a3a3e8fa85a591c23c84638a74398767bce66e Mon Sep 17 00:00:00 2001 From: Jannik Schönartz Date: Wed, 21 Nov 2018 23:02:23 +0000 Subject: [external-backends] Fix: Delete clients in the backend is now working properly. --- server/api/clients.js | 6 ++++-- server/api/registrations.js | 10 +++++++--- server/lib/external-backends/backendhelper.js | 9 ++++----- 3 files changed, 15 insertions(+), 10 deletions(-) diff --git a/server/api/clients.js b/server/api/clients.js index 0fbb7af..a436213 100644 --- a/server/api/clients.js +++ b/server/api/clients.js @@ -42,7 +42,9 @@ module.exports.post = { // delete clients delete: function (req, res) { - db.client.destroy({ where: { id: req.body.ids } }).then(count => { res.send({ count }) }) - backendHelper.deleteClients(req.body.ids) + db.client.destroy({ where: { id: req.body.ids } }).then(count => { + backendHelper.deleteClients() + res.send({ count }) + }) } } diff --git a/server/api/registrations.js b/server/api/registrations.js index 96d50f0..6897dc9 100644 --- a/server/api/registrations.js +++ b/server/api/registrations.js @@ -12,14 +12,18 @@ const backendHelper = require(path.join(__appdir, 'lib', 'external-backends', 'b /* * TODO: CURRENTLY TEST FUNCTION */ -router.get('/', (req, res) => { - db.backend.findOne({ where: { id: 1 } }).then(result => { +noAuthRouter.get('/', (req, res) => { + backendHelper.deleteClients().then(r => { + res.send(r) + }) + /* + db.backend.findOne({ where: { id: 1 } }).then(result => { const b = new ExternalBackends() const instance = b.getInstance(result.type) instance.getClient(result.credentials, {}).then(result => { res.status(200).send(result) }) - }) + })*/ }) /* diff --git a/server/lib/external-backends/backendhelper.js b/server/lib/external-backends/backendhelper.js index 0905c48..89a9658 100644 --- a/server/lib/external-backends/backendhelper.js +++ b/server/lib/external-backends/backendhelper.js @@ -39,16 +39,15 @@ module.exports = { }) }, - deleteClients: function (objectIds) { + deleteClients: function () { // Get all backends and call deleteClient for each instance. - db.backend.findAll({ include: ['mappedClients'] }).then(backends => { + db.backend.findAll({ include: ['clientMappings'] }).then(backends => { backends.forEach(backend => { const ba = new ExternalBackends() const instance = ba.getInstance(backend.type) var objectsToDelete = [] - objectIds.forEach(oid => { - var element = backend.mappedClients.find(x => x.id === parseInt(oid)) - if (element) objectsToDelete.push(element.backend_x_client.externalId) + backend.clientMappings.forEach(mapping => { + if (mapping.clientId === null) objectsToDelete.push(mapping.externalId) }) // If there are objects to delete -> delete them. if (objectsToDelete.length > 0) instance.deleteObjects(backend.credentials, objectsToDelete) -- cgit v1.2.3-55-g7522