Files
calendar/apps/api/v2/src/lib/extract-user-context.ts
T

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;
}