Bettertyping (#10725)
To get better at catching errors on providers (It will ease also my coming PR to send microsoft messages using workflow)
This commit is contained in:
@ -1,5 +1,7 @@
|
||||
import { Injectable } from '@nestjs/common';
|
||||
|
||||
import { ConnectedAccountProvider } from 'twenty-shared';
|
||||
|
||||
import { GoogleCalendarGetEventsService } from 'src/modules/calendar/calendar-event-import-manager/drivers/google-calendar/services/google-calendar-get-events.service';
|
||||
import { MicrosoftCalendarGetEventsService } from 'src/modules/calendar/calendar-event-import-manager/drivers/microsoft-calendar/services/microsoft-calendar-get-events.service';
|
||||
import {
|
||||
@ -31,12 +33,12 @@ export class CalendarGetCalendarEventsService {
|
||||
syncCursor?: string,
|
||||
): Promise<GetCalendarEventsResponse> {
|
||||
switch (connectedAccount.provider) {
|
||||
case 'google':
|
||||
case ConnectedAccountProvider.GOOGLE:
|
||||
return this.googleCalendarGetEventsService.getCalendarEvents(
|
||||
connectedAccount,
|
||||
syncCursor,
|
||||
);
|
||||
case 'microsoft':
|
||||
case ConnectedAccountProvider.MICROSOFT:
|
||||
return this.microsoftCalendarGetEventsService.getCalendarEvents(
|
||||
connectedAccount,
|
||||
syncCursor,
|
||||
|
||||
@ -1,5 +1,7 @@
|
||||
import { Injectable } from '@nestjs/common';
|
||||
|
||||
import { assertUnreachable, ConnectedAccountProvider } from 'twenty-shared';
|
||||
|
||||
import { TwentyORMManager } from 'src/engine/twenty-orm/twenty-orm.manager';
|
||||
import { GoogleEmailAliasManagerService } from 'src/modules/connected-account/email-alias-manager/drivers/google/google-email-alias-manager.service';
|
||||
import { MicrosoftEmailAliasManagerService } from 'src/modules/connected-account/email-alias-manager/drivers/microsoft/microsoft-email-alias-manager.service';
|
||||
@ -19,20 +21,21 @@ export class EmailAliasManagerService {
|
||||
let handleAliases: string[];
|
||||
|
||||
switch (connectedAccount.provider) {
|
||||
case 'microsoft':
|
||||
case ConnectedAccountProvider.MICROSOFT:
|
||||
handleAliases =
|
||||
await this.microsoftEmailAliasManagerService.getHandleAliases(
|
||||
connectedAccount,
|
||||
);
|
||||
break;
|
||||
case 'google':
|
||||
case ConnectedAccountProvider.GOOGLE:
|
||||
handleAliases =
|
||||
await this.googleEmailAliasManagerService.getHandleAliases(
|
||||
connectedAccount,
|
||||
);
|
||||
break;
|
||||
default:
|
||||
throw new Error(
|
||||
assertUnreachable(
|
||||
connectedAccount.provider,
|
||||
`Email alias manager for provider ${connectedAccount.provider} is not implemented`,
|
||||
);
|
||||
}
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
import { Injectable } from '@nestjs/common';
|
||||
|
||||
import { OAuth2Client } from 'google-auth-library';
|
||||
import { ConnectedAccountProvider } from 'twenty-shared';
|
||||
|
||||
import { GoogleOAuth2ClientManagerService } from 'src/modules/connected-account/oauth2-client-manager/drivers/google/google-oauth2-client-manager.service';
|
||||
import { ConnectedAccountWorkspaceEntity } from 'src/modules/connected-account/standard-objects/connected-account.workspace-entity';
|
||||
@ -20,7 +21,7 @@ export class OAuth2ClientManagerService {
|
||||
const { refreshToken } = connectedAccount;
|
||||
|
||||
switch (connectedAccount.provider) {
|
||||
case 'google':
|
||||
case ConnectedAccountProvider.GOOGLE:
|
||||
return this.googleOAuth2ClientManagerService.getOAuth2Client(
|
||||
refreshToken,
|
||||
);
|
||||
|
||||
@ -1,5 +1,7 @@
|
||||
import { Injectable } from '@nestjs/common';
|
||||
|
||||
import { ConnectedAccountProvider } from 'twenty-shared';
|
||||
|
||||
import { TwentyORMManager } from 'src/engine/twenty-orm/twenty-orm.manager';
|
||||
import { ConnectedAccountWorkspaceEntity } from 'src/modules/connected-account/standard-objects/connected-account.workspace-entity';
|
||||
import { MessageChannelWorkspaceEntity } from 'src/modules/messaging/common/standard-objects/message-channel.workspace-entity';
|
||||
@ -24,9 +26,9 @@ export class MessagingCursorService {
|
||||
);
|
||||
|
||||
switch (connectedAccount.provider) {
|
||||
case 'google':
|
||||
case ConnectedAccountProvider.GOOGLE:
|
||||
return messageChannel.syncCursor;
|
||||
case 'microsoft': {
|
||||
case ConnectedAccountProvider.MICROSOFT: {
|
||||
const folder = await folderRepository.findOne({
|
||||
where: {
|
||||
id: folderId,
|
||||
|
||||
@ -1,5 +1,7 @@
|
||||
import { Injectable } from '@nestjs/common';
|
||||
|
||||
import { ConnectedAccountProvider } from 'twenty-shared';
|
||||
|
||||
import { TwentyORMManager } from 'src/engine/twenty-orm/twenty-orm.manager';
|
||||
import { MessageChannelWorkspaceEntity } from 'src/modules/messaging/common/standard-objects/message-channel.workspace-entity';
|
||||
import { MessageFolderWorkspaceEntity } from 'src/modules/messaging/common/standard-objects/message-folder.workspace-entity';
|
||||
@ -46,7 +48,7 @@ export class MessagingGetMessageListService {
|
||||
messageChannel: MessageChannelWorkspaceEntity,
|
||||
): Promise<GetFullMessageListForFoldersResponse[]> {
|
||||
switch (messageChannel.connectedAccount.provider) {
|
||||
case 'google':
|
||||
case ConnectedAccountProvider.GOOGLE:
|
||||
return [
|
||||
{
|
||||
...(await this.gmailGetMessageListService.getFullMessageList(
|
||||
@ -55,7 +57,7 @@ export class MessagingGetMessageListService {
|
||||
folderId: undefined,
|
||||
},
|
||||
];
|
||||
case 'microsoft': {
|
||||
case ConnectedAccountProvider.MICROSOFT: {
|
||||
const folderRepository =
|
||||
await this.twentyORMManager.getRepository<MessageFolderWorkspaceEntity>(
|
||||
'messageFolder',
|
||||
@ -84,7 +86,7 @@ export class MessagingGetMessageListService {
|
||||
messageChannel: MessageChannelWorkspaceEntity,
|
||||
): Promise<GetPartialMessageListForFoldersResponse[]> {
|
||||
switch (messageChannel.connectedAccount.provider) {
|
||||
case 'google':
|
||||
case ConnectedAccountProvider.GOOGLE:
|
||||
return [
|
||||
{
|
||||
...(await this.gmailGetMessageListService.getPartialMessageList(
|
||||
@ -94,7 +96,7 @@ export class MessagingGetMessageListService {
|
||||
folderId: undefined,
|
||||
},
|
||||
];
|
||||
case 'microsoft':
|
||||
case ConnectedAccountProvider.MICROSOFT:
|
||||
return this.microsoftGetMessageListService.getPartialMessageListForFolders(
|
||||
messageChannel.connectedAccount,
|
||||
messageChannel,
|
||||
|
||||
@ -1,5 +1,7 @@
|
||||
import { Injectable } from '@nestjs/common';
|
||||
|
||||
import { ConnectedAccountProvider } from 'twenty-shared';
|
||||
|
||||
import { ConnectedAccountWorkspaceEntity } from 'src/modules/connected-account/standard-objects/connected-account.workspace-entity';
|
||||
import { GmailGetMessagesService } from 'src/modules/messaging/message-import-manager/drivers/gmail/services/gmail-get-messages.service';
|
||||
import { MicrosoftGetMessagesService } from 'src/modules/messaging/message-import-manager/drivers/microsoft/services/microsoft-get-messages.service';
|
||||
@ -32,13 +34,13 @@ export class MessagingGetMessagesService {
|
||||
workspaceId: string,
|
||||
): Promise<GetMessagesResponse> {
|
||||
switch (connectedAccount.provider) {
|
||||
case 'google':
|
||||
case ConnectedAccountProvider.GOOGLE:
|
||||
return this.gmailGetMessagesService.getMessages(
|
||||
messageIds,
|
||||
connectedAccount,
|
||||
workspaceId,
|
||||
);
|
||||
case 'microsoft':
|
||||
case ConnectedAccountProvider.MICROSOFT:
|
||||
return this.microsoftGetMessagesService.getMessages(
|
||||
messageIds,
|
||||
connectedAccount,
|
||||
|
||||
Reference in New Issue
Block a user