summaryrefslogtreecommitdiffstats
path: root/server/lib/external-backends/backendhelper.js
diff options
context:
space:
mode:
Diffstat (limited to 'server/lib/external-backends/backendhelper.js')
-rw-r--r--server/lib/external-backends/backendhelper.js26
1 files changed, 19 insertions, 7 deletions
diff --git a/server/lib/external-backends/backendhelper.js b/server/lib/external-backends/backendhelper.js
index 27f746a..b3c3f21 100644
--- a/server/lib/external-backends/backendhelper.js
+++ b/server/lib/external-backends/backendhelper.js
@@ -126,16 +126,28 @@ async function deleteClients (clientids, backendIds) {
include: ['clientMappings']
})
- backends.forEach(backend => {
+ let deleteResponses = []
+
+ for (let backend of backends) {
const ba = new ExternalBackends()
const instance = ba.getInstance(backend.type)
- var objectsToDelete = []
- backend.clientMappings.forEach(mapping => {
- objectsToDelete.push(mapping.externalId)
- })
+ let objectsToDelete = backend.clientMappings.map(x => x.externalId)
+
// If there are objects to delete -> delete them.
- if (objectsToDelete.length > 0) instance.deleteObjects(backend.credentials, objectsToDelete)
- })
+ if (objectsToDelete.length > 0) {
+ let backendDeleteErrors = await instance.deleteObjects(backend.credentials, objectsToDelete)
+ backendDeleteErrors = backendDeleteErrors.map(errors => ({ ...errors, backendId: backend.id, backendType: backend.type }))
+ deleteResponses = [...deleteResponses, ...backendDeleteErrors]
+
+ for (let err of backendDeleteErrors) {
+ log({
+ category: `ERROR_BACKEND_${err.backendType.toUpperCase()}_OBJECT_DELETION`,
+ description: `[${err.backendType}] Deletion of object ${err.id} (external backend id) in backend ${err.backendType} failed with error: \n ${err.message}`
+ })
+ }
+ }
+ }
+ return deleteResponses
}
async function uploadFiles (clientId, files) {