2024-01-30 17:31:27 +11:00
|
|
|
import type { CreateNextContextOptions } from '@trpc/server/adapters/next';
|
2023-06-09 18:21:18 +10:00
|
|
|
|
|
|
|
|
import { getServerSession } from '@documenso/lib/next-auth/get-server-session';
|
|
|
|
|
|
|
|
|
|
export const createTrpcContext = async ({ req, res }: CreateNextContextOptions) => {
|
2023-09-28 17:32:31 +10:00
|
|
|
const { session, user } = await getServerSession({ req, res });
|
2023-06-09 18:21:18 +10:00
|
|
|
|
|
|
|
|
if (!session) {
|
|
|
|
|
return {
|
|
|
|
|
session: null,
|
|
|
|
|
user: null,
|
2024-01-30 17:31:27 +11:00
|
|
|
req,
|
2023-06-09 18:21:18 +10:00
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
|
2023-09-28 17:32:31 +10:00
|
|
|
if (!user) {
|
|
|
|
|
return {
|
|
|
|
|
session: null,
|
|
|
|
|
user: null,
|
2024-01-30 17:31:27 +11:00
|
|
|
req,
|
2023-09-28 17:32:31 +10:00
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
|
2023-06-09 18:21:18 +10:00
|
|
|
return {
|
|
|
|
|
session,
|
2023-09-28 17:32:31 +10:00
|
|
|
user,
|
2024-01-30 17:31:27 +11:00
|
|
|
req,
|
2023-06-09 18:21:18 +10:00
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
export type TrpcContext = Awaited<ReturnType<typeof createTrpcContext>>;
|