Add fetch connected account job (#3313)

* Add fetch connected account job

* add featureFlag check
This commit is contained in:
Weiko
2024-01-08 18:24:39 +01:00
committed by GitHub
parent 71034849d3
commit ea2cb8938f
12 changed files with 200 additions and 101 deletions

View File

@ -0,0 +1,42 @@
import { Injectable } from '@nestjs/common';
import { MessageQueueJob } from 'src/integrations/message-queue/interfaces/message-queue-job.interface';
import { EnvironmentService } from 'src/integrations/environment/environment.service';
import { RefreshAccessTokenService } from 'src/workspace/messaging/services/refresh-access-token.service';
import { FetchWorkspaceMessagesService } from 'src/workspace/messaging/services/fetch-workspace-messages.service';
export type FetchAllMessagesFromConnectedAccountJobData = {
workspaceId: string;
connectedAccountId: string;
};
@Injectable()
export class FetchAllMessagesFromConnectedAccountJob
implements MessageQueueJob<FetchAllMessagesFromConnectedAccountJobData>
{
constructor(
private readonly environmentService: EnvironmentService,
private readonly refreshAccessTokenService: RefreshAccessTokenService,
private readonly fetchWorkspaceMessagesService: FetchWorkspaceMessagesService,
) {}
async handle(
data: FetchAllMessagesFromConnectedAccountJobData,
): Promise<void> {
console.log(
`fetching messages for workspace ${data.workspaceId} and account ${
data.connectedAccountId
} with ${this.environmentService.getMessageQueueDriverType()}`,
);
await this.refreshAccessTokenService.refreshAndSaveAccessToken(
data.workspaceId,
data.connectedAccountId,
);
await this.fetchWorkspaceMessagesService.fetchConnectedAccountThreads(
data.workspaceId,
data.connectedAccountId,
);
}
}

View File

@ -1,22 +0,0 @@
import { Injectable } from '@nestjs/common';
import { MessageQueueJob } from 'src/integrations/message-queue/interfaces/message-queue-job.interface';
import { EnvironmentService } from 'src/integrations/environment/environment.service';
export type FetchMessagesJobData = {
workspaceId: string;
};
@Injectable()
export class FetchMessagesJob implements MessageQueueJob<FetchMessagesJobData> {
constructor(private readonly environmentService: EnvironmentService) {}
async handle(data: FetchMessagesJobData): Promise<void> {
console.log(
`fetching messages for workspace ${
data.workspaceId
} with ${this.environmentService.getMessageQueueDriverType()}`,
);
}
}