29 lines
1.0 KiB
TypeScript
29 lines
1.0 KiB
TypeScript
import { type Request } from 'express';
|
|
import { type APP_LOCALES, SOURCE_LOCALE } from 'twenty-shared/translations';
|
|
|
|
import { type RawAuthContext } from 'src/engine/core-modules/auth/types/auth-context.type';
|
|
|
|
export const bindDataToRequestObject = (
|
|
data: RawAuthContext,
|
|
request: Request,
|
|
metadataVersion: number | undefined,
|
|
) => {
|
|
request.user = data.user;
|
|
request.apiKey = data.apiKey;
|
|
request.application = data.application;
|
|
request.userWorkspace = data.userWorkspace;
|
|
request.workspace = data.workspace;
|
|
request.workspaceId = data.workspace?.id;
|
|
request.workspaceMetadataVersion = metadataVersion;
|
|
request.workspaceMemberId = data.workspaceMemberId;
|
|
request.workspaceMember = data.workspaceMember;
|
|
request.userWorkspaceId = data.userWorkspaceId;
|
|
request.authProvider = data.authProvider;
|
|
request.impersonationContext = data.impersonationContext;
|
|
|
|
request.locale =
|
|
data.userWorkspace?.locale ??
|
|
(request.headers['x-locale'] as keyof typeof APP_LOCALES) ??
|
|
SOURCE_LOCALE;
|
|
};
|