From 9f1818aef753fbe9ae4e9a54231f620598188a9e Mon Sep 17 00:00:00 2001 From: bosiraphael <71827178+bosiraphael@users.noreply.github.com> Date: Thu, 25 Apr 2024 17:39:56 +0200 Subject: [PATCH] 4748 create updated listener on blocklist (#5145) Closes #4748 --- .../listeners/calendar-blocklist.listener.ts | 27 +++++++++++++++++-- .../listeners/messaging-blocklist.listener.ts | 23 ++++++++++++++++ 2 files changed, 48 insertions(+), 2 deletions(-) diff --git a/packages/twenty-server/src/modules/calendar/listeners/calendar-blocklist.listener.ts b/packages/twenty-server/src/modules/calendar/listeners/calendar-blocklist.listener.ts index b2259ba0e..ead863694 100644 --- a/packages/twenty-server/src/modules/calendar/listeners/calendar-blocklist.listener.ts +++ b/packages/twenty-server/src/modules/calendar/listeners/calendar-blocklist.listener.ts @@ -3,6 +3,7 @@ import { OnEvent } from '@nestjs/event-emitter'; import { ObjectRecordCreateEvent } from 'src/engine/integrations/event-emitter/types/object-record-create.event'; import { ObjectRecordDeleteEvent } from 'src/engine/integrations/event-emitter/types/object-record-delete.event'; +import { ObjectRecordUpdateEvent } from 'src/engine/integrations/event-emitter/types/object-record-update.event'; import { MessageQueue } from 'src/engine/integrations/message-queue/message-queue.constants'; import { MessageQueueService } from 'src/engine/integrations/message-queue/services/message-queue.service'; import { @@ -23,10 +24,10 @@ export class CalendarBlocklistListener { ) {} @OnEvent('blocklist.created') - handleCreatedEvent( + async handleCreatedEvent( payload: ObjectRecordCreateEvent, ) { - this.messageQueueService.add( + await this.messageQueueService.add( BlocklistItemDeleteCalendarEventsJob.name, { workspaceId: payload.workspaceId, @@ -48,4 +49,26 @@ export class CalendarBlocklistListener { }, ); } + + @OnEvent('blocklist.updated') + async handleUpdatedEvent( + payload: ObjectRecordUpdateEvent, + ) { + await this.messageQueueService.add( + BlocklistItemDeleteCalendarEventsJob.name, + { + workspaceId: payload.workspaceId, + blocklistItemId: payload.recordId, + }, + ); + + await this.messageQueueService.add( + BlocklistReimportCalendarEventsJob.name, + { + workspaceId: payload.workspaceId, + workspaceMemberId: payload.properties.after.workspaceMember.id, + handle: payload.properties.before.handle, + }, + ); + } } diff --git a/packages/twenty-server/src/modules/messaging/listeners/messaging-blocklist.listener.ts b/packages/twenty-server/src/modules/messaging/listeners/messaging-blocklist.listener.ts index 9bacaccbd..03cd5e7c8 100644 --- a/packages/twenty-server/src/modules/messaging/listeners/messaging-blocklist.listener.ts +++ b/packages/twenty-server/src/modules/messaging/listeners/messaging-blocklist.listener.ts @@ -14,6 +14,7 @@ import { BlocklistItemDeleteMessagesJobData, BlocklistItemDeleteMessagesJob, } from 'src/modules/messaging/jobs/blocklist-item-delete-messages.job'; +import { ObjectRecordUpdateEvent } from 'src/engine/integrations/event-emitter/types/object-record-update.event'; @Injectable() export class MessagingBlocklistListener { @@ -48,4 +49,26 @@ export class MessagingBlocklistListener { }, ); } + + @OnEvent('blocklist.updated') + async handleUpdatedEvent( + payload: ObjectRecordUpdateEvent, + ) { + await this.messageQueueService.add( + BlocklistItemDeleteMessagesJob.name, + { + workspaceId: payload.workspaceId, + blocklistItemId: payload.recordId, + }, + ); + + await this.messageQueueService.add( + BlocklistReimportMessagesJob.name, + { + workspaceId: payload.workspaceId, + workspaceMemberId: payload.properties.after.workspaceMember.id, + handle: payload.properties.before.handle, + }, + ); + } }