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 authored and GitHub committed 2025-01-31 12:19:21 +02:00
1 parent 8d2dc0bbe5
commit 56cd9cef8b
10 files changed
+138 -66

No files matched your search

@@ -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: {
+18
View File
@@ -1251,6 +1251,15 @@
"schema": {
"type": "string"
}
},
{
"name": "hostsLimit",
"required": false,
"in": "query",
"description": "Specifies the maximum number of hosts to include in the response. This limit helps optimize performance. If not provided, all Hosts will be fetched.",
"schema": {
"type": "number"
}
}
],
"responses": {
@@ -5889,6 +5898,15 @@
"schema": {
"type": "string"
}
},
{
"name": "hostsLimit",
"required": false,
"in": "query",
"description": "Specifies the maximum number of hosts to include in the response. This limit helps optimize performance. If not provided, all Hosts will be fetched.",
"schema": {
"type": "number"
}
}
],
"responses": {