diff --git a/api/src/engine/engine.resolver.ts b/api/src/engine/engine.resolver.ts index e2bcfa5c76bf3823f895ff90dd77a92a8238c47a..7156789427ab82d2ea928a5703cee5dea46e69fc 100644 --- a/api/src/engine/engine.resolver.ts +++ b/api/src/engine/engine.resolver.ts @@ -2,13 +2,23 @@ import { Inject } from '@nestjs/common'; import { Query, Resolver } from '@nestjs/graphql'; import { ENGINE_SERVICE } from './engine.constants'; import { IEngineService } from './engine.interfaces'; +import { Domain } from './models/domain.model'; @Resolver() export class EngineResolver { constructor(@Inject(ENGINE_SERVICE) private readonly engineService: IEngineService) { } - @Query(() => String) + @Query(() => Domain) async hello() { - return this.engineService.demo(); + let dummy : Domain = { + id: "test", + label: "test", + description: "test", + groups:[], + variables: [], + datasets: [] + } + + return dummy; } } \ No newline at end of file diff --git a/api/src/engine/models/category.model.ts b/api/src/engine/models/category.model.ts new file mode 100644 index 0000000000000000000000000000000000000000..29ab318f83c2dcddacd718919e6bec7060e5c9e3 --- /dev/null +++ b/api/src/engine/models/category.model.ts @@ -0,0 +1,10 @@ +import { Field, ObjectType } from "@nestjs/graphql"; + +@ObjectType() +export class Category { + @Field() + id: string + + @Field() + label: string; +} \ No newline at end of file diff --git a/api/src/engine/models/domain.model.ts b/api/src/engine/models/domain.model.ts new file mode 100644 index 0000000000000000000000000000000000000000..bffe59e04ed5cf411ed0e00c71751a65c6339aba --- /dev/null +++ b/api/src/engine/models/domain.model.ts @@ -0,0 +1,9 @@ +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 diff --git a/api/src/engine/models/group.model.ts b/api/src/engine/models/group.model.ts new file mode 100644 index 0000000000000000000000000000000000000000..94c33069f7bac6d2f51291508c4ef3159b393c76 --- /dev/null +++ b/api/src/engine/models/group.model.ts @@ -0,0 +1,20 @@ +import { Field, ObjectType } from "@nestjs/graphql"; +import { Variable } from "./variable.model"; + +@ObjectType() +export class Group { + @Field() + id: string; + + @Field() + label: string; + + @Field({ nullable: true}) + description?: string; + + @Field(type => [Group]) + groups: Group[]; + + @Field(type => [Variable]) + variables: Variable[]; +} \ No newline at end of file diff --git a/api/src/engine/models/variable.model.ts b/api/src/engine/models/variable.model.ts new file mode 100644 index 0000000000000000000000000000000000000000..7e1e61df93e3f9393171853a07398eaa1c63e36f --- /dev/null +++ b/api/src/engine/models/variable.model.ts @@ -0,0 +1,27 @@ +import { Field, ObjectType } from "@nestjs/graphql"; +import { Category } from "./category.model"; +import { Group } from "./group.model"; + +@ObjectType() +export class Variable { + @Field() + id: string; + + @Field({ nullable: true }) + label?: string; + + @Field() + type: string; + + @Field({ nullable: true}) + description?: string; + + @Field(type => [Category]) + categories: Category[]; + + @Field(type => Boolean) + isCategorical: boolean; + + @Field(type => [Group]) + groups: Group[]; +} \ No newline at end of file diff --git a/api/src/schema.gql b/api/src/schema.gql index 12b643d401b9084f455a4b8f12a9d2ecd4e013d8..fca958d2a2299ecaa7ade2bd1ac65283dbae13d8 100644 --- a/api/src/schema.gql +++ b/api/src/schema.gql @@ -2,6 +2,38 @@ # THIS FILE WAS AUTOMATICALLY GENERATED (DO NOT MODIFY) # ------------------------------------------------------ +type Category { + id: String! + label: String! +} + +type Variable { + id: String! + label: String + type: String! + description: String + categories: [Category!]! + isCategorical: Boolean! + groups: [Group!]! +} + +type Group { + id: String! + label: String! + description: String + groups: [Group!]! + variables: [Variable!]! +} + +type Domain { + id: String! + label: String! + description: String + groups: [Group!]! + variables: [Variable!]! + datasets: [Category!]! +} + type Query { - hello: String! + hello: Domain! }