From 9e37209d7e0dc62851ea1b7fb9d454a462c09d35 Mon Sep 17 00:00:00 2001
From: stevereis <stevereis93@gmail.com>
Date: Fri, 29 Oct 2021 16:19:06 +0200
Subject: [PATCH] WIP

---
 .../connectors/exareme/main.connector.ts      |  5 ++++
 api/src/engine/engine.controller.ts           |  3 +++
 api/src/engine/engine.resolver.ts             |  4 ++-
 .../interceptors/headers.interceptor.ts       | 25 +++++++++++++++++++
 4 files changed, 36 insertions(+), 1 deletion(-)
 create mode 100644 api/src/engine/interceptors/headers.interceptor.ts

diff --git a/api/src/engine/connectors/exareme/main.connector.ts b/api/src/engine/connectors/exareme/main.connector.ts
index 11f2ed6..b1c789e 100644
--- a/api/src/engine/connectors/exareme/main.connector.ts
+++ b/api/src/engine/connectors/exareme/main.connector.ts
@@ -109,6 +109,11 @@ export default class ExaremeService implements IEngineService {
   async getDomains(ids: string[]): Promise<Domain[]> {
     const path = this.options.baseurl + 'pathologies';
 
+    console.log(
+      'connectors headers',
+      this.httpService.axiosRef.defaults.headers,
+    );
+
     try {
       const data = await firstValueFrom(
         this.httpService.get<Pathology[]>(path),
diff --git a/api/src/engine/engine.controller.ts b/api/src/engine/engine.controller.ts
index fe65f35..fa8a75c 100644
--- a/api/src/engine/engine.controller.ts
+++ b/api/src/engine/engine.controller.ts
@@ -7,12 +7,15 @@ import {
   Patch,
   Post,
   Req,
+  UseInterceptors,
 } from '@nestjs/common';
 import { Request } from 'express';
 import { Observable } from 'rxjs';
 import { ENGINE_SERVICE } from './engine.constants';
 import { IEngineService } from './engine.interfaces';
+import { HeadersInterceptor } from './interceptors/headers.interceptor';
 
+@UseInterceptors(HeadersInterceptor)
 @Controller()
 export class EngineController {
   constructor(
diff --git a/api/src/engine/engine.resolver.ts b/api/src/engine/engine.resolver.ts
index 0cfac3a..6e23ba3 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 { HeadersInterceptor } from './interceptors/headers.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(HeadersInterceptor)
 @Resolver()
 export class EngineResolver {
   constructor(
diff --git a/api/src/engine/interceptors/headers.interceptor.ts b/api/src/engine/interceptors/headers.interceptor.ts
new file mode 100644
index 0000000..28c397f
--- /dev/null
+++ b/api/src/engine/interceptors/headers.interceptor.ts
@@ -0,0 +1,25 @@
+import { HttpService } from '@nestjs/axios';
+import {
+  Injectable,
+  NestInterceptor,
+  ExecutionContext,
+  CallHandler,
+} from '@nestjs/common';
+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>();
+
+    //console.log(context.switchToHttp().getRequest());
+
+    console.log('interceptor headers', request);
+
+    //this.httpService.axiosRef.defaults.headers = request.headers;
+
+    return next.handle();
+  }
+}
-- 
GitLab