Files
twenty_crm/packages/twenty-server/src/modules/connected-account/email-alias-manager/services/email-alias-manager.service.ts
bosiraphael 28387003d2 Fix contact creation and rename email aliases to handle aliases (#6176)
Fix contact creation (linked to #6162) and rename email aliases to
handle aliases
2024-07-09 17:49:03 +02:00

42 lines
1.5 KiB
TypeScript

import { Injectable } from '@nestjs/common';
import { InjectObjectMetadataRepository } from 'src/engine/object-metadata-repository/object-metadata-repository.decorator';
import { GoogleEmailAliasManagerService } from 'src/modules/connected-account/email-alias-manager/drivers/google/google-email-alias-manager.service';
import { ConnectedAccountRepository } from 'src/modules/connected-account/repositories/connected-account.repository';
import { ConnectedAccountWorkspaceEntity } from 'src/modules/connected-account/standard-objects/connected-account.workspace-entity';
@Injectable()
export class EmailAliasManagerService {
constructor(
@InjectObjectMetadataRepository(ConnectedAccountWorkspaceEntity)
private readonly connectedAccountRepository: ConnectedAccountRepository,
private readonly googleEmailAliasManagerService: GoogleEmailAliasManagerService,
) {}
public async refreshHandleAliases(
connectedAccount: ConnectedAccountWorkspaceEntity,
workspaceId: string,
) {
let handleAliases: string[];
switch (connectedAccount.provider) {
case 'google':
handleAliases =
await this.googleEmailAliasManagerService.getHandleAliases(
connectedAccount,
);
break;
default:
throw new Error(
`Email alias manager for provider ${connectedAccount.provider} is not implemented`,
);
}
await this.connectedAccountRepository.updateHandleAliases(
handleAliases,
connectedAccount.id,
workspaceId,
);
}
}