/
servicetypes.ts
128 lines (108 loc) · 3.05 KB
/
servicetypes.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
118
119
120
121
122
123
124
125
126
127
128
export interface ServiceError {
Code?: string;
Arguments?: string;
Message?: string;
Details?: string;
ErrorId?: string;
}
export interface ServiceResponse {
Error?: ServiceError;
}
export interface ServiceRequest {
}
export interface SaveRequest<TEntity> extends ServiceRequest {
EntityId?: any;
Entity?: TEntity;
Localizations?: any;
}
export interface SaveRequestWithAttachment<TEntity> extends SaveRequest<TEntity> {
Attachments?: any[];
}
export interface SaveResponse extends ServiceResponse {
EntityId?: any;
}
export interface SaveWithLocalizationRequest<TEntity> extends SaveRequest<TEntity> {
Localizations?: { [key: string]: TEntity };
}
export interface DeleteRequest extends ServiceRequest {
EntityId?: any;
}
export interface DeleteResponse extends ServiceResponse {
}
export interface UndeleteRequest extends ServiceRequest {
EntityId?: any;
}
export interface UndeleteResponse extends ServiceResponse {
}
export enum ColumnSelection {
List = 0,
KeyOnly = 1,
Details = 2,
None = 3,
IdOnly = 4,
Lookup = 5
}
export enum RetrieveColumnSelection {
details = 0,
keyOnly = 1,
list = 2,
none = 3,
idOnly = 4,
lookup = 5
}
export interface ListRequest extends ServiceRequest {
Skip?: number;
Take?: number;
Sort?: string[];
ContainsText?: string;
ContainsField?: string;
Criteria?: any[];
EqualityFilter?: any;
IncludeDeleted?: boolean;
ExcludeTotalCount?: boolean;
ColumnSelection?: ColumnSelection;
IncludeColumns?: string[];
ExcludeColumns?: string[];
ExportColumns?: string[];
DistinctFields?: string[];
}
export interface ListResponse<TEntity> extends ServiceResponse {
Entities?: TEntity[];
Values?: any[];
TotalCount?: number;
Skip?: number;
Take?: number;
}
export interface RetrieveRequest extends ServiceRequest {
EntityId?: any;
ColumnSelection?: RetrieveColumnSelection;
IncludeColumns?: string[];
ExcludeColumns?: string[];
}
export interface RetrieveResponse<TEntity> extends ServiceResponse {
Entity?: TEntity;
}
export interface RetrieveLocalizationRequest extends RetrieveRequest {
}
export interface RetrieveLocalizationResponse<TEntity> extends ServiceResponse {
Entities?: { [key: string]: TEntity };
}
export interface RequestErrorInfo {
status?: number;
statusText?: string;
responseText?: string;
}
export interface ServiceOptions<TResponse extends ServiceResponse> extends RequestInit {
allowRedirect?: boolean;
async?: boolean;
blockUI?: boolean;
headers?: Record<string, string>;
request?: any;
service?: string;
url?: string;
errorMode?: 'alert' | 'notification' | 'none';
onCleanup?(): void;
/** Should return true if the error is handled (e.g. notification shown). Otherwise the error may be shown twice. */
onError?(response: TResponse, info?: RequestErrorInfo): void | boolean;
onSuccess?(response: TResponse): void;
}