Skip to content
Snippets Groups Projects
Commit e78f75dd authored by Steve Reis's avatar Steve Reis
Browse files

Merge branch...

Merge branch '4-as-a-client-i-want-to-query-the-experiments-so-that-we-manage-a-unified-api-url' into 'develop'

Resolve "As a client, I want to query the experiments so that we manage a unified api url"

Closes #4

See merge request sibmip/gateway!3
parents 2df83aaf 9e850a14
No related merge requests found
import { HttpService } from "@nestjs/axios";
import { Request } from "express";
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> {
demo(): string {
return "datashield";
}
getExperiment(uuid: string): Observable<string> {
throw new Error("Method not implemented.");
}
demo(): string {
return "datashield";
deleteExperiment(uuid: string, request: Request): Observable<string> {
throw new Error("Method not implemented.");
}
editExperiment(uuid: string, request: Request): Observable<string> {
throw new Error("Method not implemented.");
}
startExperimentTransient(request: Request): Observable<string> {
throw new Error("Method not implemented.");
}
startExperiment(request: Request): Observable<string> {
throw new Error("Method not implemented.");
}
getExperiments(): Observable<string> {
throw new Error("Method not implemented.");
}
getAlgorithms(): Observable<string> {
throw new Error("Method not implemented.");
}
}
\ No newline at end of file
import { HttpService } from "@nestjs/axios";
import { Request } from "express";
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) { }
demo(): string {
return "exareme"
}
getExperiment(uuid: string): Observable<string> {
const path = this.options.baseurl + `experiments/${uuid}`;
return this.httpService.get<string>(path).pipe(
map(response => response.data)
);
}
deleteExperiment(uuid: string): Observable<string> {
const path = this.options.baseurl + `experiments/${uuid}`;
return this.httpService.delete(path).pipe(
map(response => response.data)
)
}
editExperiment(uuid: string, request: Request): Observable<string> {
const path = this.options.baseurl + `experiments/${uuid}`;
return this.httpService.post(path,request.body).pipe(
map(response => response.data)
)
}
startExperimentTransient(request: Request): Observable<string> {
const path = this.options.baseurl + "experiments/transient";
return this.httpService.post(path, request.body).pipe(
map(response => response.data)
)
}
startExperiment(request: Request): Observable<string> {
const path = this.options.baseurl + "experiments";
return this.httpService.post(path, request.body).pipe(
map(response => response.data)
)
}
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";
......@@ -12,8 +65,4 @@ export default class ExaremeService implements IEngineService {
map(response => response.data)
);
}
demo(): string {
return "exareme"
}
}
\ No newline at end of file
import { HttpService } from '@nestjs/axios';
import { Controller, Get, Inject } from '@nestjs/common';
import { Controller, Delete, Get, Inject, Param, Patch, Post, 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 +14,37 @@ 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);
}
@Get("/experiments/:uuid")
getExperiment(@Param('uuid') uuid: string): Observable<string> {
return this.engineService.getExperiment(uuid);
}
@Delete("/experiments/:uuid")
deleteExperiment(@Param('uuid') uuid: string, @Req() request: Request): Observable<string> {
return this.engineService.deleteExperiment(uuid, request);
}
@Patch("/experiments/:uuid")
editExperiment(@Param('uuid') uuid: string, @Req() request: Request): Observable<string> {
return this.engineService.editExperiment(uuid, request);
}
@Post("experiments/transient")
startExperimentTransient(@Req() request: Request): Observable<string> {
return this.engineService.startExperimentTransient(request);
}
@Post("experiments")
startExperiment(@Req() request: Request): Observable<string> {
return this.engineService.startExperiment(request);
}
}
import { Request } from "express";
import { Observable } from "rxjs";
export interface IEngineOptions {
......@@ -8,5 +9,17 @@ export interface IEngineOptions {
export interface IEngineService {
demo(): string;
getAlgorithms(): Observable<string>;
getAlgorithms(request: Request): Observable<string>;
getExperiments(request: Request): Observable<string>;
getExperiment(uuid: string): Observable<string>;
deleteExperiment(uuid: string, request: Request): Observable<string>;
editExperiment(uuid: string, request: Request): Observable<string>;
startExperimentTransient(request: Request): Observable<string>;
startExperiment(request: Request): Observable<string>;
}
\ No newline at end of file
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment