* emit event * create queue and listener * filter participants with role 'from' * create job * Add job to job module * Refactoring * Refactor contact creation in CreateCompanyAndContactService * update job * wip * add getByHandlesWithoutPersonIdAndWorkspaceMemberId to calendar event attendee repository * refactoring * refactoring * Revert "refactoring" This reverts commit e5434f0b871e45447227aa8d55ba5af381c3ff1c. * fix nest imports * add await * fix contact creation condition * emit contact creation event after calendar-full-sync * add await * add missing transactionManager * calendar event attendees personId update is working * messageParticipant and calendarEventAttendee update is working as intended * rename module * fix lodash import * add test * update package.json
37 lines
1.1 KiB
TypeScript
37 lines
1.1 KiB
TypeScript
import { Injectable } from '@nestjs/common';
|
|
|
|
import { MessageQueueJob } from 'src/engine/integrations/message-queue/interfaces/message-queue-job.interface';
|
|
|
|
import { CreateCompanyAndContactService } from 'src/modules/connected-account/auto-companies-and-contacts-creation/services/create-company-and-contact.service';
|
|
|
|
export type CreateCompanyAndContactJobData = {
|
|
workspaceId: string;
|
|
connectedAccountHandle: string;
|
|
contactsToCreate: {
|
|
displayName: string;
|
|
handle: string;
|
|
}[];
|
|
};
|
|
|
|
@Injectable()
|
|
export class CreateCompanyAndContactJob
|
|
implements MessageQueueJob<CreateCompanyAndContactJobData>
|
|
{
|
|
constructor(
|
|
private readonly createCompanyAndContactService: CreateCompanyAndContactService,
|
|
) {}
|
|
|
|
async handle(data: CreateCompanyAndContactJobData): Promise<void> {
|
|
const { workspaceId, connectedAccountHandle, contactsToCreate } = data;
|
|
|
|
await this.createCompanyAndContactService.createCompaniesAndContactsAndUpdateParticipants(
|
|
connectedAccountHandle,
|
|
contactsToCreate.map((contact) => ({
|
|
handle: contact.handle,
|
|
displayName: contact.displayName,
|
|
})),
|
|
workspaceId,
|
|
);
|
|
}
|
|
}
|