diff --git a/api/src/nlp/controllers/nlp-entity.controller.ts b/api/src/nlp/controllers/nlp-entity.controller.ts index 1deb0c83..6e439ba5 100644 --- a/api/src/nlp/controllers/nlp-entity.controller.ts +++ b/api/src/nlp/controllers/nlp-entity.controller.ts @@ -222,6 +222,21 @@ export class NlpEntityController extends BaseController< if (!ids?.length) { throw new BadRequestException('No IDs provided for deletion.'); } + + const { count: builtinCount } = await this.filterCount({ + _id: { $in: ids }, + builtin: true, + }); + + if (builtinCount) { + this.logger.warn( + `Unable to delete NLP entities with provided IDs: ${ids}`, + ); + throw new NotFoundException( + 'Cannot delete builtin NLP entities because at least one is built-in', + ); + } + const deleteResult = await this.nlpEntityService.deleteMany({ _id: { $in: ids }, }); diff --git a/frontend/src/components/nlp/components/NlpEntity.tsx b/frontend/src/components/nlp/components/NlpEntity.tsx index 83b7c959..f039170f 100644 --- a/frontend/src/components/nlp/components/NlpEntity.tsx +++ b/frontend/src/components/nlp/components/NlpEntity.tsx @@ -267,6 +267,7 @@ const NlpEntity = () => { !row.builtin} checkboxSelection onRowSelectionModelChange={handleSelectionChange} />