From b69d97b1b9c09632e922df2c1d5c4269ba5ddd4c Mon Sep 17 00:00:00 2001 From: stevereis <stevereis93@gmail.com> Date: Wed, 6 Oct 2021 09:45:02 +0200 Subject: [PATCH] Removing groupby on all results Add GroupsResult for tab display --- .../models/experiment/experiment.model.ts | 25 ++----------------- .../result/common/result-union.model.ts | 18 +++++++++++++ .../models/result/common/result.model.ts | 7 ++---- .../models/result/groups-result.model.ts | 18 +++++++++++++ 4 files changed, 40 insertions(+), 28 deletions(-) create mode 100644 api/src/engine/models/result/common/result-union.model.ts create mode 100644 api/src/engine/models/result/groups-result.model.ts diff --git a/api/src/engine/models/experiment/experiment.model.ts b/api/src/engine/models/experiment/experiment.model.ts index 2ac6ec2..06e28b4 100644 --- a/api/src/engine/models/experiment/experiment.model.ts +++ b/api/src/engine/models/experiment/experiment.model.ts @@ -1,28 +1,7 @@ -import { - createUnionType, - Field, - ObjectType, - PartialType, -} from '@nestjs/graphql'; -import { RawResult } from '../result/raw-result.model'; -import { TableResult } from '../result/table-result.model'; +import { Field, ObjectType, PartialType } from '@nestjs/graphql'; +import { ResultUnion } from '../result/common/result-union.model'; import { Algorithm } from './algorithm.model'; -export const ResultUnion = createUnionType({ - name: 'ResultUnion', - types: () => [TableResult, RawResult], - resolveType(value) { - if (value.headers) { - return TableResult; - } - if (value.listMax) { - return RawResult; - } - - return null; - }, -}); - @ObjectType() export class Experiment { @Field({ nullable: true }) diff --git a/api/src/engine/models/result/common/result-union.model.ts b/api/src/engine/models/result/common/result-union.model.ts new file mode 100644 index 0000000..8146c69 --- /dev/null +++ b/api/src/engine/models/result/common/result-union.model.ts @@ -0,0 +1,18 @@ +import { createUnionType } from '@nestjs/graphql'; +import { RawResult } from '../raw-result.model'; +import { TableResult } from '../table-result.model'; + +export const ResultUnion = createUnionType({ + name: 'ResultUnion', + types: () => [TableResult, RawResult], + resolveType(value) { + if (value.headers) { + return TableResult; + } + if (value.listMax) { + return RawResult; + } + + return null; + }, +}); diff --git a/api/src/engine/models/result/common/result.model.ts b/api/src/engine/models/result/common/result.model.ts index ca86bfb..e5e0597 100644 --- a/api/src/engine/models/result/common/result.model.ts +++ b/api/src/engine/models/result/common/result.model.ts @@ -1,7 +1,4 @@ -import { Field, ObjectType } from '@nestjs/graphql'; +import { ObjectType } from '@nestjs/graphql'; @ObjectType() -export abstract class Result { - @Field({ nullable: true }) - groupBy?: string; -} +export abstract class Result {} diff --git a/api/src/engine/models/result/groups-result.model.ts b/api/src/engine/models/result/groups-result.model.ts new file mode 100644 index 0000000..fb11ba5 --- /dev/null +++ b/api/src/engine/models/result/groups-result.model.ts @@ -0,0 +1,18 @@ +import { Field, ObjectType } from '@nestjs/graphql'; +import { ResultUnion } from './common/result-union.model'; +import { Result } from './common/result.model'; + +@ObjectType() +export class GroupResult { + @Field() + name: string; + + @Field(() => [ResultUnion]) + results: Array<typeof ResultUnion>; +} + +@ObjectType() +export class GroupsResult extends Result { + @Field(() => [GroupResult]) + groups: GroupResult[]; +} -- GitLab