perf: don't fetch all the hosts #18319 followup (#19021)

* perf: don't fetch all the hosts #18319 followup

* undo for user events

* undo for regular user events

* fix: limitHostsToThree -> hostsLimit

* accepting hostLimit prop in <Booker />

* Update booking.tsx

* hostLimit -> hostsLimit
This commit is contained in:
Somay Chauhan
2025-01-31 12:19:21 +02:00
committed by GitHub
parent 8d2dc0bbe5
commit 56cd9cef8b
10 changed files with 138 additions and 66 deletions
@@ -149,10 +149,14 @@ export class OrganizationsEventTypesController {
@Param("teamId", ParseIntPipe) teamId: number,
@Query() queryParams: GetTeamEventTypesQuery_2024_06_14
): Promise<GetTeamEventTypesOutput> {
const { eventSlug } = queryParams;
const { eventSlug, hostsLimit } = queryParams;
if (eventSlug) {
const eventType = await this.organizationsEventTypesService.getTeamEventTypeBySlug(teamId, eventSlug);
const eventType = await this.organizationsEventTypesService.getTeamEventTypeBySlug(
teamId,
eventSlug,
hostsLimit
);
return {
status: SUCCESS_STATUS,
@@ -64,8 +64,12 @@ export class OrganizationsEventTypesService {
return this.teamsEventTypesService.getTeamEventType(teamId, eventTypeId);
}
async getTeamEventTypeBySlug(teamId: number, eventTypeSlug: string): Promise<DatabaseTeamEventType | null> {
return this.teamsEventTypesService.getTeamEventTypeBySlug(teamId, eventTypeSlug);
async getTeamEventTypeBySlug(
teamId: number,
eventTypeSlug: string,
hostsLimit?: number
): Promise<DatabaseTeamEventType | null> {
return this.teamsEventTypesService.getTeamEventTypeBySlug(teamId, eventTypeSlug, hostsLimit);
}
async getTeamEventTypes(teamId: number): Promise<DatabaseTeamEventType[]> {
@@ -75,8 +75,16 @@ export class TeamsEventTypesService {
return eventType;
}
async getTeamEventTypeBySlug(teamId: number, eventTypeSlug: string): Promise<DatabaseTeamEventType | null> {
const eventType = await this.teamsEventTypesRepository.getTeamEventTypeBySlug(teamId, eventTypeSlug);
async getTeamEventTypeBySlug(
teamId: number,
eventTypeSlug: string,
hostsLimit?: number
): Promise<DatabaseTeamEventType | null> {
const eventType = await this.teamsEventTypesRepository.getTeamEventTypeBySlug(
teamId,
eventTypeSlug,
hostsLimit
);
if (!eventType) {
return null;
@@ -16,7 +16,7 @@ export class TeamsEventTypesRepository {
});
}
async getTeamEventTypeBySlug(teamId: number, eventTypeSlug: string) {
async getTeamEventTypeBySlug(teamId: number, eventTypeSlug: string, hostsLimit?: number) {
return this.dbRead.prisma.eventType.findUnique({
where: {
teamId_slug: {
@@ -27,7 +27,11 @@ export class TeamsEventTypesRepository {
include: {
users: true,
schedule: true,
hosts: true,
hosts: hostsLimit
? {
take: hostsLimit,
}
: true,
destinationCalendar: true,
team: {
select: {