From 22bd093ba34fd40ba6eefcb234572e1e173bc4af Mon Sep 17 00:00:00 2001 From: Jannik Schönartz Date: Tue, 9 Mar 2021 21:36:29 +0000 Subject: [server/external-backends] Add error logging of object deletion in the external backends --- server/api/clients.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'server/api') 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' -- cgit v1.2.3-55-g7522