diff --git a/api/src/engine/interceptors/headers.interceptor.ts b/api/src/engine/interceptors/headers.interceptor.ts index 28c397fa238fc1baf676b12fcdd199431f45fe74..c51b5caabda1c87b2fbdfee0f384d44cdd17f04e 100644 --- a/api/src/engine/interceptors/headers.interceptor.ts +++ b/api/src/engine/interceptors/headers.interceptor.ts @@ -5,20 +5,31 @@ import { ExecutionContext, CallHandler, } from '@nestjs/common'; +import { GqlExecutionContext } from '@nestjs/graphql'; +import { IncomingMessage } from 'http'; import { Observable } from 'rxjs'; @Injectable() export class HeadersInterceptor implements NestInterceptor { constructor(private httpService: HttpService) {} - intercept(context: ExecutionContext, next: CallHandler): Observable<any> { - const request = context.switchToHttp().getRequest<Request>(); + intercept(context: GqlExecutionContext, next: CallHandler): Observable<any> { + // cleaner : add only the auth header (should find the name) - //console.log(context.switchToHttp().getRequest()); - - console.log('interceptor headers', request); - - //this.httpService.axiosRef.defaults.headers = request.headers; + switch (context.getType()) { + case 'http': { + const ctx = context.switchToHttp(); + const request = ctx.getRequest<Request>(); + this.httpService.axiosRef.defaults.headers = request.headers; + break; + } + case 'graphql': { + const ctx = GqlExecutionContext.create(context); + const req: IncomingMessage = ctx.getContext().req; + this.httpService.axiosRef.defaults.headers = req.headers; + break; + } + } return next.handle(); }