Files
calendar/packages/lib/formatCalendarEvent.ts
T

48 lines
1.6 KiB
TypeScript

// eslint-disable-next-line no-restricted-imports
import { cloneDeep } from "lodash";
import type { ExtendedCalendarEvent } from "@calcom/ee/workflows/lib/reminders/reminderScheduler";
import type { CalendarEvent } from "@calcom/types/Calendar";
// format CalEvent to remove platformClientId from email addresses
const formatClientIdFromEmails = (calEvent: CalendarEvent | ExtendedCalendarEvent, clientId: string) => {
const attendees = calEvent.attendees.map((attendee) => ({
...attendee,
email: attendee.email.replace(`+${clientId}`, ""),
}));
const organizer = {
...calEvent.organizer,
email: calEvent.organizer.email.replace(`+${clientId}`, ""),
};
const team = calEvent.team
? {
...calEvent.team,
members: calEvent.team.members.map((member) => ({
...member,
email: member.email.replace(`+${clientId}`, ""),
})),
}
: undefined;
return [attendees, organizer, team];
};
export const formatCalEvent = (calEvent: CalendarEvent) => {
const clonedEvent = cloneDeep(calEvent);
if (clonedEvent.platformClientId) {
const [attendees, organizer, team] = formatClientIdFromEmails(clonedEvent, clonedEvent.platformClientId);
Object.assign(clonedEvent, { attendees, organizer, team });
}
return clonedEvent;
};
export const formatCalEventExtended = (calEvent: ExtendedCalendarEvent) => {
const clonedEvent = cloneDeep(calEvent);
if (clonedEvent.platformClientId) {
const [attendees, organizer] = formatClientIdFromEmails(clonedEvent, clonedEvent.platformClientId);
Object.assign(clonedEvent, { attendees, organizer });
}
return clonedEvent;
};