39 lines
1002 B
TypeScript
39 lines
1002 B
TypeScript
import { Request } from "express";
|
|
|
|
import { Team } from "@calcom/prisma/client";
|
|
|
|
import { ApiAuthGuardUser } from "../modules/auth/strategies/api-auth/api-auth.strategy";
|
|
|
|
export interface UserContext {
|
|
userId?: string;
|
|
userEmail?: string;
|
|
organizationId?: string;
|
|
teamId?: string;
|
|
userOrgId?: string;
|
|
}
|
|
|
|
export function extractUserContext(request: Request): UserContext {
|
|
const context: UserContext = {};
|
|
|
|
const user = (request as any).user as ApiAuthGuardUser | undefined;
|
|
if (user) {
|
|
context.userId = String(user.id);
|
|
context.userEmail = user.email;
|
|
if (user.profiles?.[0]?.organizationId) {
|
|
context.userOrgId = String(user.profiles?.[0].organizationId);
|
|
}
|
|
}
|
|
|
|
const organizationId = (request as any).organizationId as number | undefined;
|
|
if (organizationId) {
|
|
context.organizationId = String(organizationId);
|
|
}
|
|
|
|
const team = (request as any).team as Team | undefined;
|
|
if (team) {
|
|
context.teamId = String(team.id);
|
|
}
|
|
|
|
return context;
|
|
}
|