chore: tech debt clearing - getServerSession has a dead arg: res (#19053)

* remove res from arg list in getServerSession

* remove res from all usages of getServerSession
This commit is contained in:
Benny Joo
2025-02-03 00:12:42 -05:00
committed by GitHub
parent 15d6839985
commit f0dc3bba17
29 changed files with 42 additions and 45 deletions
@@ -199,7 +199,7 @@ const getAppInstallsBySlug = async (appSlug: string, userId: number, teamIds?: n
};
export const getServerSideProps = async (context: GetServerSidePropsContext) => {
const { req, res, query, params } = context;
const { req, query, params } = context;
let eventTypeGroups: TEventTypeGroup[] | null = null;
let isOrg = false;
const stepsEnum = z.enum(STEPS);
@@ -207,7 +207,7 @@ export const getServerSideProps = async (context: GetServerSidePropsContext) =>
const parsedStepParam = z.coerce.string().parse(params?.step);
const parsedTeamIdParam = z.coerce.number().optional().parse(query?.teamId);
const _ = stepsEnum.parse(parsedStepParam);
const session = await getServerSession({ req, res });
const session = await getServerSession({ req });
if (!session?.user?.id) return { redirect: { permanent: false, destination: "/auth/login" } };
const locale = await getLocale(context.req);
const app = await getAppBySlug(parsedAppSlug);
@@ -17,7 +17,7 @@ import type { inferSSRProps } from "@lib/types/inferSSRProps";
export type PageProps = inferSSRProps<typeof getServerSideProps> & EmbedProps;
async function getUserPageProps(context: GetServerSidePropsContext) {
const session = await getServerSession(context);
const session = await getServerSession({ req: context.req });
const { link, slug } = paramsSchema.parse(context.params);
const { rescheduleUid, duration: queryDuration } = context.query;
const { currentOrgDomain, isValidOrgDomain } = orgDomainConfig(context.req);
@@ -23,7 +23,7 @@ const querySchema = z.object({
});
export async function getServerSideProps(context: GetServerSidePropsContext) {
const session = await getServerSession(context);
const session = await getServerSession({ req: context.req });
const {
uid: bookingUid,
@@ -6,7 +6,6 @@ import { getOptions } from "@calcom/feature-auth/lib/next-auth-options";
export const getServerSideProps = async (context: GetServerSidePropsContext) => {
const session = await getServerSession({
req: context.req,
res: context.res,
authOptions: getOptions({
getDubId: () => context.req.cookies.dub_id || context.req.cookies.dclid,
}),
@@ -46,7 +46,7 @@ export async function getServerSideProps(context: GetServerSidePropsContext) {
);
const ssr = await ssrInit(context);
const session = await getServerSession(context);
const session = await getServerSession({ req: context.req });
let tz: string | null = null;
let userTimeFormat: number | null = null;
let requiresLoginToUpdate = false;
+1 -1
View File
@@ -8,7 +8,7 @@ import prisma from "@calcom/prisma";
import { IdentityProvider } from "@calcom/prisma/enums";
export default async function handler(req: NextApiRequest, res: NextApiResponse) {
const session = await getServerSession({ req, res });
const session = await getServerSession({ req });
if (!session || !session.user || !session.user.email) {
res.status(401).json({ message: "Not authenticated" });
@@ -13,7 +13,7 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse)
return res.status(405).json({ message: "Method not allowed" });
}
const session = await getServerSession({ req, res });
const session = await getServerSession({ req });
if (!session) {
return res.status(401).json({ message: "Not authenticated" });
}
@@ -11,7 +11,7 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse)
return res.status(405).json({ message: "Method not allowed" });
}
const session = await getServerSession({ req, res });
const session = await getServerSession({ req });
if (!session) {
return res.status(401).json({ message: "Not authenticated" });
}
@@ -15,7 +15,7 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse)
return res.status(405).json({ message: "Method not allowed" });
}
const session = await getServerSession({ req, res });
const session = await getServerSession({ req });
if (!session) {
return res.status(401).json({ message: "Not authenticated" });
}
+3 -3
View File
@@ -1,4 +1,4 @@
import type { NextApiRequest, NextApiResponse } from "next";
import type { NextApiRequest } from "next";
import { getServerSession } from "@calcom/features/auth/lib/getServerSession";
import handleNewBooking from "@calcom/features/bookings/lib/handleNewBooking";
@@ -8,7 +8,7 @@ import { defaultResponder } from "@calcom/lib/server";
import { checkCfTurnstileToken } from "@calcom/lib/server/checkCfTurnstileToken";
import { CreationSource } from "@calcom/prisma/enums";
async function handler(req: NextApiRequest & { userId?: number }, res: NextApiResponse) {
async function handler(req: NextApiRequest & { userId?: number }) {
const userIp = getIP(req);
if (process.env.NEXT_PUBLIC_CLOUDFLARE_USE_TURNSTILE_IN_BOOKER === "1") {
@@ -23,7 +23,7 @@ async function handler(req: NextApiRequest & { userId?: number }, res: NextApiRe
identifier: userIp,
});
const session = await getServerSession({ req, res });
const session = await getServerSession({ req });
/* To mimic API behavior and comply with types */
req.userId = session?.user?.id || -1;
req.body = {
+3 -3
View File
@@ -1,4 +1,4 @@
import type { NextApiRequest, NextApiResponse } from "next";
import type { NextApiRequest } from "next";
import { getServerSession } from "@calcom/features/auth/lib/getServerSession";
import handleInstantMeeting from "@calcom/features/instant-meeting/handleInstantMeeting";
@@ -7,7 +7,7 @@ import getIP from "@calcom/lib/getIP";
import { defaultResponder } from "@calcom/lib/server";
import { CreationSource } from "@calcom/prisma/enums";
async function handler(req: NextApiRequest & { userId?: number }, res: NextApiResponse) {
async function handler(req: NextApiRequest & { userId?: number }) {
const userIp = getIP(req);
await checkRateLimitAndThrowError({
@@ -15,7 +15,7 @@ async function handler(req: NextApiRequest & { userId?: number }, res: NextApiRe
identifier: `instant.event-${userIp}`,
});
const session = await getServerSession({ req, res });
const session = await getServerSession({ req });
req.userId = session?.user?.id || -1;
req.body.creationSource = CreationSource.WEBAPP;
const booking = await handleInstantMeeting(req);
+3 -3
View File
@@ -1,4 +1,4 @@
import type { NextApiRequest, NextApiResponse } from "next";
import type { NextApiRequest } from "next";
import { getServerSession } from "@calcom/features/auth/lib/getServerSession";
import { handleNewRecurringBooking } from "@calcom/features/bookings/lib/handleNewRecurringBooking";
@@ -10,7 +10,7 @@ import { checkCfTurnstileToken } from "@calcom/lib/server/checkCfTurnstileToken"
// @TODO: Didn't look at the contents of this function in order to not break old booking page.
async function handler(req: NextApiRequest & { userId?: number }, res: NextApiResponse) {
async function handler(req: NextApiRequest & { userId?: number }) {
const userIp = getIP(req);
if (process.env.NEXT_PUBLIC_CLOUDFLARE_USE_TURNSTILE_IN_BOOKER === "1") {
@@ -24,7 +24,7 @@ async function handler(req: NextApiRequest & { userId?: number }, res: NextApiRe
rateLimitingType: "core",
identifier: userIp,
});
const session = await getServerSession({ req, res });
const session = await getServerSession({ req });
/* To mimic API behavior and comply with types */
req.userId = session?.user?.id || -1;
+3 -3
View File
@@ -1,11 +1,11 @@
import type { NextApiRequest, NextApiResponse } from "next";
import type { NextApiRequest } from "next";
import { getServerSession } from "@calcom/features/auth/lib/getServerSession";
import handleCancelBooking from "@calcom/features/bookings/lib/handleCancelBooking";
import { defaultResponder, defaultHandler } from "@calcom/lib/server";
async function handler(req: NextApiRequest & { userId?: number }, res: NextApiResponse) {
const session = await getServerSession({ req, res });
async function handler(req: NextApiRequest & { userId?: number }) {
const session = await getServerSession({ req });
/* To mimic API behavior and comply with types */
req.userId = session?.user?.id || -1;
return await handleCancelBooking(req);
+1 -1
View File
@@ -5,7 +5,7 @@ import { FUTURE_ROUTES_OVERRIDE_COOKIE_NAME as COOKIE_NAME } from "@calcom/lib/c
import { defaultHandler, defaultResponder } from "@calcom/lib/server";
async function handler(req: NextApiRequest, res: NextApiResponse): Promise<void> {
const session = await getServerSession({ req, res });
const session = await getServerSession({ req });
if (!session || !session.user || !session.user.email) {
res.status(401).json({ message: "Not authenticated" });
+1 -1
View File
@@ -9,7 +9,7 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse)
return res.status(405).json({ message: "Method not allowed" });
}
const session = await getServerSession({ req, res });
const session = await getServerSession({ req });
if (!session?.user?.username) {
return res.status(401).json({ message: "Unauthorized" });
+1 -1
View File
@@ -45,7 +45,7 @@ const defaultIntegrationAddHandler = async ({
const handler = async (req: NextApiRequest, res: NextApiResponse) => {
// Check that user is authenticated
req.session = await getServerSession({ req, res });
req.session = await getServerSession({ req });
const { args, teamId } = req.query;
+1 -1
View File
@@ -5,7 +5,7 @@ import { getServerSession } from "@calcom/features/auth/lib/getServerSession";
import { defaultHandler } from "@calcom/lib/server";
async function handler(req: NextApiRequest, res: NextApiResponse) {
const session = await getServerSession({ req, res });
const session = await getServerSession({ req });
const secret = process.env.INTERCOM_SECRET;
if (!session) {
+1 -1
View File
@@ -9,7 +9,7 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse)
const prePrismaDate = performance.now();
const prisma = (await import("@calcom/prisma")).default;
const preSessionDate = performance.now();
const session = await getServerSession({ req, res });
const session = await getServerSession({ req });
if (!session) return res.status(409).json({ message: "Unauthorized" });
const preUserDate = performance.now();
const user = await prisma.user.findUnique({ where: { id: session.user.id } });
@@ -14,7 +14,7 @@ const stateSchema = z.object({
});
export default async function handler(req: NextApiRequest, res: NextApiResponse) {
const session = await getServerSession({ req, res });
const session = await getServerSession({ req });
if (!session?.user?.id) {
return res.status(401).json({ message: "You must be logged in to do this" });
@@ -99,7 +99,7 @@ async function processSeatedEvent({
}
async function getDynamicGroupPageProps(context: GetServerSidePropsContext) {
const session = await getServerSession(context);
const session = await getServerSession({ req: context.req });
const { user: usernames, type: slug } = paramsSchema.parse(context.params);
const { rescheduleUid, bookingUid } = context.query;
@@ -195,7 +195,7 @@ async function getDynamicGroupPageProps(context: GetServerSidePropsContext) {
}
async function getUserPageProps(context: GetServerSidePropsContext) {
const session = await getServerSession(context);
const session = await getServerSession({ req: context.req });
const { user: usernames, type: slug } = paramsSchema.parse(context.params);
const username = usernames[0];
const { rescheduleUid, bookingUid } = context.query;
@@ -11,8 +11,8 @@ export const getServerSideProps = async (ctx: GetServerSidePropsContext) => {
if (typeof ctx.params?.slug !== "string") return notFound;
const { req, res } = ctx;
const session = await getServerSession({ req, res });
const { req } = ctx;
const session = await getServerSession({ req });
if (!session?.user?.id) {
const redirect = { redirect: { permanent: false, destination: "/auth/login" } } as const;
@@ -11,8 +11,8 @@ export const getServerSideProps = async (ctx: GetServerSidePropsContext) => {
if (typeof ctx.params?.slug !== "string") return notFound;
const { req, res } = ctx;
const session = await getServerSession({ req, res });
const { req } = ctx;
const session = await getServerSession({ req });
if (!session?.user?.id) {
const redirect = { redirect: { permanent: false, destination: "/auth/login" } } as const;
@@ -8,7 +8,7 @@ import { decodeOAuthState } from "../../_utils/oauth/decodeOAuthState";
import { storeHuddle01Credential } from "../utils/storage";
export default async function handler(req: NextApiRequest, res: NextApiResponse) {
const session = await getServerSession({ req, res });
const session = await getServerSession({ req });
const state = decodeOAuthState(req);
+1 -1
View File
@@ -14,7 +14,7 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse)
if (typeof appKeys.client_id === "string") client_id = appKeys.client_id;
if (!client_id) return res.status(400).json({ message: "pipedrive client id missing." });
// Check that user is authenticated
req.session = await getServerSession({ req, res });
req.session = await getServerSession({ req });
const { teamId } = req.query;
const user = req.session?.user;
if (!user) {
@@ -1,5 +1,5 @@
import { LRUCache } from "lru-cache";
import type { GetServerSidePropsContext, NextApiRequest, NextApiResponse } from "next";
import type { GetServerSidePropsContext, NextApiRequest } from "next";
import type { AuthOptions, Session } from "next-auth";
import { getToken } from "next-auth/jwt";
@@ -30,7 +30,6 @@ const CACHE = new LRUCache<string, Session>({ max: 1000 });
*/
export async function getServerSession(options: {
req: NextApiRequest | GetServerSidePropsContext["req"];
res?: NextApiResponse | GetServerSidePropsContext["res"];
authOptions?: AuthOptions;
}) {
const { req, authOptions: { secret } = {} } = options;
@@ -4,7 +4,7 @@ import { getServerSession } from "@calcom/features/auth/lib/getServerSession";
import { getFeatureFlag } from "@calcom/features/flags/server/utils";
import { MembershipRole } from "@calcom/prisma/client";
export const getServerSideProps = async ({ req, res }: GetServerSidePropsContext) => {
export const getServerSideProps = async ({ req }: GetServerSidePropsContext) => {
const prisma = await import("@calcom/prisma").then((mod) => mod.default);
const organizationsEnabled = await getFeatureFlag(prisma, "organizations");
// Check if organizations are enabled
@@ -15,7 +15,7 @@ export const getServerSideProps = async ({ req, res }: GetServerSidePropsContext
}
// Check if logged in user has an organization assigned
const session = await getServerSession({ req, res });
const session = await getServerSession({ req });
if (!session?.user.profile?.organizationId) {
return {
@@ -7,9 +7,8 @@ export type PageProps = inferSSRProps<typeof getServerSidePropsForMembers>;
export const getServerSidePropsForMembers = async function getServerSidePropsForMembers({
req,
res,
}: GetServerSidePropsContext) {
const session = await getServerSession({ req, res });
const session = await getServerSession({ req });
if (!session || !session.user) {
return {
+1 -1
View File
@@ -72,7 +72,7 @@ async function handler(req: NextApiRequest, res: NextApiResponse) {
if (!metadata.success) throw new HttpError({ statusCode: 400, message: "Invalid team metadata" });
}
const session = await getServerSession({ req, res });
const session = await getServerSession({ req });
if (!session) return { message: "Team upgraded successfully" };
@@ -85,9 +85,9 @@ export async function getUserFromSession(ctx: TRPCContextInner, session: Maybe<S
export type UserFromSession = Awaited<ReturnType<typeof getUserFromSession>>;
const getSession = async (ctx: TRPCContextInner) => {
const { req, res } = ctx;
const { req } = ctx;
const { getServerSession } = await import("@calcom/features/auth/lib/getServerSession");
return req ? await getServerSession({ req, res }) : null;
return req ? await getServerSession({ req }) : null;
};
export const getUserSession = async (ctx: TRPCContextInner) => {