fix: API V1 slots add explicit orgSlug null fallback (#16593)
* add explicit orgSlug null fallback * do it in schema * to nullish
This commit is contained in:
@@ -85,7 +85,7 @@ async function handler(req: NextApiRequest, res: NextApiResponse) {
|
||||
|
||||
const startTime = now.startOf("month").toISOString();
|
||||
const endTime = now.add(2, "month").endOf("month").toISOString();
|
||||
const orgSlug = eventType?.team?.parent?.slug ?? undefined;
|
||||
const orgSlug = eventType?.team?.parent?.slug ?? null;
|
||||
|
||||
const availableSlots = await getAvailableSlots({
|
||||
input: {
|
||||
|
||||
@@ -78,6 +78,7 @@ describe("getSchedule", () => {
|
||||
endTime: `${plus2DateString}T18:29:59.999Z`,
|
||||
timeZone: Timezones["+5:30"],
|
||||
isTeamEvent: false,
|
||||
orgSlug: null,
|
||||
},
|
||||
});
|
||||
|
||||
@@ -176,6 +177,7 @@ describe("getSchedule", () => {
|
||||
timeZone: Timezones["+5:30"],
|
||||
isTeamEvent: true,
|
||||
teamMemberEmail: "example@example.com",
|
||||
orgSlug: null,
|
||||
},
|
||||
});
|
||||
|
||||
@@ -195,6 +197,7 @@ describe("getSchedule", () => {
|
||||
endTime: `${plus2DateString}T18:29:59.999Z`,
|
||||
timeZone: Timezones["+5:30"],
|
||||
isTeamEvent: true,
|
||||
orgSlug: null,
|
||||
},
|
||||
});
|
||||
|
||||
@@ -321,6 +324,7 @@ describe("getSchedule", () => {
|
||||
timeZone: Timezones["+5:30"],
|
||||
isTeamEvent: true,
|
||||
teamMemberEmail: "example@example.com",
|
||||
orgSlug: null,
|
||||
},
|
||||
});
|
||||
|
||||
@@ -349,6 +353,7 @@ describe("getSchedule", () => {
|
||||
timeZone: Timezones["+5:30"],
|
||||
isTeamEvent: true,
|
||||
teamMemberEmail: "example1@example.com",
|
||||
orgSlug: null,
|
||||
},
|
||||
});
|
||||
|
||||
@@ -438,6 +443,7 @@ describe("getSchedule", () => {
|
||||
endTime: `${plus2DateString}T18:29:59.999Z`,
|
||||
timeZone: Timezones["+5:30"],
|
||||
isTeamEvent: false,
|
||||
orgSlug: null,
|
||||
},
|
||||
});
|
||||
|
||||
@@ -470,6 +476,7 @@ describe("getSchedule", () => {
|
||||
endTime: `${plus3DateString}T18:29:59.999Z`,
|
||||
timeZone: Timezones["+5:30"],
|
||||
isTeamEvent: false,
|
||||
orgSlug: null,
|
||||
},
|
||||
});
|
||||
|
||||
@@ -529,6 +536,7 @@ describe("getSchedule", () => {
|
||||
const { dateString: plus2DateString } = getDate({ dateIncrement: 2 });
|
||||
const scheduleForEventWith30Length = await getSchedule({
|
||||
input: {
|
||||
orgSlug: null,
|
||||
eventTypeId: 1,
|
||||
eventTypeSlug: "",
|
||||
startTime: `${plus1DateString}T18:30:00.000Z`,
|
||||
@@ -565,6 +573,7 @@ describe("getSchedule", () => {
|
||||
|
||||
const scheduleForEventWith30minsLengthAndSlotInterval2hrs = await getSchedule({
|
||||
input: {
|
||||
orgSlug: null,
|
||||
eventTypeId: 2,
|
||||
eventTypeSlug: "",
|
||||
startTime: `${plus1DateString}T18:30:00.000Z`,
|
||||
@@ -630,6 +639,7 @@ describe("getSchedule", () => {
|
||||
endTime: `${todayDateString}T18:29:59.999Z`,
|
||||
timeZone: Timezones["+5:30"],
|
||||
isTeamEvent: false,
|
||||
orgSlug: null,
|
||||
},
|
||||
});
|
||||
|
||||
@@ -653,6 +663,7 @@ describe("getSchedule", () => {
|
||||
endTime: `${todayDateString}T18:29:59.999Z`,
|
||||
timeZone: Timezones["+5:30"],
|
||||
isTeamEvent: false,
|
||||
orgSlug: null,
|
||||
},
|
||||
});
|
||||
expect(scheduleForEventWithBookingNotice10Hrs).toHaveTimeSlots(
|
||||
@@ -715,6 +726,7 @@ describe("getSchedule", () => {
|
||||
endTime: `${plus3DateString}T18:29:59.999Z`,
|
||||
timeZone: Timezones["+5:30"],
|
||||
isTeamEvent: false,
|
||||
orgSlug: null,
|
||||
},
|
||||
});
|
||||
|
||||
@@ -789,6 +801,7 @@ describe("getSchedule", () => {
|
||||
endTime: `${plus2DateString}T18:29:59.999Z`,
|
||||
timeZone: Timezones["+5:30"],
|
||||
isTeamEvent: false,
|
||||
orgSlug: null,
|
||||
},
|
||||
});
|
||||
|
||||
@@ -847,6 +860,7 @@ describe("getSchedule", () => {
|
||||
endTime: `${plus2DateString}T18:29:59.999Z`,
|
||||
timeZone: Timezones["+5:30"],
|
||||
isTeamEvent: false,
|
||||
orgSlug: null,
|
||||
},
|
||||
});
|
||||
|
||||
@@ -911,6 +925,7 @@ describe("getSchedule", () => {
|
||||
endTime: `${plus2DateString}T18:29:59.999Z`,
|
||||
timeZone: Timezones["+5:30"],
|
||||
isTeamEvent: false,
|
||||
orgSlug: null,
|
||||
},
|
||||
});
|
||||
|
||||
@@ -989,6 +1004,7 @@ describe("getSchedule", () => {
|
||||
endTime: `${plus2DateString}T18:29:59.999Z`,
|
||||
timeZone: Timezones["+5:30"],
|
||||
isTeamEvent: false,
|
||||
orgSlug: null,
|
||||
},
|
||||
});
|
||||
|
||||
@@ -1101,6 +1117,7 @@ describe("getSchedule", () => {
|
||||
endTime: `${plus3DateString}T23:59:59.999Z`,
|
||||
timeZone: Timezones["+6:00"],
|
||||
isTeamEvent: false,
|
||||
orgSlug: null,
|
||||
},
|
||||
});
|
||||
|
||||
@@ -1112,6 +1129,7 @@ describe("getSchedule", () => {
|
||||
endTime: `${plus3DateString}T23:59:59.999Z`,
|
||||
timeZone: Timezones["+6:00"],
|
||||
isTeamEvent: false,
|
||||
orgSlug: null,
|
||||
},
|
||||
});
|
||||
|
||||
@@ -1202,6 +1220,7 @@ describe("getSchedule", () => {
|
||||
endTime: `${plus2DateString}T18:29:59.999Z`,
|
||||
timeZone: Timezones["+5:30"],
|
||||
isTeamEvent: false,
|
||||
orgSlug: null,
|
||||
},
|
||||
});
|
||||
|
||||
@@ -1300,6 +1319,7 @@ describe("getSchedule", () => {
|
||||
endTime: `${plus1DateString}T18:29:59.999Z`,
|
||||
timeZone: Timezones["+5:30"],
|
||||
isTeamEvent: true,
|
||||
orgSlug: null,
|
||||
},
|
||||
});
|
||||
|
||||
@@ -1330,6 +1350,7 @@ describe("getSchedule", () => {
|
||||
endTime: `${plus2DateString}T18:29:59.999Z`,
|
||||
timeZone: Timezones["+5:30"],
|
||||
isTeamEvent: true,
|
||||
orgSlug: null,
|
||||
},
|
||||
});
|
||||
|
||||
@@ -1438,6 +1459,7 @@ describe("getSchedule", () => {
|
||||
endTime: `${plus2DateString}T18:29:59.999Z`,
|
||||
timeZone: Timezones["+5:30"],
|
||||
isTeamEvent: true,
|
||||
orgSlug: null,
|
||||
},
|
||||
});
|
||||
// A user with blocked time in another event, still affects Team Event availability
|
||||
@@ -1466,6 +1488,7 @@ describe("getSchedule", () => {
|
||||
endTime: `${plus3DateString}T18:29:59.999Z`,
|
||||
timeZone: Timezones["+5:30"],
|
||||
isTeamEvent: true,
|
||||
orgSlug: null,
|
||||
},
|
||||
});
|
||||
// A user with blocked time in another event, still affects Team Event availability
|
||||
|
||||
@@ -121,6 +121,7 @@ describe("getSchedule", () => {
|
||||
endTime: `${plus5DateString}T18:29:59.999Z`,
|
||||
timeZone: Timezones["+5:30"],
|
||||
isTeamEvent: false,
|
||||
orgSlug: null,
|
||||
},
|
||||
});
|
||||
|
||||
@@ -208,6 +209,7 @@ describe("getSchedule", () => {
|
||||
endTime: `${plus5DateString}T18:29:59.999Z`,
|
||||
timeZone: Timezones["+5:30"],
|
||||
isTeamEvent: false,
|
||||
orgSlug: null,
|
||||
},
|
||||
});
|
||||
|
||||
@@ -291,6 +293,7 @@ describe("getSchedule", () => {
|
||||
endTime: `${plus5DateString}T18:29:59.999Z`,
|
||||
timeZone: Timezones["+5:30"],
|
||||
isTeamEvent: false,
|
||||
orgSlug: null,
|
||||
},
|
||||
});
|
||||
|
||||
@@ -385,6 +388,7 @@ describe("getSchedule", () => {
|
||||
endTime: `${plus5DateString}T18:29:59.999Z`,
|
||||
timeZone: Timezones["+5:30"],
|
||||
isTeamEvent: false,
|
||||
orgSlug: null,
|
||||
},
|
||||
});
|
||||
|
||||
@@ -488,6 +492,7 @@ describe("getSchedule", () => {
|
||||
endTime: `${plus5DateString}T18:29:59.999Z`,
|
||||
timeZone: Timezones["+5:30"],
|
||||
isTeamEvent: false,
|
||||
orgSlug: null,
|
||||
},
|
||||
});
|
||||
|
||||
@@ -577,6 +582,7 @@ describe("getSchedule", () => {
|
||||
endTime: `${plus5DateString}T18:29:59.999Z`,
|
||||
timeZone: Timezones["+5:30"],
|
||||
isTeamEvent: false,
|
||||
orgSlug: null,
|
||||
},
|
||||
});
|
||||
|
||||
@@ -660,6 +666,7 @@ describe("getSchedule", () => {
|
||||
endTime: `${plus5DateString}T18:29:59.999Z`,
|
||||
timeZone: Timezones["-11:00"],
|
||||
isTeamEvent: false,
|
||||
orgSlug: null,
|
||||
},
|
||||
});
|
||||
|
||||
@@ -782,6 +789,7 @@ describe("getSchedule", () => {
|
||||
endTime: `${plus5DateString}T18:29:59.999Z`,
|
||||
timeZone: Timezones["+5:30"],
|
||||
isTeamEvent: false,
|
||||
orgSlug: null,
|
||||
},
|
||||
});
|
||||
|
||||
@@ -879,6 +887,7 @@ describe("getSchedule", () => {
|
||||
endTime: `${plus5DateString}T18:29:59.999Z`,
|
||||
timeZone: Timezones["+5:30"],
|
||||
isTeamEvent: false,
|
||||
orgSlug: null,
|
||||
},
|
||||
});
|
||||
|
||||
@@ -979,6 +988,7 @@ describe("getSchedule", () => {
|
||||
endTime: `${plus5DateString}T18:29:59.999Z`,
|
||||
timeZone: Timezones["+5:30"],
|
||||
isTeamEvent: false,
|
||||
orgSlug: null,
|
||||
},
|
||||
});
|
||||
|
||||
@@ -1086,6 +1096,7 @@ describe("getSchedule", () => {
|
||||
endTime: `${plus5DateString}T18:29:59.999Z`,
|
||||
timeZone: Timezones["+5:30"],
|
||||
isTeamEvent: false,
|
||||
orgSlug: null,
|
||||
},
|
||||
});
|
||||
|
||||
@@ -1205,6 +1216,7 @@ describe("getSchedule", () => {
|
||||
endTime: `${plus5DateString}T18:29:59.999Z`,
|
||||
timeZone: Timezones["+5:30"],
|
||||
isTeamEvent: false,
|
||||
orgSlug: null,
|
||||
},
|
||||
});
|
||||
|
||||
@@ -1301,6 +1313,7 @@ describe("getSchedule", () => {
|
||||
endTime: `${plus5DateString}T18:29:59.999Z`,
|
||||
timeZone: Timezones["+5:30"],
|
||||
isTeamEvent: false,
|
||||
orgSlug: null,
|
||||
},
|
||||
});
|
||||
|
||||
@@ -1409,6 +1422,7 @@ describe("getSchedule", () => {
|
||||
endTime: `${plus5DateString}T18:29:59.999Z`,
|
||||
timeZone: Timezones["+5:30"],
|
||||
isTeamEvent: false,
|
||||
orgSlug: null,
|
||||
},
|
||||
});
|
||||
|
||||
@@ -1510,6 +1524,7 @@ describe("getSchedule", () => {
|
||||
endTime: `${plus5DateString}T18:29:59.999Z`,
|
||||
timeZone: Timezones["+5:30"],
|
||||
isTeamEvent: false,
|
||||
orgSlug: null,
|
||||
},
|
||||
});
|
||||
|
||||
@@ -1594,6 +1609,7 @@ describe("getSchedule", () => {
|
||||
endTime: `2024-07-31T18:29:59.999Z`,
|
||||
timeZone: Timezones["-11:00"],
|
||||
isTeamEvent: false,
|
||||
orgSlug: null,
|
||||
},
|
||||
});
|
||||
|
||||
|
||||
@@ -20,17 +20,20 @@ export const getScheduleSchema = z
|
||||
.string()
|
||||
.optional()
|
||||
.transform((val) => val && parseInt(val)),
|
||||
rescheduleUid: z.string().optional().nullable(),
|
||||
rescheduleUid: z.string().nullish(),
|
||||
// whether to do team event or user event
|
||||
isTeamEvent: z.boolean().optional().default(false),
|
||||
orgSlug: z.string().optional(),
|
||||
teamMemberEmail: z.string().nullable().optional(),
|
||||
orgSlug: z.string().nullish(),
|
||||
teamMemberEmail: z.string().nullish(),
|
||||
})
|
||||
.transform((val) => {
|
||||
// Need this so we can pass a single username in the query string form public API
|
||||
if (val.usernameList) {
|
||||
val.usernameList = Array.isArray(val.usernameList) ? val.usernameList : [val.usernameList];
|
||||
}
|
||||
if (!val.orgSlug) {
|
||||
val.orgSlug = null;
|
||||
}
|
||||
return val;
|
||||
})
|
||||
.refine(
|
||||
|
||||
Reference in New Issue
Block a user