diff --git a/api/src/engine/engine.controller.ts b/api/src/engine/engine.controller.ts index 4cb7c149e11fe6e4718fb63a5bf401658f0a9fa1..70619c287211cb4086a8e479c6b2e614a456c3ab 100644 --- a/api/src/engine/engine.controller.ts +++ b/api/src/engine/engine.controller.ts @@ -6,11 +6,13 @@ import { Param, Patch, Post, + UseInterceptors, } from '@nestjs/common'; import { Observable } from 'rxjs'; import { ENGINE_SERVICE } from './engine.constants'; import { IEngineService } from './engine.interfaces'; - +import { ErrorsInterceptor } from './interceptors/errors.interceptor'; +@UseInterceptors(ErrorsInterceptor) @Controller() export class EngineController { constructor( diff --git a/api/src/engine/engine.resolver.ts b/api/src/engine/engine.resolver.ts index 3e6a410e4c66543f5c29e1f84eae4264179381c0..fc2a736e0c3ff254072c2a5774caad13c8b3c189 100644 --- a/api/src/engine/engine.resolver.ts +++ b/api/src/engine/engine.resolver.ts @@ -1,7 +1,8 @@ -import { Inject } from '@nestjs/common'; +import { Inject, UseInterceptors } from '@nestjs/common'; import { Args, Mutation, Query, Resolver } from '@nestjs/graphql'; import { ENGINE_SERVICE } from './engine.constants'; import { IEngineService } from './engine.interfaces'; +import { ErrorsInterceptor } from './interceptors/errors.interceptor'; import { Domain } from './models/domain.model'; import { Algorithm } from './models/experiment/algorithm.model'; import { @@ -12,6 +13,7 @@ import { ExperimentCreateInput } from './models/experiment/input/experiment-crea import { ExperimentEditInput } from './models/experiment/input/experiment-edit.input'; import { ListExperiments } from './models/experiment/list-experiments.model'; +@UseInterceptors(ErrorsInterceptor) @Resolver() export class EngineResolver { constructor( diff --git a/api/src/engine/interceptors/headers.interceptor.ts b/api/src/engine/interceptors/errors.interceptor.ts similarity index 52% rename from api/src/engine/interceptors/headers.interceptor.ts rename to api/src/engine/interceptors/errors.interceptor.ts index 385d6e56d579b562d7c797c556e8e0b8b9d91504..528e62ae1b525d3f8618070a20c924cc0f140e7d 100644 --- a/api/src/engine/interceptors/headers.interceptor.ts +++ b/api/src/engine/interceptors/errors.interceptor.ts @@ -8,13 +8,12 @@ import { NestInterceptor, } from '@nestjs/common'; import { GqlExecutionContext } from '@nestjs/graphql'; -import { IncomingMessage } from 'http'; -import { catchError, Observable, tap } from 'rxjs'; +import { catchError, Observable } from 'rxjs'; import { ENGINE_MODULE_OPTIONS } from '../engine.constants'; import { IEngineOptions } from '../engine.interfaces'; @Injectable() -export class HeadersInterceptor implements NestInterceptor { +export class ErrorsInterceptor implements NestInterceptor { private readonly logger: Logger; constructor( @@ -27,33 +26,6 @@ export class HeadersInterceptor implements NestInterceptor { } intercept(context: GqlExecutionContext, next: CallHandler): Observable<any> { - // cleaner : add only the auth header (should find the name) - - const keys = ['cookie', 'x-xsrf-token']; // should be a module parameter - let headers = {}; - - switch (context.getType()) { - case 'http': { - const ctx = context.switchToHttp(); - const request = ctx.getRequest<Request>(); - headers = request.headers; - break; - } - case 'graphql': { - const ctx = GqlExecutionContext.create(context); - const req: IncomingMessage = ctx.getContext().req; - headers = req.headers; - break; - } - } - - Object.keys(headers) // copy needed keys - .filter((key) => keys.includes(key)) - .map((key) => key.toLowerCase()) - .forEach((key) => { - this.httpService.axiosRef.defaults.headers.common[key] = headers[key]; - }); - return next.handle().pipe( catchError((e) => { if (!e.response || !e.response.data || !e.response.status) throw e; @@ -64,9 +36,6 @@ export class HeadersInterceptor implements NestInterceptor { ); throw new HttpException(e.response.data, e.response.status); // catch errors, maybe make it optional (module parameter) }), - tap(() => { - this.httpService.axiosRef.defaults.headers.common = {}; // cleaning request - }), ); } }