Skip to content

Commit 7793cb2

Browse files
authored
Revert "perf: Replace isTeamMember util with an index DB call (calcom#24066)" (calcom#24078)
This reverts commit 8ed0fb6.
1 parent 8ed0fb6 commit 7793cb2

4 files changed

Lines changed: 17 additions & 29 deletions

File tree

packages/features/ee/teams/lib/queries.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -396,6 +396,16 @@ export async function isTeamOwner(userId: number, teamId: number) {
396396
}));
397397
}
398398

399+
export async function isTeamMember(userId: number, teamId: number) {
400+
return !!(await prisma.membership.findFirst({
401+
where: {
402+
userId,
403+
teamId,
404+
accepted: true,
405+
},
406+
}));
407+
}
408+
399409
export function generateNewChildEventTypeDataForDB({
400410
eventType,
401411
userId,

packages/lib/server/repository/membership.ts

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -303,22 +303,13 @@ export class MembershipRepository {
303303
});
304304
}
305305

306-
static async findUniqueByUserIdAndTeamId({
307-
userId,
308-
teamId,
309-
accepted,
310-
}: {
311-
userId: number;
312-
teamId: number;
313-
accepted?: boolean;
314-
}) {
306+
static async findUniqueByUserIdAndTeamId({ userId, teamId }: { userId: number; teamId: number }) {
315307
return await prisma.membership.findUnique({
316308
where: {
317309
userId_teamId: {
318310
userId,
319311
teamId,
320312
},
321-
accepted,
322313
},
323314
});
324315
}

packages/trpc/server/routers/viewer/teams/getInternalNotesPresets.handler.ts

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { MembershipRepository } from "@calcom/lib/server/repository/membership";
1+
import { isTeamMember } from "@calcom/features/ee/teams/lib/queries";
22
import { prisma } from "@calcom/prisma";
33
import type { TrpcSessionUser } from "@calcom/trpc/server/types";
44

@@ -14,14 +14,8 @@ type UpdateMembershipOptions = {
1414
};
1515

1616
export const getInternalNotesPresetsHandler = async ({ ctx, input }: UpdateMembershipOptions) => {
17-
const membership = await MembershipRepository.findUniqueByUserIdAndTeamId({
18-
userId: ctx.user.id,
19-
teamId: input.teamId,
20-
accepted: true,
21-
});
22-
23-
if (!membership) {
24-
throw new TRPCError({ code: "UNAUTHORIZED", message: "User is not a member of this team" });
17+
if (!(await isTeamMember(ctx.user?.id, input.teamId))) {
18+
throw new TRPCError({ code: "UNAUTHORIZED" });
2519
}
2620

2721
return await prisma.internalNotePreset.findMany({

packages/trpc/server/routers/viewer/teams/getMemberAvailability.handler.ts

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { enrichUserWithDelegationCredentialsIncludeServiceAccountKey } from "@calcom/lib/delegationCredential/server";
22
import { getUserAvailabilityService } from "@calcom/lib/di/containers/GetUserAvailability";
3+
import { isTeamMember } from "@calcom/features/ee/teams/lib/queries";
34
import { MembershipRepository } from "@calcom/lib/server/repository/membership";
45
import type { TrpcSessionUser } from "@calcom/trpc/server/types";
56

@@ -16,16 +17,8 @@ type GetMemberAvailabilityOptions = {
1617

1718
export const getMemberAvailabilityHandler = async ({ ctx, input }: GetMemberAvailabilityOptions) => {
1819
const userAvailabilityService = getUserAvailabilityService();
19-
20-
const membership = await MembershipRepository.findUniqueByUserIdAndTeamId({
21-
userId: ctx.user.id,
22-
teamId: input.teamId,
23-
accepted: true,
24-
});
25-
26-
if (!membership) {
27-
throw new TRPCError({ code: "UNAUTHORIZED", message: "User is not a member of this team" });
28-
}
20+
const team = await isTeamMember(ctx.user?.id, input.teamId);
21+
if (!team) throw new TRPCError({ code: "UNAUTHORIZED" });
2922

3023
// verify member is in team
3124
const members = await MembershipRepository.findByTeamIdForAvailability({ teamId: input.teamId });

0 commit comments

Comments
 (0)