diff --git a/api/src/engine/connectors/datashield/main.connector.ts b/api/src/engine/connectors/datashield/main.connector.ts index 7ec3b6d54f9264c324dfa937be0ae6488824daa2..ca80a280b92725135acb3e50ced9c7e7d1cbf034 100644 --- a/api/src/engine/connectors/datashield/main.connector.ts +++ b/api/src/engine/connectors/datashield/main.connector.ts @@ -1,40 +1,43 @@ -import { HttpService } from "@nestjs/axios"; -import { Request } from "express"; -import { Observable } from "rxjs"; -import { IEngineOptions, IEngineService } from "src/engine/engine.interfaces"; +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) { } - - demo(): string { - return "datashield"; - } - - getExperiment(uuid: string): Observable<string> { - throw new Error("Method not implemented."); - } - - 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 + constructor( + private readonly options: IEngineOptions, + private readonly httpService: HttpService, + ) {} + + demo(): string { + return 'datashield'; + } + + getExperiment(uuid: string): Observable<string> { + throw new Error('Method not implemented.'); + } + + 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.'); + } +} diff --git a/api/src/engine/connectors/exareme/main.connector.ts b/api/src/engine/connectors/exareme/main.connector.ts index 681e43be17165758634a7086e881c39beaf4b75f..9baa29676bc50d029a754b15b2a6b104207599b6 100644 --- a/api/src/engine/connectors/exareme/main.connector.ts +++ b/api/src/engine/connectors/exareme/main.connector.ts @@ -1,68 +1,69 @@ -import { HttpService } from "@nestjs/axios"; -import { Request } from "express"; -import { map, Observable } from "rxjs"; -import { IEngineOptions, IEngineService } from "src/engine/engine.interfaces"; +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"; - - return this.httpService.get<string>(path).pipe( - map(response => response.data) - ); - } -} \ No newline at end of file + 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'; + + return this.httpService + .get<string>(path) + .pipe(map((response) => response.data)); + } +} diff --git a/api/src/engine/engine.constants.ts b/api/src/engine/engine.constants.ts index 8cd04e3e70f4401d1b73841cf79c4e57ba138dd4..e8fe57799577d257d79d8eea188da5f1bed75417 100644 --- a/api/src/engine/engine.constants.ts +++ b/api/src/engine/engine.constants.ts @@ -1,2 +1,2 @@ -export const ENGINE_MODULE_OPTIONS = "EngineModuleOption"; -export const ENGINE_SERVICE = "EngineService" \ No newline at end of file +export const ENGINE_MODULE_OPTIONS = 'EngineModuleOption'; +export const ENGINE_SERVICE = 'EngineService'; diff --git a/api/src/engine/engine.controller.ts b/api/src/engine/engine.controller.ts index 28aa754d7f1101ad5e31c1189104dd59ddd87b1e..8000ee7085bdb2ff3dd555beff3dfea74c95eedd 100644 --- a/api/src/engine/engine.controller.ts +++ b/api/src/engine/engine.controller.ts @@ -1,4 +1,13 @@ -import { Controller, Delete, Get, Inject, Param, Patch, Post, Req } 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'; @@ -6,9 +15,11 @@ import { IEngineService } from './engine.interfaces'; @Controller() export class EngineController { - constructor(@Inject(ENGINE_SERVICE) private readonly engineService: IEngineService) { } + constructor( + @Inject(ENGINE_SERVICE) private readonly engineService: IEngineService, + ) {} - @Get("/test") + @Get('/test') getTest(): string { return this.engineService.demo(); } @@ -23,27 +34,33 @@ export class EngineController { return this.engineService.getExperiments(request); } - @Get("/experiments/:uuid") + @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> { + @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> { + @Patch('/experiments/:uuid') + editExperiment( + @Param('uuid') uuid: string, + @Req() request: Request, + ): Observable<string> { return this.engineService.editExperiment(uuid, request); } - @Post("experiments/transient") + @Post('experiments/transient') startExperimentTransient(@Req() request: Request): Observable<string> { return this.engineService.startExperimentTransient(request); } - @Post("experiments") + @Post('experiments') startExperiment(@Req() request: Request): Observable<string> { return this.engineService.startExperiment(request); } diff --git a/api/src/engine/engine.interfaces.ts b/api/src/engine/engine.interfaces.ts index 861393e5237ab4cf3be73666559143bf7733ef8f..1582d541085a3cec8ee4b15e3c470a36eee43b52 100644 --- a/api/src/engine/engine.interfaces.ts +++ b/api/src/engine/engine.interfaces.ts @@ -1,25 +1,25 @@ -import { Request } from "express"; -import { Observable } from "rxjs"; +import { Request } from 'express'; +import { Observable } from 'rxjs'; export interface IEngineOptions { - type: string; - baseurl: string; + type: string; + baseurl: string; } export interface IEngineService { - demo(): 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 + demo(): 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>; +} diff --git a/api/src/engine/engine.module.ts b/api/src/engine/engine.module.ts index bd998daf8db49063f9e0174309e443f09074e91c..d23d0b582b2d42fc59842953fa16bb3f1dabb9e5 100644 --- a/api/src/engine/engine.module.ts +++ b/api/src/engine/engine.module.ts @@ -19,9 +19,9 @@ export class EngineModule { const engineProvider = { provide: ENGINE_SERVICE, useFactory: async (httpService: HttpService) => { - return await this.createEngineConnection(options, httpService) + return await this.createEngineConnection(options, httpService); }, - inject: [HttpService] + inject: [HttpService], }; return { @@ -32,22 +32,18 @@ export class EngineModule { autoSchemaFile: join(process.cwd(), 'src/schema.gql'), }), ], - providers: [ - optionsProvider, - engineProvider, - EngineResolver - ], - controllers: [ - EngineController - ], + providers: [optionsProvider, engineProvider, EngineResolver], + controllers: [EngineController], exports: [optionsProvider, engineProvider], - } + }; } - private static async createEngineConnection(options: IEngineOptions, httpService: HttpService): Promise<IEngineService> { - let service = await import(`./connectors/${options.type}/main.connector`); + private static async createEngineConnection( + options: IEngineOptions, + httpService: HttpService, + ): Promise<IEngineService> { + const service = await import(`./connectors/${options.type}/main.connector`); return new service.default(options, httpService); } - } diff --git a/api/src/engine/engine.resolver.ts b/api/src/engine/engine.resolver.ts index e66bc13da0d1c7e211f35a0decff0a417b97c6e2..0e4687ca615da00101d0766b44fb7c3871e947b3 100644 --- a/api/src/engine/engine.resolver.ts +++ b/api/src/engine/engine.resolver.ts @@ -6,19 +6,21 @@ import { Domain } from './models/domain.model'; @Resolver() export class EngineResolver { - constructor(@Inject(ENGINE_SERVICE) private readonly engineService: IEngineService) { } + constructor( + @Inject(ENGINE_SERVICE) private readonly engineService: IEngineService, + ) {} - @Query(() => Domain) - async hello() { - let dummy: Domain = { - id: "test", - label: "test", - description: "test", - groups: [], - variables: [], - datasets: [] - } + @Query(() => Domain) + async hello() { + const dummy: Domain = { + id: 'test', + label: 'test', + description: 'test', + groups: [], + variables: [], + datasets: [], + }; - return dummy; - } -} \ No newline at end of file + return dummy; + } +} diff --git a/api/src/engine/models/category.model.ts b/api/src/engine/models/category.model.ts index 29ab318f83c2dcddacd718919e6bec7060e5c9e3..877acc5c3c4f5cb3eaf19b05f71879950b69dd76 100644 --- a/api/src/engine/models/category.model.ts +++ b/api/src/engine/models/category.model.ts @@ -1,10 +1,10 @@ -import { Field, ObjectType } from "@nestjs/graphql"; +import { Field, ObjectType } from '@nestjs/graphql'; @ObjectType() export class Category { - @Field() - id: string + @Field() + id: string; - @Field() - label: string; -} \ No newline at end of file + @Field() + label: string; +} diff --git a/api/src/engine/models/domain.model.ts b/api/src/engine/models/domain.model.ts index b1f3ccac521fdca1707075015eca274e62d60676..b7670409c03c3c023fb2dd939fe756c6feacb00a 100644 --- a/api/src/engine/models/domain.model.ts +++ b/api/src/engine/models/domain.model.ts @@ -1,9 +1,9 @@ -import { Field, ObjectType } from "@nestjs/graphql"; -import { Category } from "./category.model"; -import { Group } from "./group.model"; +import { Field, ObjectType } from '@nestjs/graphql'; +import { Category } from './category.model'; +import { Group } from './group.model'; @ObjectType() export class Domain extends Group { - @Field(type => [Category]) - datasets: Category[]; -} \ No newline at end of file + @Field((type) => [Category]) + datasets: Category[]; +} diff --git a/api/src/engine/models/group.model.ts b/api/src/engine/models/group.model.ts index dd30609f59c1a2dac275f214b0bbe1b3d18a3da0..a28b62a98b6749fc4800465f961cacfdd5d25abe 100644 --- a/api/src/engine/models/group.model.ts +++ b/api/src/engine/models/group.model.ts @@ -1,20 +1,20 @@ -import { Field, ObjectType } from "@nestjs/graphql"; -import { Variable } from "./variable.model"; +import { Field, ObjectType } from '@nestjs/graphql'; +import { Variable } from './variable.model'; @ObjectType() export class Group { - @Field() - id: string; + @Field() + id: string; - @Field() - label: string; + @Field() + label: string; - @Field({ nullable: true }) - description?: string; + @Field({ nullable: true }) + description?: string; - @Field(type => [Group]) - groups: Group[]; + @Field((type) => [Group]) + groups: Group[]; - @Field(type => [Variable]) - variables: Variable[]; -} \ No newline at end of file + @Field((type) => [Variable]) + variables: Variable[]; +} diff --git a/api/src/engine/models/variable.model.ts b/api/src/engine/models/variable.model.ts index dcc9a6f4e887b2f5e2f4fcf3c7c3cdcaa2f3b0e3..000b5e02ad61c24f4ac4f38639e5d91e9ebeb618 100644 --- a/api/src/engine/models/variable.model.ts +++ b/api/src/engine/models/variable.model.ts @@ -1,24 +1,24 @@ -import { Field, ObjectType } from "@nestjs/graphql"; -import { Category } from "./category.model"; -import { Group } from "./group.model"; +import { Field, ObjectType } from '@nestjs/graphql'; +import { Category } from './category.model'; +import { Group } from './group.model'; @ObjectType() export class Variable { - @Field() - id: string; + @Field() + id: string; - @Field({ nullable: true }) - label?: string; + @Field({ nullable: true }) + label?: string; - @Field() - type: string; + @Field() + type: string; - @Field({ nullable: true }) - description?: string; + @Field({ nullable: true }) + description?: string; - @Field(type => [Category]) - enumerations: Category[]; + @Field((type) => [Category]) + enumerations: Category[]; - @Field(type => [Group]) - groups: Group[]; -} \ No newline at end of file + @Field((type) => [Group]) + groups: Group[]; +} diff --git a/api/src/main.ts b/api/src/main.ts index 5f3c7f944ec32c52a62e6a4b0bdd081e71b611e6..d6f85b9d78faf28723a2b38bda2452c0866a8af4 100644 --- a/api/src/main.ts +++ b/api/src/main.ts @@ -2,7 +2,7 @@ import { NestFactory } from '@nestjs/core'; import { AppModule } from './main/app.module'; async function bootstrap() { - const app = await NestFactory.create(AppModule, {cors: true}); + const app = await NestFactory.create(AppModule, { cors: true }); await app.listen(process.env.GATEWAY_PORT); } bootstrap(); diff --git a/api/src/main/app.controller.ts b/api/src/main/app.controller.ts index 60647307bfcb11d99e62b992889d745b34233fe2..7fde2cfb54bd8c6bab2d9edde5e7afc623b01408 100644 --- a/api/src/main/app.controller.ts +++ b/api/src/main/app.controller.ts @@ -4,7 +4,7 @@ import { AppService } from './app.service'; @Controller() export class AppController { - constructor(private readonly appService: AppService) { } + constructor(private readonly appService: AppService) {} @Get() getHello(): string { diff --git a/api/src/main/app.module.ts b/api/src/main/app.module.ts index 326ae1d1de2dd87483264dd4a578632a5f275e15..7638ce2f6f28ce28f57f57974833ba8207669bba 100644 --- a/api/src/main/app.module.ts +++ b/api/src/main/app.module.ts @@ -8,13 +8,14 @@ import { AppService } from './app.service'; imports: [ ConfigModule.forRoot({ isGlobal: true, - envFilePath: ['.env', '.env.defaults'] + envFilePath: ['.env', '.env.defaults'], }), EngineModule.forRootAsync({ type: process.env.ENGINE_TYPE, baseurl: process.env.ENGINE_BASE_URL, - })], + }), + ], controllers: [AppController], providers: [AppService], }) -export class AppModule { } +export class AppModule {}