fix: ignore original rescheduled booking for booking limits (#12625)
* ignore original rescheduled booking for booking limits * fix unit test --------- Co-authored-by: CarinaWolli <wollencarina@gmail.com> Co-authored-by: Udit Takkar <53316345+Udit-takkar@users.noreply.github.com>
This commit is contained in:
parent
55d44ce789
commit
e1ac6f5454
|
@ -7,7 +7,7 @@ import logger from "@calcom/lib/logger";
|
|||
import { getPiiFreeBooking } from "@calcom/lib/piiFreeData";
|
||||
import { performance } from "@calcom/lib/server/perfObserver";
|
||||
import prisma from "@calcom/prisma";
|
||||
import type { SelectedCalendar } from "@calcom/prisma/client";
|
||||
import type { Prisma, SelectedCalendar } from "@calcom/prisma/client";
|
||||
import { BookingStatus } from "@calcom/prisma/enums";
|
||||
import type { EventBusyDetails } from "@calcom/types/Calendar";
|
||||
import type { CredentialPayload } from "@calcom/types/Credential";
|
||||
|
@ -264,8 +264,9 @@ export async function getBusyTimesForLimitChecks(params: {
|
|||
eventTypeId: number;
|
||||
startDate: Date;
|
||||
endDate: Date;
|
||||
rescheduleUid?: string | null;
|
||||
}) {
|
||||
const { userId, eventTypeId, startDate, endDate } = params;
|
||||
const { userId, eventTypeId, startDate, endDate, rescheduleUid } = params;
|
||||
logger.silly(
|
||||
`Fetch limit checks bookings in range ${startDate} to ${endDate} for input ${JSON.stringify({
|
||||
userId,
|
||||
|
@ -275,8 +276,7 @@ export async function getBusyTimesForLimitChecks(params: {
|
|||
);
|
||||
performance.mark("getBusyTimesForLimitChecksStart");
|
||||
|
||||
const bookings = await prisma.booking.findMany({
|
||||
where: {
|
||||
const where: Prisma.BookingWhereInput = {
|
||||
userId,
|
||||
eventTypeId,
|
||||
status: BookingStatus.ACCEPTED,
|
||||
|
@ -287,7 +287,16 @@ export async function getBusyTimesForLimitChecks(params: {
|
|||
endTime: {
|
||||
lte: endDate,
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
if (rescheduleUid) {
|
||||
where.NOT = {
|
||||
uid: rescheduleUid,
|
||||
};
|
||||
}
|
||||
|
||||
const bookings = await prisma.booking.findMany({
|
||||
where,
|
||||
select: {
|
||||
id: true,
|
||||
startTime: true,
|
||||
|
|
|
@ -215,7 +215,8 @@ const _getUserAvailability = async function getUsersWorkingHoursLifeTheUniverseA
|
|||
dateTo,
|
||||
duration,
|
||||
eventType,
|
||||
user.id
|
||||
user.id,
|
||||
initialData?.rescheduleUid
|
||||
)
|
||||
: [];
|
||||
|
||||
|
@ -419,7 +420,8 @@ const _getBusyTimesFromLimits = async (
|
|||
dateTo: Dayjs,
|
||||
duration: number | undefined,
|
||||
eventType: NonNullable<EventType>,
|
||||
userId: number
|
||||
userId: number,
|
||||
rescheduleUid?: string | null
|
||||
) => {
|
||||
performance.mark("limitsStart");
|
||||
|
||||
|
@ -445,6 +447,7 @@ const _getBusyTimesFromLimits = async (
|
|||
eventTypeId: eventType.id,
|
||||
startDate: limitDateFrom.toDate(),
|
||||
endDate: limitDateTo.toDate(),
|
||||
rescheduleUid: rescheduleUid,
|
||||
});
|
||||
|
||||
// run this first, as counting bookings should always run faster..
|
||||
|
|
Loading…
Reference in New Issue
Block a user