Files
twenty/packages/twenty-server/src/utils/extract-request.ts
2023-12-10 18:10:54 +01:00

28 lines
870 B
TypeScript

import { ExecutionContext } from '@nestjs/common';
import { GqlContextType, GqlExecutionContext } from '@nestjs/graphql';
// extract request from the execution context
export const getRequest = (context: ExecutionContext) => {
let request;
// if context is an http request
if (context.getType() === 'http') {
request = context.switchToHttp().getRequest();
} else if (context.getType<GqlContextType>() === 'graphql') {
// if context is a graphql request
const graphQLContext = GqlExecutionContext.create(context);
const { req, connection } = graphQLContext.getContext();
request =
connection && connection.context && connection.context.headers
? connection.context
: req;
} else if (context.getType() === 'rpc') {
// if context is a rpc request
throw new Error('Not implemented');
}
return request;
};