Fix event emitter and viewGroup (#13340)

Emit an even with an [undefined] entity
This commit is contained in:
Paul Rastoin
2025-07-22 13:52:11 +02:00
committed by GitHub
parent 0b5bdf1c93
commit 9d61337396
2 changed files with 15 additions and 6 deletions

View File

@ -73,10 +73,12 @@ export class FieldMetadataRelatedRecordsService {
} }
const valuesToDelete = deleted.map((option) => option.value); const valuesToDelete = deleted.map((option) => option.value);
await viewGroupRepository.delete({ if (valuesToDelete.length > 0) {
fieldMetadataId: newFieldMetadata.id, await viewGroupRepository.delete({
fieldValue: In(valuesToDelete), fieldMetadataId: newFieldMetadata.id,
}); fieldValue: In(valuesToDelete),
});
}
const maxPosition = this.getMaxPosition(view.viewGroups); const maxPosition = this.getMaxPosition(view.viewGroups);
const viewGroupsToCreate = created.map((option, index) => const viewGroupsToCreate = created.map((option, index) =>
@ -89,7 +91,9 @@ export class FieldMetadataRelatedRecordsService {
}), }),
); );
await viewGroupRepository.insert(viewGroupsToCreate); if (viewGroupsToCreate.length > 0) {
await viewGroupRepository.insert(viewGroupsToCreate);
}
for (const { old: oldOption, new: newOption } of updated) { for (const { old: oldOption, new: newOption } of updated) {
const existingViewGroup = view.viewGroups.find( const existingViewGroup = view.viewGroups.find(

View File

@ -2,6 +2,7 @@ import { Injectable } from '@nestjs/common';
import { EventEmitter2 } from '@nestjs/event-emitter'; import { EventEmitter2 } from '@nestjs/event-emitter';
import { ObjectLiteral } from 'typeorm'; import { ObjectLiteral } from 'typeorm';
import { isDefined } from 'twenty-shared/utils';
import { DatabaseEventAction } from 'src/engine/api/graphql/graphql-query-runner/enums/database-event-action'; import { DatabaseEventAction } from 'src/engine/api/graphql/graphql-query-runner/enums/database-event-action';
import { AuthContext } from 'src/engine/core-modules/auth/types/auth-context.type'; import { AuthContext } from 'src/engine/core-modules/auth/types/auth-context.type';
@ -44,7 +45,11 @@ export class WorkspaceEventEmitter {
}) { }) {
const objectMetadataNameSingular = objectMetadataItem.nameSingular; const objectMetadataNameSingular = objectMetadataItem.nameSingular;
const fields = Object.values(objectMetadataItem.fieldsById ?? {}); const fields = Object.values(objectMetadataItem.fieldsById ?? {});
const entityArray = Array.isArray(entities) ? entities : [entities]; const entityArray = isDefined(entities)
? Array.isArray(entities)
? entities
: [entities]
: [];
let events: ( let events: (
| ObjectRecordCreateEvent<T> | ObjectRecordCreateEvent<T>
| ObjectRecordUpdateEvent<T> | ObjectRecordUpdateEvent<T>