message channel change 2 (#15269)

Co-authored-by: Charles Bochet <charles@twenty.com>
This commit is contained in:
neo773
2025-10-24 16:39:22 +02:00
committed by GitHub
co-authored by Charles Bochet
parent a937090b5f
commit e37b8b61ba
13 changed files with 309 additions and 50 deletions
@@ -1,9 +1,11 @@
import { Injectable } from '@nestjs/common';
import { isDefined } from 'twenty-shared/utils';
import { v4 } from 'uuid';
import { type WorkspaceEntityManager } from 'src/engine/twenty-orm/entity-manager/workspace-entity-manager';
import { TwentyORMGlobalManager } from 'src/engine/twenty-orm/twenty-orm-global.manager';
import { type ConnectedAccountWorkspaceEntity } from 'src/modules/connected-account/standard-objects/connected-account.workspace-entity';
import {
MessageChannelSyncStage,
MessageChannelSyncStatus,
@@ -11,6 +13,7 @@ import {
MessageChannelVisibility,
type MessageChannelWorkspaceEntity,
} from 'src/modules/messaging/common/standard-objects/message-channel.workspace-entity';
import { SyncMessageFoldersService } from 'src/modules/messaging/message-folder-manager/services/sync-message-folders.service';
export type CreateMessageChannelInput = {
workspaceId: string;
@@ -24,6 +27,7 @@ export type CreateMessageChannelInput = {
export class CreateMessageChannelService {
constructor(
private readonly twentyORMGlobalManager: TwentyORMGlobalManager,
private readonly syncMessageFoldersService: SyncMessageFoldersService,
) {}
async createMessageChannel(
@@ -37,6 +41,16 @@ export class CreateMessageChannelService {
manager,
} = input;
const connectedAccountRepository =
await this.twentyORMGlobalManager.getRepositoryForWorkspace<ConnectedAccountWorkspaceEntity>(
workspaceId,
'connectedAccount',
);
const connectedAccount = await connectedAccountRepository.findOne({
where: { id: connectedAccountId },
});
const messageChannelRepository =
await this.twentyORMGlobalManager.getRepositoryForWorkspace<MessageChannelWorkspaceEntity>(
workspaceId,
@@ -58,6 +72,15 @@ export class CreateMessageChannelService {
manager,
);
if (isDefined(connectedAccount)) {
await this.syncMessageFoldersService.syncMessageFolders({
workspaceId,
messageChannelId: newMessageChannel.id,
connectedAccount,
manager,
});
}
return newMessageChannel.id;
}
}