* feat: Implement edit ooo feature Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> * refactor: Refactor button text and gap between buttons Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> * fix: Fix entry create and edit edge cases Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> * chore: Change "edit ooo event" modal title Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> * chore: Add tooltips to entry eidt and delete buttons Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> * feat: Reset form on form close event Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> * refactor: Refactor reset-form function Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> * chore: Rename create or edit OOO as suggested Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> * refactor: Refactor component and function names Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> * feat: Improve ooo events email notifications Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> * fix: Fix email templates Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> * feat: Add e2e test for ooo event edit functionality Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> * refactor: Create separate test for edit ooo event Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> * fix: Remove extra user from redirect user configuration test Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> * chore: code refactor * remove log * chore: Update ooo-input-schema uuid data type Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> * fix: Address feedbacks Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> * chore: code splitting and refactor --------- Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> Co-authored-by: Amit Sharma <74371312+Amit91848@users.noreply.github.com> Co-authored-by: Anik Dhabal Babu <81948346+anikdhabal@users.noreply.github.com>
46 lines
1.3 KiB
TypeScript
46 lines
1.3 KiB
TypeScript
import type { TFunction } from "next-i18next";
|
|
|
|
import { EMAIL_FROM_NAME } from "@calcom/lib/constants";
|
|
|
|
import { renderEmail } from "..";
|
|
import BaseEmail from "./_base-email";
|
|
|
|
export interface IBookingRedirect {
|
|
language: TFunction;
|
|
fromEmail: string;
|
|
eventOwner: string;
|
|
toEmail: string;
|
|
toName: string;
|
|
oldDates?: string;
|
|
dates: string;
|
|
action: "add" | "update" | "cancel";
|
|
}
|
|
|
|
export default class BookingRedirectNotification extends BaseEmail {
|
|
bookingRedirect: IBookingRedirect;
|
|
|
|
constructor(bookingRedirect: IBookingRedirect) {
|
|
super();
|
|
this.name = "BOOKING_REDIRECT_NOTIFICATION";
|
|
this.bookingRedirect = bookingRedirect;
|
|
}
|
|
|
|
protected async getNodeMailerPayload(): Promise<Record<string, unknown>> {
|
|
return {
|
|
to: `${this.bookingRedirect.toName} <${this.bookingRedirect.toEmail}>`,
|
|
from: `${EMAIL_FROM_NAME} <${this.getMailerOptions().from}>`,
|
|
subject: this.bookingRedirect.language(
|
|
{
|
|
add: "booking_redirect_email_subject",
|
|
update: "booking_redirect_updated_email_subject",
|
|
cancel: "booking_redirect_cancelled_email_subject",
|
|
}[this.bookingRedirect.action]
|
|
),
|
|
html: await renderEmail("BookingRedirectEmailNotification", {
|
|
...this.bookingRedirect,
|
|
}),
|
|
text: "",
|
|
};
|
|
}
|
|
}
|