import { Tasker } from "@calcom/lib/tasker/Tasker"; import type { ILogger } from "@calcom/lib/tasker/types"; import type { TriggerOptions } from "@trigger.dev/sdk"; import type { CalendarsSyncTasker } from "./CalendarsSyncTasker"; import type { CalendarsTriggerTasker } from "./CalendarsTriggerTasker"; import type { ICalendarsTasker, CalendarsTaskPayload } from "./types"; export interface ICalendarsTaskerDependencies { asyncTasker: CalendarsTriggerTasker; syncTasker: CalendarsSyncTasker; logger: ILogger; } export class CalendarsTasker extends Tasker { constructor(public readonly dependencies: ICalendarsTaskerDependencies) { super(dependencies); } public async ensureDefaultCalendars(data: { payload: CalendarsTaskPayload; options?: TriggerOptions; }): Promise<{ runId: string }> { const { payload } = data; let taskResponse: { runId: string; } = { runId: "task-not-found" }; try { taskResponse = await this.dispatch("ensureDefaultCalendars", payload, data.options); this.logger.info(`CalendarsTasker ensureDefaultCalendars success:`, taskResponse, { userId: payload.userId, }); } catch { taskResponse = { runId: "task-failed" }; this.logger.error(`CalendarsTasker ensureDefaultCalendars failed`, taskResponse, { userId: payload.userId, }); } return taskResponse; } }