File size: 1,174 Bytes
d9494a5
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
import { Field, ObjectType, registerEnumType } from '@nestjs/graphql';

import { IsObject, IsOptional } from 'class-validator';
import graphqlTypeJson from 'graphql-type-json';

export enum LogicFunctionExecutionStatus {
  IDLE = 'IDLE',
  SUCCESS = 'SUCCESS',
  ERROR = 'ERROR',
}

registerEnumType(LogicFunctionExecutionStatus, {
  name: 'LogicFunctionExecutionStatus',
  description: 'Status of the logic function execution',
});

@ObjectType('LogicFunctionExecutionResult')
export class LogicFunctionExecutionResultDTO {
  @IsObject()
  @Field(() => graphqlTypeJson, {
    description: 'Execution result in JSON format',
    nullable: true,
  })
  data?: JSON;

  @Field({ description: 'Execution Logs' })
  logs: string;

  @Field({ description: 'Execution duration in milliseconds' })
  duration: number;

  @Field(() => LogicFunctionExecutionStatus, {
    description: 'Execution status',
  })
  status: LogicFunctionExecutionStatus;

  @IsObject()
  @IsOptional()
  @Field(() => graphqlTypeJson, {
    description: 'Execution error in JSON format',
    nullable: true,
  })
  error?: {
    errorType: string;
    errorMessage: string;
    stackTrace: string;
  };
}