Newer
Older
import {
createUnionType,
Field,
GraphQLISODateTime,
ObjectType,
} from '@nestjs/graphql';
import { DummyResult } from '../result/dummy-result.model';
import { TableResult } from '../result/table-result.model';
export const ResultUnion = createUnionType({
name: 'ResultUnion',
types: () => [TableResult, DummyResult],
resolveType(value) {
if (value.metadatas) {
return TableResult;
}
if (value.listMax) {
return DummyResult;
}
return null;
},
});
@ObjectType()
export class Experiment {
@Field()
title: string;
@Field({ nullable: true })
uuid?: string;
@Field(() => GraphQLISODateTime, { nullable: true })
created_at?: Date;
@Field(() => GraphQLISODateTime, { nullable: true })
update_at?: Date;
@Field(() => GraphQLISODateTime, { nullable: true })
finished_at?: Date;
@Field(() => [ResultUnion])
results: Array<typeof ResultUnion>;