Revert "perf: Replace isTeamMember util with an index DB call (#24066)" (#24078)

This reverts commit 8ed0fb6a07.
This commit is contained in:
Benny Joo
2025-09-25 14:35:12 +00:00
committed by GitHub
parent 8ed0fb6a07
commit 7793cb20d1
4 changed files with 17 additions and 29 deletions
+10
View File
@@ -396,6 +396,16 @@ export async function isTeamOwner(userId: number, teamId: number) {
}));
}
export async function isTeamMember(userId: number, teamId: number) {
return !!(await prisma.membership.findFirst({
where: {
userId,
teamId,
accepted: true,
},
}));
}
export function generateNewChildEventTypeDataForDB({
eventType,
userId,
+1 -10
View File
@@ -303,22 +303,13 @@ export class MembershipRepository {
});
}
static async findUniqueByUserIdAndTeamId({
userId,
teamId,
accepted,
}: {
userId: number;
teamId: number;
accepted?: boolean;
}) {
static async findUniqueByUserIdAndTeamId({ userId, teamId }: { userId: number; teamId: number }) {
return await prisma.membership.findUnique({
where: {
userId_teamId: {
userId,
teamId,
},
accepted,
},
});
}
@@ -1,4 +1,4 @@
import { MembershipRepository } from "@calcom/lib/server/repository/membership";
import { isTeamMember } from "@calcom/features/ee/teams/lib/queries";
import { prisma } from "@calcom/prisma";
import type { TrpcSessionUser } from "@calcom/trpc/server/types";
@@ -14,14 +14,8 @@ type UpdateMembershipOptions = {
};
export const getInternalNotesPresetsHandler = async ({ ctx, input }: UpdateMembershipOptions) => {
const membership = await MembershipRepository.findUniqueByUserIdAndTeamId({
userId: ctx.user.id,
teamId: input.teamId,
accepted: true,
});
if (!membership) {
throw new TRPCError({ code: "UNAUTHORIZED", message: "User is not a member of this team" });
if (!(await isTeamMember(ctx.user?.id, input.teamId))) {
throw new TRPCError({ code: "UNAUTHORIZED" });
}
return await prisma.internalNotePreset.findMany({
@@ -1,5 +1,6 @@
import { enrichUserWithDelegationCredentialsIncludeServiceAccountKey } from "@calcom/lib/delegationCredential/server";
import { getUserAvailabilityService } from "@calcom/lib/di/containers/GetUserAvailability";
import { isTeamMember } from "@calcom/features/ee/teams/lib/queries";
import { MembershipRepository } from "@calcom/lib/server/repository/membership";
import type { TrpcSessionUser } from "@calcom/trpc/server/types";
@@ -16,16 +17,8 @@ type GetMemberAvailabilityOptions = {
export const getMemberAvailabilityHandler = async ({ ctx, input }: GetMemberAvailabilityOptions) => {
const userAvailabilityService = getUserAvailabilityService();
const membership = await MembershipRepository.findUniqueByUserIdAndTeamId({
userId: ctx.user.id,
teamId: input.teamId,
accepted: true,
});
if (!membership) {
throw new TRPCError({ code: "UNAUTHORIZED", message: "User is not a member of this team" });
}
const team = await isTeamMember(ctx.user?.id, input.teamId);
if (!team) throw new TRPCError({ code: "UNAUTHORIZED" });
// verify member is in team
const members = await MembershipRepository.findByTeamIdForAvailability({ teamId: input.teamId });