diff --git a/api/src/engine/connectors/csv/main.connector.ts b/api/src/engine/connectors/csv/main.connector.ts index eedb7ae6b31074fbe1e5c66970aa008f62859004..05864adb55c7141de3ec49bd6854b5fdcdb793ee 100644 --- a/api/src/engine/connectors/csv/main.connector.ts +++ b/api/src/engine/connectors/csv/main.connector.ts @@ -19,6 +19,10 @@ export default class CSVService implements IEngineService { private readonly httpService: HttpService, ) {} + logout() { + throw new Error('Method not implemented.'); + } + getAlgorithms(): Algorithm[] | Promise<Algorithm[]> { throw new Error('Method not implemented.'); } diff --git a/api/src/engine/connectors/datashield/main.connector.ts b/api/src/engine/connectors/datashield/main.connector.ts index 829147fe9b985703be4868f6e12b8889884d8abe..4df8aa14bf1fda0bdec3a4d21c98cc79277cdd83 100644 --- a/api/src/engine/connectors/datashield/main.connector.ts +++ b/api/src/engine/connectors/datashield/main.connector.ts @@ -11,6 +11,10 @@ import { ExperimentEditInput } from 'src/engine/models/experiment/input/experime import { Algorithm } from 'src/engine/models/experiment/algorithm.model'; export default class DataShieldService implements IEngineService { + logout(): void { + throw new Error('Method not implemented.'); + } + getAlgorithms(): Algorithm[] | Promise<Algorithm[]> { throw new Error('Method not implemented.'); } diff --git a/api/src/engine/connectors/exareme/main.connector.ts b/api/src/engine/connectors/exareme/main.connector.ts index b1c789e9909c445a77d001bd50c12d1070200584..35d34e783f238c62247f877151d2bc4899fc905a 100644 --- a/api/src/engine/connectors/exareme/main.connector.ts +++ b/api/src/engine/connectors/exareme/main.connector.ts @@ -1,6 +1,11 @@ import { HttpService } from '@nestjs/axios'; -import { BadRequestException, HttpException, HttpStatus } from '@nestjs/common'; -import { Request } from 'express'; +import { + BadRequestException, + HttpException, + HttpStatus, + Res, +} from '@nestjs/common'; +import { Request, Response } from 'express'; import { firstValueFrom, map, Observable } from 'rxjs'; import { IEngineOptions, IEngineService } from 'src/engine/engine.interfaces'; import { Domain } from 'src/engine/models/domain.model'; @@ -33,6 +38,14 @@ export default class ExaremeService implements IEngineService { private readonly httpService: HttpService, ) {} + async logout(@Res() response: Response = undefined) { + const path = `${this.options.baseurl}logout`; + + await firstValueFrom(this.httpService.get(path)); + + response?.clearCookie('OAuth_Token_Request_State'); + } + async createExperiment( data: ExperimentCreateInput, isTransient = false, @@ -109,11 +122,6 @@ 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/connectors/local/main.connector.ts b/api/src/engine/connectors/local/main.connector.ts index 2ff1a44faa75d436313c152256cfdcf46299121d..cb472d927f571c9553c0115624a9981f2be653c6 100644 --- a/api/src/engine/connectors/local/main.connector.ts +++ b/api/src/engine/connectors/local/main.connector.ts @@ -11,6 +11,10 @@ import { ExperimentEditInput } from 'src/engine/models/experiment/input/experime import { Algorithm } from 'src/engine/models/experiment/algorithm.model'; export default class LocalService implements IEngineService { + logout(): void { + throw new Error('Method not implemented.'); + } + getAlgorithms(): Algorithm[] | Promise<Algorithm[]> { throw new Error('Method not implemented.'); } diff --git a/api/src/engine/engine.controller.ts b/api/src/engine/engine.controller.ts index fa8a75c6edee62019cff52a19647ed5cb3eec3e1..266f1a28e4531edb1b3776a701ab2c3715197d95 100644 --- a/api/src/engine/engine.controller.ts +++ b/api/src/engine/engine.controller.ts @@ -74,4 +74,9 @@ export class EngineController { agreeNDA(@Req() request: Request): Observable<string> | string { return this.engineService.editActiveUser(request); } + + @Get('logout') + logout(): void { + this.engineService.logout(); + } } diff --git a/api/src/engine/engine.interfaces.ts b/api/src/engine/engine.interfaces.ts index e3f68aa1b75967c8d9cca9b8c52c4a120f0d7a43..331ffe7fec9a53a3ed62e87b23283d0e8b393580 100644 --- a/api/src/engine/engine.interfaces.ts +++ b/api/src/engine/engine.interfaces.ts @@ -63,4 +63,6 @@ export interface IEngineService { getActiveUser(request: Request): Observable<string> | string; editActiveUser(request: Request): Observable<string> | string; + + logout(): void; }