Improve from in send email action (#11581)
## Before <img width="701" alt="image" src="https://github.com/user-attachments/assets/77184775-5b06-4777-9276-1338cc457070" /> ## After <img width="705" alt="image" src="https://github.com/user-attachments/assets/9528eb0e-54c3-452c-8297-27796ccc75a1" />
This commit is contained in:
@ -18,6 +18,7 @@ import { GmailGetMessageListService } from 'src/modules/messaging/message-import
|
||||
import { GmailGetMessagesService } from 'src/modules/messaging/message-import-manager/drivers/gmail/services/gmail-get-messages.service';
|
||||
import { GmailHandleErrorService } from 'src/modules/messaging/message-import-manager/drivers/gmail/services/gmail-handle-error.service';
|
||||
import { MessageParticipantManagerModule } from 'src/modules/messaging/message-participant-manager/message-participant-manager.module';
|
||||
import { OAuth2ClientProvider } from 'src/modules/messaging/message-import-manager/drivers/gmail/providers/oauth2-client.provider';
|
||||
|
||||
@Module({
|
||||
imports: [
|
||||
@ -36,6 +37,7 @@ import { MessageParticipantManagerModule } from 'src/modules/messaging/message-p
|
||||
],
|
||||
providers: [
|
||||
GmailClientProvider,
|
||||
OAuth2ClientProvider,
|
||||
GmailGetHistoryService,
|
||||
GmailFetchByBatchService,
|
||||
GmailGetMessagesService,
|
||||
@ -46,6 +48,7 @@ import { MessageParticipantManagerModule } from 'src/modules/messaging/message-p
|
||||
GmailGetMessagesService,
|
||||
GmailGetMessageListService,
|
||||
GmailClientProvider,
|
||||
OAuth2ClientProvider,
|
||||
],
|
||||
})
|
||||
export class MessagingGmailDriverModule {}
|
||||
|
||||
@ -0,0 +1,28 @@
|
||||
import { Injectable } from '@nestjs/common';
|
||||
|
||||
import { oauth2_v2, google } from 'googleapis';
|
||||
|
||||
import { OAuth2ClientManagerService } from 'src/modules/connected-account/oauth2-client-manager/services/oauth2-client-manager.service';
|
||||
import { ConnectedAccountWorkspaceEntity } from 'src/modules/connected-account/standard-objects/connected-account.workspace-entity';
|
||||
|
||||
@Injectable()
|
||||
export class OAuth2ClientProvider {
|
||||
constructor(
|
||||
private readonly oAuth2ClientManagerService: OAuth2ClientManagerService,
|
||||
) {}
|
||||
|
||||
public async getOAuth2Client(
|
||||
connectedAccount: Pick<
|
||||
ConnectedAccountWorkspaceEntity,
|
||||
'provider' | 'refreshToken'
|
||||
>,
|
||||
): Promise<oauth2_v2.Oauth2> {
|
||||
const oAuth2Client =
|
||||
await this.oAuth2ClientManagerService.getOAuth2Client(connectedAccount);
|
||||
|
||||
return google.oauth2({
|
||||
version: 'v2',
|
||||
auth: oAuth2Client,
|
||||
});
|
||||
}
|
||||
}
|
||||
@ -7,6 +7,7 @@ import { ConnectedAccountProvider } from 'twenty-shared/types';
|
||||
import { ConnectedAccountWorkspaceEntity } from 'src/modules/connected-account/standard-objects/connected-account.workspace-entity';
|
||||
import { GmailClientProvider } from 'src/modules/messaging/message-import-manager/drivers/gmail/providers/gmail-client.provider';
|
||||
import { MicrosoftClientProvider } from 'src/modules/messaging/message-import-manager/drivers/microsoft/providers/microsoft-client.provider';
|
||||
import { OAuth2ClientProvider } from 'src/modules/messaging/message-import-manager/drivers/gmail/providers/oauth2-client.provider';
|
||||
|
||||
interface SendMessageInput {
|
||||
body: string;
|
||||
@ -18,6 +19,7 @@ interface SendMessageInput {
|
||||
export class MessagingSendMessageService {
|
||||
constructor(
|
||||
private readonly gmailClientProvider: GmailClientProvider,
|
||||
private readonly oAuth2ClientProvider: OAuth2ClientProvider,
|
||||
private readonly microsoftClientProvider: MicrosoftClientProvider,
|
||||
) {}
|
||||
|
||||
@ -30,7 +32,17 @@ export class MessagingSendMessageService {
|
||||
const gmailClient =
|
||||
await this.gmailClientProvider.getGmailClient(connectedAccount);
|
||||
|
||||
const oAuth2Client =
|
||||
await this.oAuth2ClientProvider.getOAuth2Client(connectedAccount);
|
||||
|
||||
const { data } = await oAuth2Client.userinfo.get();
|
||||
|
||||
const fromEmail = data.email;
|
||||
|
||||
const fromName = data.name;
|
||||
|
||||
const message = [
|
||||
`From: "${fromName}" <${fromEmail}>`,
|
||||
`To: ${sendMessageInput.to}`,
|
||||
`Subject: ${sendMessageInput.subject}`,
|
||||
'MIME-Version: 1.0',
|
||||
|
||||
Reference in New Issue
Block a user