Stop emitting update event if before===after (#11004)

as title
This commit is contained in:
martmull
2025-03-19 10:49:21 +01:00
committed by GitHub
parent ca9c070945
commit 7921ee5216

View File

@ -2,6 +2,7 @@ import { Injectable } from '@nestjs/common';
import { InjectRepository } from '@nestjs/typeorm'; import { InjectRepository } from '@nestjs/typeorm';
import { Repository } from 'typeorm'; import { Repository } from 'typeorm';
import deepEqual from 'deep-equal';
import { WorkflowExecutor } from 'src/modules/workflow/workflow-executor/interfaces/workflow-executor.interface'; import { WorkflowExecutor } from 'src/modules/workflow/workflow-executor/interfaces/workflow-executor.interface';
@ -156,30 +157,31 @@ export class UpdateRecordWorkflowAction implements WorkflowExecutor {
objectMetadataItemWithFieldsMaps, objectMetadataItemWithFieldsMaps,
); );
await repository.update(workflowActionInput.objectRecordId, {
...objectRecordFormatted,
});
const updatedObjectRecord = { const updatedObjectRecord = {
...previousObjectRecord, ...previousObjectRecord,
...objectRecordWithFilteredFields, ...objectRecordWithFilteredFields,
}; };
this.workspaceEventEmitter.emitDatabaseBatchEvent({ if (!deepEqual(updatedObjectRecord, previousObjectRecord)) {
objectMetadataNameSingular: workflowActionInput.objectName, await repository.update(workflowActionInput.objectRecordId, {
action: DatabaseEventAction.UPDATED, ...objectRecordFormatted,
events: [ });
{ this.workspaceEventEmitter.emitDatabaseBatchEvent({
recordId: previousObjectRecord.id, objectMetadataNameSingular: workflowActionInput.objectName,
objectMetadata, action: DatabaseEventAction.UPDATED,
properties: { events: [
before: previousObjectRecord, {
after: updatedObjectRecord, recordId: previousObjectRecord.id,
objectMetadata,
properties: {
before: previousObjectRecord,
after: updatedObjectRecord,
},
}, },
}, ],
], workspaceId,
workspaceId, });
}); }
return { return {
result: updatedObjectRecord, result: updatedObjectRecord,