From c2e812ad2cb3a2b8f56bc34a7c322394f1eb1e89 Mon Sep 17 00:00:00 2001 From: stevereis <stevereis93@gmail.com> Date: Mon, 13 Sep 2021 16:54:18 +0200 Subject: [PATCH] Added get experiments --- .../connectors/datashield/main.connector.ts | 4 ++++ .../engine/connectors/exareme/main.connector.ts | 8 ++++++++ api/src/engine/engine.controller.ts | 15 +++++++++++---- api/src/engine/engine.interfaces.ts | 5 ++++- 4 files changed, 27 insertions(+), 5 deletions(-) diff --git a/api/src/engine/connectors/datashield/main.connector.ts b/api/src/engine/connectors/datashield/main.connector.ts index 643cd6d..bcffa41 100644 --- a/api/src/engine/connectors/datashield/main.connector.ts +++ b/api/src/engine/connectors/datashield/main.connector.ts @@ -4,6 +4,10 @@ import { IEngineOptions, IEngineService } from "src/engine/engine.interfaces"; export default class DataShieldService implements IEngineService { constructor(private readonly options: IEngineOptions, private readonly httpService: HttpService) { } + + getExperiments(): Observable<string> { + throw new Error("Method not implemented."); + } getAlgorithms(): 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 10aa652..ccad44c 100644 --- a/api/src/engine/connectors/exareme/main.connector.ts +++ b/api/src/engine/connectors/exareme/main.connector.ts @@ -5,6 +5,14 @@ import { IEngineOptions, IEngineService } from "src/engine/engine.interfaces"; export default class ExaremeService implements IEngineService { constructor(private readonly options: IEngineOptions, private readonly httpService: HttpService) { } + getExperiments(): Observable<string> { + const path = this.options.baseurl + "experiments"; + + return this.httpService.get<string>(path).pipe( + map(response => response.data) + ); + } + getAlgorithms(): Observable<string> { const path = this.options.baseurl + "algorithms"; diff --git a/api/src/engine/engine.controller.ts b/api/src/engine/engine.controller.ts index a5bae28..1d158d3 100644 --- a/api/src/engine/engine.controller.ts +++ b/api/src/engine/engine.controller.ts @@ -1,12 +1,13 @@ import { HttpService } from '@nestjs/axios'; -import { Controller, Get, Inject } from '@nestjs/common'; +import { Controller, Get, Inject, Req } from '@nestjs/common'; +import { Request } from 'express'; import { Observable } from 'rxjs'; import { ENGINE_SERVICE } from './engine.constants'; import { IEngineService } from './engine.interfaces'; @Controller() export class EngineController { - constructor(@Inject(ENGINE_SERVICE) private readonly engineService: IEngineService, private readonly httpService: HttpService) { } + constructor(@Inject(ENGINE_SERVICE) private readonly engineService: IEngineService) { } @Get("/test") getTest(): string { @@ -14,7 +15,13 @@ export class EngineController { } @Get('/algorithms') - getAlgorithms(): Observable<string> { - return this.engineService.getAlgorithms(); + getAlgorithms(@Req() request: Request): Observable<string> { + return this.engineService.getAlgorithms(request); } + + @Get('/experiments') + getExperiments(@Req() request: Request): Observable<string> { + return this.engineService.getExperiments(request); + } + } diff --git a/api/src/engine/engine.interfaces.ts b/api/src/engine/engine.interfaces.ts index f9cbacc..84c0a55 100644 --- a/api/src/engine/engine.interfaces.ts +++ b/api/src/engine/engine.interfaces.ts @@ -1,3 +1,4 @@ +import { Request } from "express"; import { Observable } from "rxjs"; export interface IEngineOptions { @@ -8,5 +9,7 @@ export interface IEngineOptions { export interface IEngineService { demo(): string; - getAlgorithms(): Observable<string>; + getAlgorithms(request: Request): Observable<string>; + + getExperiments(request: Request): Observable<string>; } \ No newline at end of file -- GitLab