From 2b0ec1aaabc6b9281f008a411cc7a4241fe177e9 Mon Sep 17 00:00:00 2001 From: stevereis <stevereis93@gmail.com> Date: Tue, 14 Sep 2021 17:28:08 +0200 Subject: [PATCH] Add endpoint for active user --- .../connectors/datashield/main.connector.ts | 16 +++++++++------- .../engine/connectors/exareme/main.connector.ts | 16 ++++++++++++++++ api/src/engine/engine.controller.ts | 10 ++++++++++ api/src/engine/engine.interfaces.ts | 4 ++++ 4 files changed, 39 insertions(+), 7 deletions(-) diff --git a/api/src/engine/connectors/datashield/main.connector.ts b/api/src/engine/connectors/datashield/main.connector.ts index b5a0c4f..a362265 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 9baa296..b85b494 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 8000ee7..a495a2c 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 1582d54..22f4a54 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>; } -- GitLab