48 lines
1.6 KiB
TypeScript
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;
|
|
};
|