From 25bf43cdddcc4fd4c4bf7df3ee99da7594622a7d Mon Sep 17 00:00:00 2001 From: Udit Takkar <53316345+Udit-takkar@users.noreply.github.com> Date: Thu, 19 Jun 2025 02:29:33 +0530 Subject: [PATCH] perf: improve invalid app credential query (#21909) --- .../me/checkForInvalidAppCredentials.ts | 29 +++++++++---------- 1 file changed, 13 insertions(+), 16 deletions(-) diff --git a/packages/trpc/server/routers/viewer/me/checkForInvalidAppCredentials.ts b/packages/trpc/server/routers/viewer/me/checkForInvalidAppCredentials.ts index 410822f3e1..31f0b855a3 100644 --- a/packages/trpc/server/routers/viewer/me/checkForInvalidAppCredentials.ts +++ b/packages/trpc/server/routers/viewer/me/checkForInvalidAppCredentials.ts @@ -13,24 +13,21 @@ type checkInvalidAppCredentialsOptions = { export const checkInvalidAppCredentials = async ({ ctx }: checkInvalidAppCredentialsOptions) => { const userId = ctx.user.id; + // First get the teams where user is admin/owner + const userTeamIds = await prisma.membership.findMany({ + where: { + userId: userId, + accepted: true, + role: { in: [MembershipRole.ADMIN, MembershipRole.OWNER] }, + }, + select: { + teamId: true, + }, + }); + const apps = await prisma.credential.findMany({ where: { - OR: [ - { - userId: userId, - }, - { - team: { - members: { - some: { - userId: userId, - accepted: true, - role: { in: [MembershipRole.ADMIN, MembershipRole.OWNER] }, - }, - }, - }, - }, - ], + OR: [{ userId }, { teamId: { in: userTeamIds.map((membership) => membership.teamId) } }], invalid: true, }, select: {