diff --git a/api/src/engine/connectors/datashield/main.connector.ts b/api/src/engine/connectors/datashield/main.connector.ts index b5a0c4fe10fce074bd1fdd6a7798e493c34152a9..a3622654e507cc5747d93ecd287dd2fe81c28247 100644 --- a/api/src/engine/connectors/datashield/main.connector.ts +++ b/api/src/engine/connectors/datashield/main.connector.ts @@ -1,17 +1,19 @@ -import { HttpService } from '@nestjs/axios'; import { Observable } from 'rxjs'; -import { IEngineOptions, IEngineService } from 'src/engine/engine.interfaces'; +import { IEngineService } from 'src/engine/engine.interfaces'; export default class DataShieldService implements IEngineService { - constructor( - private readonly options: IEngineOptions, - private readonly httpService: HttpService, - ) {} - demo(): string { return 'datashield'; } + getActiveUser(): Observable<string> { + throw new Error('Method not implemented.'); + } + + editActiveUser(): Observable<string> { + throw new Error('Method not implemented.'); + } + getExperiment(): Observable<string> { 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 9baa29676bc50d029a754b15b2a6b104207599b6..b85b494bec2fb8c1de2ac8bda441e9c71c3da241 100644 --- a/api/src/engine/connectors/exareme/main.connector.ts +++ b/api/src/engine/connectors/exareme/main.connector.ts @@ -13,6 +13,22 @@ export default class ExaremeService implements IEngineService { return 'exareme'; } + getActiveUser(): Observable<string> { + const path = this.options.baseurl + 'activeUser'; + + return this.httpService + .get<string>(path) + .pipe(map((response) => response.data)); + } + + editActiveUser(request: Request): Observable<string> { + const path = this.options.baseurl + 'activeUser/agreeNDA'; + + return this.httpService + .post<string>(path, request.body) + .pipe(map((response) => response.data)); + } + getExperiment(uuid: string): Observable<string> { const path = this.options.baseurl + `experiments/${uuid}`; diff --git a/api/src/engine/engine.controller.ts b/api/src/engine/engine.controller.ts index 8000ee7085bdb2ff3dd555beff3dfea74c95eedd..a495a2c317efa7911dc3f2e43915c88f9fb13830 100644 --- a/api/src/engine/engine.controller.ts +++ b/api/src/engine/engine.controller.ts @@ -64,4 +64,14 @@ export class EngineController { startExperiment(@Req() request: Request): Observable<string> { return this.engineService.startExperiment(request); } + + @Get('activeUser') + getActiveUser(@Req() request: Request): Observable<string> { + return this.engineService.getActiveUser(request); + } + + @Post('activeUser/agreeNDA') + agreeNDA(@Req() request: Request): Observable<string> { + return this.engineService.editActiveUser(request); + } } diff --git a/api/src/engine/engine.interfaces.ts b/api/src/engine/engine.interfaces.ts index 1582d541085a3cec8ee4b15e3c470a36eee43b52..22f4a540d36de9b4d05ee98a529bac322a706d26 100644 --- a/api/src/engine/engine.interfaces.ts +++ b/api/src/engine/engine.interfaces.ts @@ -22,4 +22,8 @@ export interface IEngineService { startExperimentTransient(request: Request): Observable<string>; startExperiment(request: Request): Observable<string>; + + getActiveUser(request: Request): Observable<string>; + + editActiveUser(request: Request): Observable<string>; }