summaryrefslogtreecommitdiffstats
path: root/server/api/clients.js
diff options
context:
space:
mode:
Diffstat (limited to 'server/api/clients.js')
-rw-r--r--server/api/clients.js9
1 files changed, 7 insertions, 2 deletions
diff --git a/server/api/clients.js b/server/api/clients.js
index 1a5c274..66b6a3f 100644
--- a/server/api/clients.js
+++ b/server/api/clients.js
@@ -52,7 +52,6 @@ router.getAsync('/:id', async (req, res) => {
router.postAsync(['', '/:id'], async (req, res) => {
if (req.query.delete !== undefined && req.query.delete !== 'false') {
if (!Array.isArray(req.body.ids)) return HttpResponse.invalidBodyValue('ids', 'an array').send(res)
- await backendHelper.deleteClients(req.body.ids, req.body.backendIds)
const user = await db.user.findOne({ where: { id: req.user.id } })
// Only need to log batch request if there is more than one client to delete.
@@ -65,6 +64,10 @@ router.postAsync(['', '/:id'], async (req, res) => {
})
}
+ // Delete objects from the selected external backends
+ const deletedBackendObjects = await backendHelper.deleteClients(req.body.ids, req.body.backendIds)
+ const externalDeletionErrors = deletedBackendObjects.filter(x => x.error !== undefined)
+
let deletionCounter = 0
// Delete every client on its own, to get a better log
for (let index in req.body.ids) {
@@ -97,7 +100,9 @@ router.postAsync(['', '/:id'], async (req, res) => {
userId: req.user.id
})
}
- HttpResponse.successBatch('deleted', 'client', deletionCounter).send(res)
+
+ if (externalDeletionErrors.length <= 0) HttpResponse.successBatch('deleted', 'client', deletionCounter).send(res)
+ else HttpResponse.warningBatch('deleted', 'client', deletionCounter, req.body.ids.length, externalDeletionErrors).send(res)
} else {
let client
let action = 'updated'