diff --git a/apps/web/lib/d/[link]/[slug]/getServerSideProps.tsx b/apps/web/lib/d/[link]/[slug]/getServerSideProps.tsx index 073d95f1d6..31cbed2209 100644 --- a/apps/web/lib/d/[link]/[slug]/getServerSideProps.tsx +++ b/apps/web/lib/d/[link]/[slug]/getServerSideProps.tsx @@ -1,5 +1,4 @@ import type { EmbedProps } from "app/WithEmbedSSR"; -import { createRouterCaller } from "app/_trpc/context"; import type { GetServerSidePropsContext } from "next"; import { z } from "zod"; @@ -7,11 +6,11 @@ import { getServerSession } from "@calcom/features/auth/lib/getServerSession"; import { getBookingForReschedule, getMultipleDurationValue } from "@calcom/features/bookings/lib/get-booking"; import type { GetBookingType } from "@calcom/features/bookings/lib/get-booking"; import { orgDomainConfig } from "@calcom/features/ee/organizations/lib/orgDomains"; +import { EventRepository } from "@calcom/lib/server/repository/event"; import { UserRepository } from "@calcom/lib/server/repository/user"; import slugify from "@calcom/lib/slugify"; import prisma from "@calcom/prisma"; import { RedirectType } from "@calcom/prisma/enums"; -import { publicViewerRouter } from "@calcom/trpc/server/routers/publicViewer/_router"; import { getTemporaryOrgRedirect } from "@lib/getTemporaryOrgRedirect"; import type { inferSSRProps } from "@lib/types/inferSSRProps"; @@ -112,17 +111,16 @@ async function getUserPageProps(context: GetServerSidePropsContext) { const isTeamEvent = !!hashedLink.eventType?.team?.id; - // We use this to both prefetch the query on the server, - // as well as to check if the event exist, so we c an show a 404 otherwise. - const caller = await createRouterCaller(publicViewerRouter); - - const eventData = await caller.event({ - username: name, - eventSlug: slug, - isTeamEvent, - org, - fromRedirectOfNonOrgLink: context.query.orgRedirection === "true", - }); + const eventData = await EventRepository.getPublicEvent( + { + username: name, + eventSlug: slug, + isTeamEvent, + org, + fromRedirectOfNonOrgLink: context.query.orgRedirection === "true", + }, + session?.user?.id + ); if (!eventData) { return notFound; diff --git a/apps/web/lib/org/[orgSlug]/instant-meeting/team/[slug]/[type]/getServerSideProps.ts b/apps/web/lib/org/[orgSlug]/instant-meeting/team/[slug]/[type]/getServerSideProps.ts index 487ccc1b91..5b85b61d87 100644 --- a/apps/web/lib/org/[orgSlug]/instant-meeting/team/[slug]/[type]/getServerSideProps.ts +++ b/apps/web/lib/org/[orgSlug]/instant-meeting/team/[slug]/[type]/getServerSideProps.ts @@ -1,13 +1,13 @@ -import { createRouterCaller } from "app/_trpc/context"; import type { GetServerSidePropsContext } from "next"; import { z } from "zod"; +import { getServerSession } from "@calcom/features/auth/lib/getServerSession"; import { getMultipleDurationValue } from "@calcom/features/bookings/lib/get-booking"; import { getSlugOrRequestedSlug } from "@calcom/features/ee/organizations/lib/orgDomains"; import { orgDomainConfig } from "@calcom/features/ee/organizations/lib/orgDomains"; +import { EventRepository } from "@calcom/lib/server/repository/event"; import slugify from "@calcom/lib/slugify"; import prisma from "@calcom/prisma"; -import { publicViewerRouter } from "@calcom/trpc/server/routers/publicViewer/_router"; const paramsSchema = z.object({ type: z.string().transform((s) => slugify(s)), @@ -38,18 +38,24 @@ export const getServerSideProps = async (context: GetServerSidePropsContext) => } const org = isValidOrgDomain ? currentOrgDomain : null; + if (!org) { + return { + notFound: true, + } as const; + } + const session = await getServerSession({ req: context.req }); + const eventData = await EventRepository.getPublicEvent( + { + username: teamSlug, + eventSlug: meetingSlug, + isTeamEvent: true, + org, + fromRedirectOfNonOrgLink: context.query.orgRedirection === "true", + }, + session?.user?.id + ); - const caller = await createRouterCaller(publicViewerRouter); - - const eventData = await caller.event({ - username: teamSlug, - eventSlug: meetingSlug, - isTeamEvent: true, - org, - fromRedirectOfNonOrgLink: context.query.orgRedirection === "true", - }); - - if (!eventData || !org) { + if (!eventData) { return { notFound: true, } as const; diff --git a/apps/web/modules/d/[link]/d-type-view.tsx b/apps/web/modules/d/[link]/d-type-view.tsx index 39c221ab12..9d1d75e0d0 100644 --- a/apps/web/modules/d/[link]/d-type-view.tsx +++ b/apps/web/modules/d/[link]/d-type-view.tsx @@ -18,11 +18,13 @@ export default function Type({ duration, hashedLink, durationConfig, + eventData, }: PageProps) { return (
& EmbedProps; -function Type({ slug, user, booking, isEmbed, isBrandingHidden, entity, eventTypeId, duration }: Props) { +function Type({ + slug, + user, + booking, + isEmbed, + isBrandingHidden, + entity, + eventTypeId, + duration, + eventData, +}: Props) { return (