diff --git a/api/src/engine/models/result/alert-result.model.ts b/api/src/engine/models/result/alert-result.model.ts new file mode 100644 index 0000000000000000000000000000000000000000..0c86c120ba51b6281cd740bacf3af36ec50517ed --- /dev/null +++ b/api/src/engine/models/result/alert-result.model.ts @@ -0,0 +1,25 @@ +import { Field, ObjectType, registerEnumType } from '@nestjs/graphql'; +import { Result } from './common/result.model'; + +export enum AlertLevel { + INFO, + SUCCESS, + WARNING, + ERROR, +} + +registerEnumType(AlertLevel, { + name: 'AlertLevel', +}); + +@ObjectType() +export class AlertResult extends Result { + @Field({ nullable: true }) + title?: string; + + @Field() + message: string; + + @Field(() => AlertLevel, { defaultValue: AlertLevel.INFO, nullable: true }) + level?: AlertLevel; +} diff --git a/api/src/engine/models/result/common/result-union.model.ts b/api/src/engine/models/result/common/result-union.model.ts index 0e385962665d0ad0708c84b4597273b4678f55d8..6b5851b689abb8ee2423bc3300a37651e4a16052 100644 --- a/api/src/engine/models/result/common/result-union.model.ts +++ b/api/src/engine/models/result/common/result-union.model.ts @@ -1,11 +1,12 @@ import { createUnionType } from '@nestjs/graphql'; +import { AlertResult } from '../alert-result.model'; +import { BarChartResult } from '../bar-chart-result.model'; import { GroupsResult } from '../groups-result.model'; import { HeatMapResult } from '../heat-map-result.model'; import { LineChartResult } from '../line-chart-result.model'; +import { MeanChartResult } from '../means-chart-result.model'; import { RawResult } from '../raw-result.model'; import { TableResult } from '../table-result.model'; -import { BarChartResult } from '../bar-chart-result.model'; -import { MeanChartResult } from '../means-chart-result.model'; export const ResultUnion = createUnionType({ name: 'ResultUnion', @@ -17,6 +18,7 @@ export const ResultUnion = createUnionType({ LineChartResult, BarChartResult, MeanChartResult, + AlertResult, ], resolveType(value) { if (value.headers) { @@ -43,6 +45,10 @@ export const ResultUnion = createUnionType({ return MeanChartResult; } + if (value.message) { + return AlertResult; + } + return RawResult; }, }); diff --git a/api/src/schema.gql b/api/src/schema.gql index 065098a92c369abe157f9c279509fff2d244c45e..3a76d04557b4cea22fff11de1a3231b9f8c2d2ef 100644 --- a/api/src/schema.gql +++ b/api/src/schema.gql @@ -174,13 +174,21 @@ type FormulaOperation { operationTypes: [String!]! } +type ChartAxis { + """label of the Axis""" + label: String + + """label of each element on this Axis""" + categories: [String!] +} + type GroupResult { name: String! description: String results: [ResultUnion!]! } -union ResultUnion = TableResult | RawResult | GroupsResult | HeatMapResult | LineChartResult | BarChartResult | MeanChartResult +union ResultUnion = TableResult | RawResult | GroupsResult | HeatMapResult | LineChartResult | BarChartResult | MeanChartResult | AlertResult type TableResult { name: String! @@ -248,12 +256,17 @@ type MeanChartResult { pointCIs: [PointCI!]! } -type ChartAxis { - """label of the Axis""" - label: String +type AlertResult { + title: String + message: String! + level: AlertLevel +} - """label of each element on this Axis""" - categories: [String!] +enum AlertLevel { + INFO + SUCCESS + WARNING + ERROR } type ExtraLineInfo { @@ -274,17 +287,17 @@ enum LineType { DASHED } -type Header { - name: String! - type: String! -} - type PointCI { min: Float mean: Float! max: Float } +type Header { + name: String! + type: String! +} + type Author { username: String fullname: String