34 lines
1.3 KiB
TypeScript
34 lines
1.3 KiB
TypeScript
import type { CalendarEvent, Person } from "@calcom/types/Calendar";
|
|
|
|
import { renderEmail } from "../";
|
|
import generateIcsFile, { GenerateIcsRole } from "../lib/generateIcsFile";
|
|
import AttendeeScheduledEmail from "./attendee-scheduled-email";
|
|
|
|
export default class AttendeeUpdatedEmail extends AttendeeScheduledEmail {
|
|
protected async getNodeMailerPayload(): Promise<Record<string, unknown>> {
|
|
return {
|
|
icalEvent: generateIcsFile({
|
|
calEvent: this.calEvent,
|
|
role: GenerateIcsRole.ATTENDEE,
|
|
status: "CONFIRMED",
|
|
}),
|
|
to: `${this.attendee.name} <${this.attendee.email}>`,
|
|
from: `${this.calEvent.organizer.name} <${this.getMailerOptions().from}>`,
|
|
replyTo: [...this.calEvent.attendees.map(({ email }) => email), this.calEvent.organizer.email],
|
|
subject: `${this.attendee.language.translate("event_type_has_been_updated", {
|
|
title: this.calEvent.title,
|
|
date: this.getFormattedDate(),
|
|
})}`,
|
|
html: await this.getHtml(this.calEvent, this.attendee),
|
|
text: this.getTextBody("event_has_been_updated", "emailed_you_and_any_other_attendees"),
|
|
};
|
|
}
|
|
|
|
async getHtml(calEvent: CalendarEvent, attendee: Person) {
|
|
return await renderEmail("AttendeeUpdatedEmail", {
|
|
calEvent,
|
|
attendee,
|
|
});
|
|
}
|
|
}
|