Refactor Calendar into functional sub modules <img width="437" alt="image" src="https://github.com/twentyhq/twenty/assets/12035771/d9de3285-a226-4fe8-b3ef-2d8a21def2a5"> --------- Co-authored-by: bosiraphael <raphael.bosi@gmail.com>
45 lines
1.5 KiB
TypeScript
45 lines
1.5 KiB
TypeScript
import { Scope } from '@nestjs/common';
|
|
|
|
import { Process } from 'src/engine/integrations/message-queue/decorators/process.decorator';
|
|
import { Processor } from 'src/engine/integrations/message-queue/decorators/processor.decorator';
|
|
import { MessageQueue } from 'src/engine/integrations/message-queue/message-queue.constants';
|
|
import { CalendarEventParticipantService } from 'src/modules/calendar/calendar-event-participant-manager/services/calendar-event-participant.service';
|
|
import { MessagingMessageParticipantService } from 'src/modules/messaging/common/services/messaging-message-participant.service';
|
|
|
|
export type MatchParticipantJobData = {
|
|
workspaceId: string;
|
|
email: string;
|
|
personId?: string;
|
|
workspaceMemberId?: string;
|
|
};
|
|
|
|
@Processor({
|
|
queueName: MessageQueue.messagingQueue,
|
|
scope: Scope.REQUEST,
|
|
})
|
|
export class MatchParticipantJob {
|
|
constructor(
|
|
private readonly messageParticipantService: MessagingMessageParticipantService,
|
|
private readonly calendarEventParticipantService: CalendarEventParticipantService,
|
|
) {}
|
|
|
|
@Process(MatchParticipantJob.name)
|
|
async handle(data: MatchParticipantJobData): Promise<void> {
|
|
const { workspaceId, email, personId, workspaceMemberId } = data;
|
|
|
|
await this.messageParticipantService.matchMessageParticipants(
|
|
workspaceId,
|
|
email,
|
|
personId,
|
|
workspaceMemberId,
|
|
);
|
|
|
|
await this.calendarEventParticipantService.matchCalendarEventParticipants(
|
|
workspaceId,
|
|
email,
|
|
personId,
|
|
workspaceMemberId,
|
|
);
|
|
}
|
|
}
|