-
Notifications
You must be signed in to change notification settings - Fork 2.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Outlook integration #9631
Outlook integration #9631
Conversation
Log
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
PR Summary
Implemented Microsoft Outlook integration for email syncing, adding support for delta-based message synchronization and proper error handling for sync cursor operations.
- Added
SYNC_CURSOR_ERROR
handling inmessage-import-driver.exception.ts
for Microsoft-specific sync issues - Implemented
getPartialMessageList
inmicrosoft-get-message-list.service.ts
with delta API support for incremental syncing - Added upsert operation in
messaging-message.service.ts
to prevent duplicate message entries - Added comprehensive Microsoft 365 setup documentation with required API permissions and license requirements
- Updated
MicrosoftAPIsService
to handle message channel sync states and queue message fetching jobs
8 file(s) reviewed, 8 comment(s)
Edit PR Review Bot Settings | Greptile
...age-import-manager/drivers/microsoft/services/microsoft-get-message-list.service.dev.spec.ts
Show resolved
Hide resolved
...age-import-manager/drivers/microsoft/services/microsoft-get-message-list.service.dev.spec.ts
Show resolved
Hide resolved
...ging/message-import-manager/drivers/microsoft/services/microsoft-get-message-list.service.ts
Show resolved
Hide resolved
packages/twenty-server/src/engine/core-modules/auth/services/microsoft-apis.service.ts
Show resolved
Hide resolved
await this.messageQueueService.add<MessagingMessageListFetchJobData>( | ||
MessagingMessageListFetchJob.name, | ||
{ | ||
workspaceId, | ||
messageChannelId: messageChannel.id, | ||
}, | ||
); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
style: These message queue jobs are not awaited in parallel which could be slow for multiple channels. Consider using Promise.all().
...odules/messaging/message-import-manager/services/message-import-exception-handler.service.ts
Show resolved
Hide resolved
workspaceId: string, | ||
): Promise<void> { | ||
await this.messageChannelSyncStatusService.markAsFailedUnknownAndFlushMessagesToImport( | ||
[messageChannel.id], |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
logic: This re-throws the same exception type that was caught. Consider throwing MessageImportException instead to be consistent with handleUnknownException pattern
Get Partial messages