Fix wrong check (#15179)

as title

---------

Co-authored-by: Charles Bochet <charles@twenty.com>
This commit is contained in:
martmull
2025-10-21 13:05:59 +02:00
committed by GitHub
parent e58668003d
commit f5f23a9d31
4 changed files with 29 additions and 31 deletions
@@ -60,22 +60,6 @@ export class UpsertTimelineActivityFromInternalEvent {
}
}
const formattedEvents = workspaceEventBatch.events.map((event) => {
if ('diff' in event.properties && event.properties.diff) {
return {
...event,
properties: {
diff: event.properties.diff,
},
};
}
return event;
});
await this.timelineActivityService.upsertEvents({
...workspaceEventBatch,
events: formattedEvents,
});
await this.timelineActivityService.upsertEvents(workspaceEventBatch);
}
}
@@ -9,7 +9,9 @@ import { TwentyORMGlobalManager } from 'src/engine/twenty-orm/twenty-orm-global.
import { type TimelineActivityPayload } from 'src/modules/timeline/types/timeline-activity-payload';
type TimelineActivityPayloadWorkspaceIdAndObjectSingularName = {
payloads: TimelineActivityPayload[];
payloads: (Omit<TimelineActivityPayload, 'properties'> & {
properties: Pick<TimelineActivityPayload['properties'], 'diff'>;
})[];
workspaceId: string;
objectSingularName: string;
};
@@ -31,16 +33,22 @@ export class TimelineActivityRepository {
payloads,
});
const payloadsWithDiff = payloads.filter(({ properties }) => {
const isDiffEmpty =
properties.diff !== null &&
properties.diff &&
Object.keys(properties.diff).length === 0;
const payloadsWithDiff = payloads
.filter(({ properties }) => {
const isDiffEmpty =
properties.diff !== null &&
properties.diff &&
Object.keys(properties.diff).length === 0;
return !isDiffEmpty;
});
return !isDiffEmpty;
})
.map(({ properties, ...rest }) => ({
...rest,
properties: isDefined(properties.diff) ? { diff: properties.diff } : {},
}));
const payloadsToInsert: TimelineActivityPayload[] = [];
const payloadsToInsert: TimelineActivityPayloadWorkspaceIdAndObjectSingularName['payloads'] =
[];
for (const payload of payloadsWithDiff) {
const recentTimelineActivity = recentTimelineActivities.find(
@@ -12,6 +12,8 @@ import { parseEventNameOrThrow } from 'src/engine/workspace-event-emitter/utils/
import { TimelineActivityRepository } from 'src/modules/timeline/repositories/timeline-activity.repository';
import { TimelineActivityWorkspaceEntity } from 'src/modules/timeline/standard-objects/timeline-activity.workspace-entity';
import { type TimelineActivityPayload } from 'src/modules/timeline/types/timeline-activity-payload';
import { NoteWorkspaceEntity } from 'src/modules/note/standard-objects/note.workspace-entity';
import { TaskWorkspaceEntity } from 'src/modules/task/standard-objects/task.workspace-entity';
type ActivityType = 'note' | 'task';
@@ -92,7 +94,7 @@ export class TimelineActivityService {
if (objectSingularName === 'note') {
const noteEventsTimelineActivities =
await this.computeTimelineActivityPayloadsForActivities({
events,
events: events as ObjectRecordBaseEvent<NoteWorkspaceEntity>[],
activityType: 'note',
workspaceId,
objectMetadata,
@@ -114,7 +116,7 @@ export class TimelineActivityService {
if (objectSingularName === 'task') {
const taskEventsTimelineActivities =
await this.computeTimelineActivityPayloadsForActivities({
events,
events: events as ObjectRecordBaseEvent<TaskWorkspaceEntity>[],
activityType: 'task',
workspaceId,
objectMetadata,
@@ -161,7 +163,9 @@ export class TimelineActivityService {
name,
workspaceId,
objectMetadata,
}: WorkspaceEventBatch<ObjectRecordBaseEvent> & {
}: WorkspaceEventBatch<
ObjectRecordBaseEvent<NoteWorkspaceEntity | TaskWorkspaceEntity>
> & {
activityType: ActivityType;
}): Promise<TimelineActivityPayload[]> {
if (!isDefined(workspaceId)) {
@@ -214,7 +218,7 @@ export class TimelineActivityService {
return;
}
const activityTitle = (event.properties.after as ObjectRecord)?.title;
const activityTitle = event.properties.diff?.title?.after;
const activityId = event.recordId;
if (!isDefined(activityTitle)) {
@@ -1,5 +1,7 @@
import { type ObjectRecordBaseEvent } from 'src/engine/core-modules/event-emitter/types/object-record.base.event';
export type TimelineActivityPayload = {
properties: Record<string, unknown>;
properties: ObjectRecordBaseEvent['properties'];
linkedObjectMetadataId?: string;
linkedRecordId?: string;
linkedRecordCachedName?: string;