From 62bd2b1708106e70fd77ea9d73cf8cf9a2f32a8c Mon Sep 17 00:00:00 2001 From: Marc-Roig Date: Tue, 9 Aug 2022 17:44:57 +0200 Subject: [PATCH] trigger webhook on bulk delete --- .../strapi/lib/services/entity-service/index.js | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/packages/core/strapi/lib/services/entity-service/index.js b/packages/core/strapi/lib/services/entity-service/index.js index b11b9ba8bb..31d13ca141 100644 --- a/packages/core/strapi/lib/services/entity-service/index.js +++ b/packages/core/strapi/lib/services/entity-service/index.js @@ -276,7 +276,22 @@ const createDefaultImplementation = ({ strapi, db, eventHub, entityValidator }) // select / populate const query = transformParamsToQuery(uid, wrappedParams); - return db.query(uid).deleteMany(query); + const entitiesToDelete = await db.query(uid).findMany({ + ...query, + }); + + if (!entitiesToDelete.length) { + return null; + } + + // Delete all the entities components first and then the entities + await Promise.all(entitiesToDelete.map(entity => deleteComponents(uid, entity))); + const result = await db.query(uid).deleteMany(query); + + // Trigger the webhook events. One for each entity + await Promise.all(entitiesToDelete.map(entity => this.emitEvent(uid, ENTRY_DELETE, entity))); + + return result; }, load(uid, entity, field, params = {}) {