* move SystemField to features * migrate workflow service * merge two tests for team repository * update imports and migrate team repository * migrate delegation credential repository * migrate credential repository * migrate entityPermissionUtils * migrate hashedLink service and repository * migrate membership service * update imports * remove file * migrate buildEventUrlFromBooking * migrate getAllUserBookings to features * update imports * update organizationMock * migrate slots * migrate date-ranges to schedules dir * migrate getAggregatedAvailability * fix * refactor * migrate useCreateEventType hook to features * migrate assignValueToUser * migrate validateUsername to auth features * migrate system field back to lib * migrate getLabelValueMapFromResponses back to lib * update imports * use relative path * fix type checks * fix * fix * fix tests * update gh codeowners * fix * fix
35 lines
1.3 KiB
TypeScript
35 lines
1.3 KiB
TypeScript
import type z from "zod";
|
|
|
|
import { TITLE_FIELD, SMS_REMINDER_NUMBER_FIELD } from "@calcom/lib/bookings/SystemField";
|
|
import type { dbReadResponseSchema as bookingResponse } from "@calcom/lib/dbReadResponseSchema";
|
|
import type { CalendarEvent } from "@calcom/types/Calendar";
|
|
|
|
export default function getLabelValueMapFromResponses(
|
|
calEvent: Pick<CalendarEvent, "customInputs" | "userFieldsResponses" | "responses" | "eventTypeId">,
|
|
isOrganizer = false
|
|
) {
|
|
const { customInputs, userFieldsResponses, responses, eventTypeId } = calEvent;
|
|
|
|
const isDynamicEvent = !eventTypeId;
|
|
|
|
let labelValueMap: Record<string, z.infer<typeof bookingResponse>> = {};
|
|
if (userFieldsResponses) {
|
|
if (!!responses?.[TITLE_FIELD] && !isDynamicEvent) {
|
|
userFieldsResponses[TITLE_FIELD] = responses[TITLE_FIELD];
|
|
}
|
|
if (!!responses?.[SMS_REMINDER_NUMBER_FIELD] && !isDynamicEvent) {
|
|
userFieldsResponses[SMS_REMINDER_NUMBER_FIELD] = responses[SMS_REMINDER_NUMBER_FIELD];
|
|
}
|
|
|
|
for (const [, value] of Object.entries(userFieldsResponses)) {
|
|
if (!value.label || (!isOrganizer && value.isHidden)) {
|
|
continue;
|
|
}
|
|
labelValueMap[value.label] = value.value;
|
|
}
|
|
} else {
|
|
labelValueMap = customInputs as Record<string, string | string[]>;
|
|
}
|
|
return labelValueMap;
|
|
}
|