From 0a77a376fd18b7e8368b00f0cddb79306a646984 Mon Sep 17 00:00:00 2001 From: Weiko Date: Thu, 11 Jan 2024 20:05:08 +0100 Subject: [PATCH] Import messages after connected-account creation (#3389) --- .../google-gmail-auth.controller.ts | 2 +- .../auth/services/google-gmail.service.ts | 22 ++++++++++++++++++- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/packages/twenty-server/src/core/auth/controllers/google-gmail-auth.controller.ts b/packages/twenty-server/src/core/auth/controllers/google-gmail-auth.controller.ts index 997bf504e..9a2bb1e4f 100644 --- a/packages/twenty-server/src/core/auth/controllers/google-gmail-auth.controller.ts +++ b/packages/twenty-server/src/core/auth/controllers/google-gmail-auth.controller.ts @@ -35,7 +35,7 @@ export class GoogleGmailAuthController { const { workspaceMemberId, workspaceId } = await this.tokenService.verifyTransientToken(transientToken); - this.googleGmailService.saveConnectedAccount({ + await this.googleGmailService.saveConnectedAccount({ handle: email, workspaceMemberId: workspaceMemberId, workspaceId: workspaceId, diff --git a/packages/twenty-server/src/core/auth/services/google-gmail.service.ts b/packages/twenty-server/src/core/auth/services/google-gmail.service.ts index a8fcfe167..5b035131e 100644 --- a/packages/twenty-server/src/core/auth/services/google-gmail.service.ts +++ b/packages/twenty-server/src/core/auth/services/google-gmail.service.ts @@ -1,16 +1,24 @@ -import { Injectable } from '@nestjs/common'; +import { Inject, Injectable } from '@nestjs/common'; import { v4 } from 'uuid'; import { DataSourceService } from 'src/metadata/data-source/data-source.service'; import { TypeORMService } from 'src/database/typeorm/typeorm.service'; import { SaveConnectedAccountInput } from 'src/core/auth/dto/save-connected-account'; +import { + FetchAllMessagesFromConnectedAccountJobData, + FetchAllMessagesFromConnectedAccountJob, +} from 'src/workspace/messaging/jobs/fetch-all-messages-from-connected-account.job'; +import { MessageQueue } from 'src/integrations/message-queue/message-queue.constants'; +import { MessageQueueService } from 'src/integrations/message-queue/services/message-queue.service'; @Injectable() export class GoogleGmailService { constructor( private readonly dataSourceService: DataSourceService, private readonly typeORMService: TypeORMService, + @Inject(MessageQueue.messagingQueue) + private readonly messageQueueService: MessageQueueService, ) {} async saveConnectedAccount( @@ -65,6 +73,18 @@ export class GoogleGmailService { ); }); + await this.messageQueueService.add( + FetchAllMessagesFromConnectedAccountJob.name, + { + workspaceId, + connectedAccountId, + }, + { + id: connectedAccountId, + retryLimit: 2, + }, + ); + return; } }