Files
calendar/packages/features/ee/workflows/lib/reminders/providers/emailProvider.ts
T
21a4711f07 fix: don't schedule past workflow reminders with tasker (#21434)
* don't schedule past reminders

* add test

* fix dates in tests

* add early return

* fix sms test

---------

Co-authored-by: CarinaWolli <wollencarina@gmail.com>
2025-05-21 12:24:34 +00:00

32 lines
992 B
TypeScript

import { sendCustomWorkflowEmail } from "@calcom/emails";
import type { WorkflowEmailData } from "@calcom/emails/templates/workflow-email";
import tasker from "@calcom/features/tasker";
type EmailData = Omit<WorkflowEmailData, "to"> & {
to: string[];
} & { sendAt?: Date; includeCalendarEvent?: boolean; referenceUid?: string };
export async function sendOrScheduleWorkflowEmails(mailData: EmailData) {
if (mailData.sendAt) {
if (mailData.sendAt <= new Date()) return;
const { sendAt, referenceUid, ...taskerData } = mailData;
return await tasker.create("sendWorkflowEmails", taskerData, {
scheduledAt: sendAt,
referenceUid,
});
} else {
await Promise.all(
mailData.to.map((to) =>
sendCustomWorkflowEmail({
to,
subject: mailData.subject,
html: mailData.html,
sender: mailData.sender,
replyTo: mailData.replyTo,
attachments: mailData.attachments,
})
)
);
}
}