From 29201006d59083da4f3e54219dc2311a716a63ce Mon Sep 17 00:00:00 2001 From: Benny Joo Date: Sat, 6 Sep 2025 08:42:27 -0400 Subject: [PATCH] perf: optimize public event query by using lightweight session lookup (#23617) * refactor event endpoint * export getSessino --- packages/trpc/server/middlewares/sessionMiddleware.ts | 2 +- .../server/routers/publicViewer/procedures/event.ts | 10 ++++------ 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/packages/trpc/server/middlewares/sessionMiddleware.ts b/packages/trpc/server/middlewares/sessionMiddleware.ts index 7722d16ee0..e8779c39c4 100644 --- a/packages/trpc/server/middlewares/sessionMiddleware.ts +++ b/packages/trpc/server/middlewares/sessionMiddleware.ts @@ -87,7 +87,7 @@ export async function getUserFromSession(ctx: TRPCContextInner, session: Maybe>; -const getSession = async (ctx: TRPCContextInner) => { +export const getSession = async (ctx: TRPCContextInner) => { const { req } = ctx; const { getServerSession } = await import("@calcom/features/auth/lib/getServerSession"); return req ? await getServerSession({ req }) : null; diff --git a/packages/trpc/server/routers/publicViewer/procedures/event.ts b/packages/trpc/server/routers/publicViewer/procedures/event.ts index f0059124ba..b286e85be3 100644 --- a/packages/trpc/server/routers/publicViewer/procedures/event.ts +++ b/packages/trpc/server/routers/publicViewer/procedures/event.ts @@ -1,12 +1,10 @@ -import { getUserSession } from "../../../middlewares/sessionMiddleware"; +import { getSession } from "../../../middlewares/sessionMiddleware"; import publicProcedure from "../../../procedures/publicProcedure"; import { ZEventInputSchema } from "../event.schema"; -const NAMESPACE = "publicViewer"; -const namespaced = (s: string) => `${NAMESPACE}.${s}`; - export const event = publicProcedure.input(ZEventInputSchema).query(async (opts) => { - const { user } = await getUserSession(opts.ctx); + const session = await getSession(opts.ctx); + const userId = session?.user?.id; const { default: handler } = await import("../event.handler"); - return handler({ input: opts.input, userId: user?.id }); + return handler({ input: opts.input, userId }); });