/
Execution.ts
117 lines (100 loc) · 2.78 KB
/
Execution.ts
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
export namespace Execution {
export interface IMeasureHeaderItem {
measureHeaderItem: {
uri?: string;
identifier?: string;
localIdentifier: string;
name: string;
format: string;
}
}
export interface ITotalHeaderItem {
totalHeaderItem: {
name: string;
}
}
export interface IMeasureGroupHeader {
measureGroupHeader: {
items: IMeasureHeaderItem[];
totalItems?: ITotalHeaderItem[];
}
}
export interface IAttributeHeader {
attributeHeader: {
uri: string;
identifier: string;
localIdentifier: string;
name: string;
totalItems?: ITotalHeaderItem[];
formOf: {
uri: string;
identifier: string;
name: string;
};
}
}
export type IHeader = IMeasureGroupHeader | IAttributeHeader;
export interface IResultAttributeHeaderItem {
attributeHeaderItem: {
uri: string;
name: string;
}
}
export interface IResultMeasureHeaderItem {
measureHeaderItem: {
name: string,
order: number
}
}
export interface IResultTotalHeaderItem {
totalHeaderItem: {
name: string,
type: string
}
}
export type IResultHeaderItem = IResultAttributeHeaderItem | IResultMeasureHeaderItem | IResultTotalHeaderItem;
export interface IResultDimension {
headers: IHeader[];
}
export interface IExecutionResponse {
links: {
executionResult: string;
};
dimensions: IResultDimension[];
}
export interface IExecutionResponseWrapper {
executionResponse: IExecutionResponse
}
export type DataValue = null | string | number;
export interface Warning {
warningCode: string;
message: string;
parameters?: any[];
}
export interface IExecutionResult {
headerItems?: IResultHeaderItem[][][];
data: DataValue[][] | DataValue[];
totals?: DataValue[][][];
paging: {
count: number[];
offset: number[];
total: number[];
};
warnings?: Warning[];
}
export interface IExecutionResultWrapper {
executionResult: IExecutionResult
}
export interface IError extends Error {
response: Response;
}
/**
* Combination of both AFM executions responses
*
* `null` value as executionResult means empty response (HTTP 204)
*/
export interface IExecutionResponses {
executionResponse: IExecutionResponse;
executionResult: IExecutionResult | null;
}
}