4489 timebox finish google calendar full sync (#4615)

* add lodash differenceWith

* add awaits

* update sync cursor is working

* add logs

* use isSyncEnabled information to enqueue jobs

* add decorator InjectObjectMetadataRepository

* fix gmail-full-sync
This commit is contained in:
bosiraphael
2024-03-22 18:10:55 +01:00
committed by GitHub
parent 41aae5bd20
commit 5665656b05
7 changed files with 176 additions and 56 deletions

View File

@ -11,6 +11,8 @@ import {
} from 'src/modules/calendar/jobs/google-calendar-full-sync.job';
import { InjectObjectMetadataRepository } from 'src/engine/object-metadata-repository/object-metadata-repository.decorator';
import { ConnectedAccountObjectMetadata } from 'src/modules/connected-account/standard-objects/connected-account.object-metadata';
import { CalendarChannelRepository } from 'src/modules/calendar/repositories/calendar-channel.repository';
import { CalendarChannelObjectMetadata } from 'src/modules/calendar/standard-objects/calendar-channel.object-metadata';
interface GoogleCalendarFullSyncOptions {
workspaceId: string;
@ -27,6 +29,8 @@ export class GoogleCalendarFullSyncCommand extends CommandRunner {
private readonly messageQueueService: MessageQueueService,
@InjectObjectMetadataRepository(ConnectedAccountObjectMetadata)
private readonly connectedAccountRepository: ConnectedAccountRepository,
@InjectObjectMetadataRepository(CalendarChannelObjectMetadata)
private readonly calendarChannelRepository: CalendarChannelRepository,
) {
super();
}
@ -54,6 +58,16 @@ export class GoogleCalendarFullSyncCommand extends CommandRunner {
await this.connectedAccountRepository.getAll(workspaceId);
for (const connectedAccount of connectedAccounts) {
const calendarChannel =
await this.calendarChannelRepository.getFirstByConnectedAccountId(
connectedAccount.id,
workspaceId,
);
if (!calendarChannel?.isSyncEnabled) {
continue;
}
await this.messageQueueService.add<GoogleCalendarFullSyncJobData>(
GoogleCalendarFullSyncJob.name,
{