From 1141a463d704666abd573021de7a711f1c1873a6 Mon Sep 17 00:00:00 2001 From: stevereis <stevereis93@gmail.com> Date: Tue, 14 Sep 2021 13:25:31 +0200 Subject: [PATCH] Added schema definition for variable, group and domain --- api/src/engine/engine.resolver.ts | 14 ++++++++-- api/src/engine/models/category.model.ts | 10 ++++++++ api/src/engine/models/domain.model.ts | 9 +++++++ api/src/engine/models/group.model.ts | 20 +++++++++++++++ api/src/engine/models/variable.model.ts | 27 ++++++++++++++++++++ api/src/schema.gql | 34 ++++++++++++++++++++++++- 6 files changed, 111 insertions(+), 3 deletions(-) create mode 100644 api/src/engine/models/category.model.ts create mode 100644 api/src/engine/models/domain.model.ts create mode 100644 api/src/engine/models/group.model.ts create mode 100644 api/src/engine/models/variable.model.ts diff --git a/api/src/engine/engine.resolver.ts b/api/src/engine/engine.resolver.ts index e2bcfa5..7156789 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 0000000..29ab318 --- /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 0000000..bffe59e --- /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 0000000..94c3306 --- /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 0000000..7e1e61d --- /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 12b643d..fca958d 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! } -- GitLab