summaryrefslogtreecommitdiffstats
path: root/server/lib/external-backends/backends/idoit-backend.js
diff options
context:
space:
mode:
Diffstat (limited to 'server/lib/external-backends/backends/idoit-backend.js')
-rw-r--r--server/lib/external-backends/backends/idoit-backend.js13
1 files changed, 9 insertions, 4 deletions
diff --git a/server/lib/external-backends/backends/idoit-backend.js b/server/lib/external-backends/backends/idoit-backend.js
index 8e1f7d9..6c30891 100644
--- a/server/lib/external-backends/backends/idoit-backend.js
+++ b/server/lib/external-backends/backends/idoit-backend.js
@@ -123,12 +123,17 @@ class IdoitBackend extends ExternalBackends {
if (headers.error) return headers
let bodies = []
- objectIds.forEach(oid => {
- bodies.push(this.getBody('cmdb.object.quickpurge', { 'id': oid, 'apikey': c.apikey }, oid))
- })
+
+ bodies.push(this.getBody('cmdb.object.quickpurge', { 'id': objectIds, 'apikey': c.apikey }, 'batch_quickpurge'))
let deleteRequest = await this.axiosRequest(c.url, bodies, headers)
- return deleteRequest
+ const errorRegex = /(?<=\s#)[0-9]+/g
+
+ const failedDeletions = deleteRequest[0].result.message.match(errorRegex)
+ let result = []
+ for (let failedObjId of failedDeletions) result.push({ error: true, message: `Deletion of object ${failedObjId} was skipped.`, id: failedObjId })
+
+ return result
}
// Function to use the same session for multiple requests