
* WIP bookings page ui changes, created api endpoint * Ui changes mobile/desktop * Added translations * Fix lib import and common names * WIP reschedule * WIP * Save wip * [WIP] builder and class for CalendarEvent, email for attende * update rescheduled emails, booking view and availability page view * Working version reschedule * Fix for req.user as array * Added missing translation and refactor dialog to self component * Test for reschedule * update on types * Update lib no required * Update type on createBooking * fix types * remove preview stripe sub * remove unused file * remove unused import * Fix reschedule test * Refactor and cleaning up code * Email reschedule title fixes * Adding calendar delete and recreate placeholder of cancelled * Add translation * Removed logs, notes, fixed types * Fixes process.env types * Use strict compare * Fixes type inference * Type fixing is my middle name * Update apps/web/components/booking/BookingListItem.tsx * Update apps/web/components/dialog/RescheduleDialog.tsx * Update packages/core/builders/CalendarEvent/director.ts * Update apps/web/pages/success.tsx * Updates rescheduling labels * Update packages/core/builders/CalendarEvent/builder.ts * Type fixes * Update packages/core/builders/CalendarEvent/builder.ts * Only validating input blocked once * E2E fixes * Stripe tests fixes * Wipe my cal init commit * Fixes circular dependencies * Added conditional display for wipe my cal button * Added placeholder image for app category * Fix type string for conditional validation Co-authored-by: Peer Richelsen <peer@cal.com> Co-authored-by: zomars <zomars@me.com>
35 lines
1.1 KiB
TypeScript
35 lines
1.1 KiB
TypeScript
import { CalendarEvent } from "@calcom/types/Calendar";
|
|
|
|
import AttendeeRequestRescheduledEmail from "./templates/attendee-request-reschedule-email";
|
|
import OrganizerRequestRescheduledEmail from "./templates/organizer-request-reschedule-email";
|
|
|
|
export const sendRequestRescheduleEmail = async (
|
|
calEvent: CalendarEvent,
|
|
metadata: { rescheduleLink: string }
|
|
) => {
|
|
const emailsToSend: Promise<unknown>[] = [];
|
|
|
|
emailsToSend.push(
|
|
new Promise((resolve, reject) => {
|
|
try {
|
|
const requestRescheduleEmail = new AttendeeRequestRescheduledEmail(calEvent, metadata);
|
|
resolve(requestRescheduleEmail.sendEmail());
|
|
} catch (e) {
|
|
reject(console.error("AttendeeRequestRescheduledEmail.sendEmail failed", e));
|
|
}
|
|
})
|
|
);
|
|
|
|
emailsToSend.push(
|
|
new Promise((resolve, reject) => {
|
|
try {
|
|
const requestRescheduleEmail = new OrganizerRequestRescheduledEmail(calEvent, metadata);
|
|
resolve(requestRescheduleEmail.sendEmail());
|
|
} catch (e) {
|
|
reject(console.error("OrganizerRequestRescheduledEmail.sendEmail failed", e));
|
|
}
|
|
})
|
|
);
|
|
|
|
await Promise.all(emailsToSend);
|
|
};
|