From 92dbd8c9960c365df1f3b80b2bc96c11b0fde9b3 Mon Sep 17 00:00:00 2001 From: hexastack Date: Mon, 7 Oct 2024 12:26:30 +0100 Subject: [PATCH] fix: handle preDelete criteria --- .../chat/repositories/category.repository.ts | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/api/src/chat/repositories/category.repository.ts b/api/src/chat/repositories/category.repository.ts index 74e134e0..6147b63d 100644 --- a/api/src/chat/repositories/category.repository.ts +++ b/api/src/chat/repositories/category.repository.ts @@ -37,7 +37,7 @@ export class CategoryRepository extends BaseRepository { * @param criteria - The filter criteria for finding blocks to delete. */ async preDelete( - _query: Query< + query: Query< DeleteResult, Document, unknown, @@ -46,11 +46,18 @@ export class CategoryRepository extends BaseRepository { >, criteria: TFilterQuery, ) { - const associatedBlocks = await this.blockService.findOne({ - category: criteria._id, - }); - if (associatedBlocks) { - throw new ForbiddenException(`Category have blocks associated to it`); + criteria = query.getQuery(); + const ids = Array.isArray(criteria._id) ? criteria._id : [criteria._id]; + + for (const id of ids) { + const associatedBlocks = await this.blockService.findOne({ + category: id, + }); + if (associatedBlocks) { + throw new ForbiddenException( + `Category ${id} has blocks associated with it`, + ); + } } } }