diff --git a/api/src/engine/connectors/datashield/main.connector.ts b/api/src/engine/connectors/datashield/main.connector.ts index ee877e21e4f6c94938ffe786a68b198bc429a779..643cd6dadd4955e6a85a875dc2819f5dc208db29 100644 --- a/api/src/engine/connectors/datashield/main.connector.ts +++ b/api/src/engine/connectors/datashield/main.connector.ts @@ -1,9 +1,14 @@ import { HttpService } from "@nestjs/axios"; +import { Observable } from "rxjs"; import { IEngineOptions, IEngineService } from "src/engine/engine.interfaces"; export default class DataShieldService implements IEngineService { constructor(private readonly options: IEngineOptions, private readonly httpService: HttpService) { } + getAlgorithms(): Observable<string> { + throw new Error("Method not implemented."); + } + demo(): string { return "datashield"; } diff --git a/api/src/engine/connectors/exareme/main.connector.ts b/api/src/engine/connectors/exareme/main.connector.ts index b8a6ae8d6bdb640549172a78968d9a9cfe231a92..10aa6527111885ca57e7898d85b69d47f03ede18 100644 --- a/api/src/engine/connectors/exareme/main.connector.ts +++ b/api/src/engine/connectors/exareme/main.connector.ts @@ -1,9 +1,18 @@ import { HttpService } from "@nestjs/axios"; +import { map, Observable } from "rxjs"; import { IEngineOptions, IEngineService } from "src/engine/engine.interfaces"; export default class ExaremeService implements IEngineService { constructor(private readonly options: IEngineOptions, private readonly httpService: HttpService) { } + getAlgorithms(): Observable<string> { + const path = this.options.baseurl + "algorithms"; + + return this.httpService.get<string>(path).pipe( + map(response => response.data) + ); + } + demo(): string { return "exareme" } diff --git a/api/src/engine/engine.controller.ts b/api/src/engine/engine.controller.ts index 5c9e3c59b04377fc4b4bf0e325a4ca1cd2cfd3fb..a5bae286a29e3894151772cf53ffcc44b4901f7f 100644 --- a/api/src/engine/engine.controller.ts +++ b/api/src/engine/engine.controller.ts @@ -1,5 +1,6 @@ import { HttpService } from '@nestjs/axios'; import { Controller, Get, Inject } from '@nestjs/common'; +import { Observable } from 'rxjs'; import { ENGINE_SERVICE } from './engine.constants'; import { IEngineService } from './engine.interfaces'; @@ -11,4 +12,9 @@ export class EngineController { getTest(): string { return this.engineService.demo(); } + + @Get('/algorithms') + getAlgorithms(): Observable<string> { + return this.engineService.getAlgorithms(); + } } diff --git a/api/src/engine/engine.interfaces.ts b/api/src/engine/engine.interfaces.ts index 271cbb1da4556360a61bbad0c38c009a510bdb8f..f9cbacc686ab0c60abc5321904aa25e00f304618 100644 --- a/api/src/engine/engine.interfaces.ts +++ b/api/src/engine/engine.interfaces.ts @@ -1,7 +1,12 @@ +import { Observable } from "rxjs"; + export interface IEngineOptions { type: string; + baseurl: string; } export interface IEngineService { demo(): string; + + getAlgorithms(): Observable<string>; } \ No newline at end of file