1 | import { Observable } from 'rxjs/Observable';
|
2 | import { Subject } from 'rxjs/Subject';
|
3 | import 'rxjs/add/operator/map';
|
4 | import { RestHeaders } from './rest-headers';
|
5 | import { Rest } from './rest.class';
|
6 | import { Cookie } from './cookie';
|
7 | import { Mapping } from './mapping';
|
8 | import { Models as HelpersModels } from 'typescript-class-helpers/browser/models';
|
9 | import { Circ } from 'json10/browser';
|
10 | import { RequestCache } from './request-cache';
|
11 | export declare namespace Models {
|
12 | export import HttpMethod = HelpersModels.HttpMethod;
|
13 | export import ParamType = HelpersModels.ParamType;
|
14 | export import MethodConfig = HelpersModels.MethodConfig;
|
15 | export import ClassConfig = HelpersModels.ClassConfig;
|
16 | export import ParamConfig = HelpersModels.ParamConfig;
|
17 | interface HandleResultOptions {
|
18 | res: Models.MockResponse;
|
19 | method: Models.HttpMethod;
|
20 | jobid?: number;
|
21 | isArray?: boolean;
|
22 | }
|
23 | interface HandleResultSourceRequestOptions {
|
24 | url: string;
|
25 | method: Models.HttpMethod;
|
26 | body: any;
|
27 | isArray: boolean;
|
28 | }
|
29 | type BackendError = {
|
30 | msg?: string;
|
31 | stack?: string[];
|
32 | data: any;
|
33 | };
|
34 | type MetaRequest = {
|
35 | path: string;
|
36 | endpoint: string;
|
37 | entity: Mapping.Mapping;
|
38 | circular: Circ[];
|
39 | };
|
40 | type HttpCode = 200 | 400 | 401 | 404 | 500;
|
41 | type PromiseObservableMix<T> = Promise<T> & {
|
42 | cache?: RequestCache;
|
43 | observable: Observable<T>;
|
44 | };
|
45 | type MethodWithoutBody<E, T, R = PromiseObservableMix<E>> = (params?: UrlParams[], doNotSerializeParams?: boolean) => R;
|
46 | type MethodWithBody<E, T, R = PromiseObservableMix<E>> = (item?: T, params?: UrlParams[], doNotSerializeParams?: boolean) => R;
|
47 | type ReplayData = {
|
48 | subject: Subject<any>;
|
49 | data: {
|
50 | url: string;
|
51 | body: string;
|
52 | headers: RestHeaders;
|
53 | isArray: boolean;
|
54 | };
|
55 | id: number;
|
56 | };
|
57 | type ReqParams = {
|
58 | url: string;
|
59 | method: HelpersModels.HttpMethod;
|
60 | headers?: RestHeaders;
|
61 | body?: any;
|
62 | jobid: number;
|
63 | isArray: boolean;
|
64 | };
|
65 | interface ResourceModel<A, TA> {
|
66 | model: (pathModels?: Object, responseObjectType?: Function) => Rest<A, TA>;
|
67 | replay: (method: HelpersModels.HttpMethod) => void;
|
68 | headers: RestHeaders;
|
69 | }
|
70 | interface Ng2RestMethods<E, T> {
|
71 | get: MethodWithoutBody<E, T>;
|
72 | post: MethodWithBody<E, T>;
|
73 | put: MethodWithBody<E, T>;
|
74 | patch: MethodWithBody<E, T>;
|
75 | head: MethodWithoutBody<E, T>;
|
76 | delete: MethodWithoutBody<E, T>;
|
77 | jsonp: MethodWithoutBody<E, T>;
|
78 | }
|
79 | type MockController = (url: string, method: HelpersModels.HttpMethod, headers?: RestHeaders, body?: any) => MockResponse;
|
80 | type MockHttp = (MockResponse | MockController);
|
81 | interface FnMethodsHttp<T, TA> extends Ng2RestMethods<HttpResponse<T>, T> {
|
82 | array: Ng2RestMethods<HttpResponse<TA>, TA>;
|
83 | }
|
84 | interface FnMethodsHttpWithMock<T, TA> extends Ng2RestMethods<HttpResponse<T>, T> {
|
85 | array: Ng2RestMethods<HttpResponse<TA>, TA>;
|
86 | mock(mock: MockHttp, code: HttpCode): FnMethodsHttp<T, TA>;
|
87 | }
|
88 | interface NestedParams {
|
89 | [params: string]: string;
|
90 | }
|
91 | interface UrlParams {
|
92 | [urlModelName: string]: string | number | boolean | RegExp | Object;
|
93 | regex?: RegExp;
|
94 | }
|
95 | abstract class BaseBody {
|
96 | protected toJSON(data: any, isJSONArray?: boolean): any;
|
97 | }
|
98 | class HttpBody<T> extends BaseBody {
|
99 | private body;
|
100 | private isArray;
|
101 | private entity;
|
102 | private circular;
|
103 | constructor(body: string, isArray: boolean, entity: Mapping.Mapping, circular: Circ[]);
|
104 | get json(): T;
|
105 | get text(): string;
|
106 | }
|
107 | class ErrorBody extends BaseBody {
|
108 | private data;
|
109 | constructor(data: any);
|
110 | get json(): Object;
|
111 | get text(): any;
|
112 | }
|
113 | abstract class BaseResponse<T> {
|
114 | responseText?: string;
|
115 | readonly headers?: RestHeaders;
|
116 | readonly statusCode?: HttpCode | number;
|
117 | isArray: boolean;
|
118 | protected static readonly cookies: Cookie;
|
119 | get cookies(): Cookie;
|
120 | constructor(responseText?: string, headers?: RestHeaders, statusCode?: HttpCode | number, isArray?: boolean);
|
121 | }
|
122 | class HttpResponse<T> extends BaseResponse<T> {
|
123 | sourceRequest: Models.HandleResultSourceRequestOptions;
|
124 | responseText?: string;
|
125 | headers?: RestHeaders;
|
126 | statusCode?: HttpCode | number;
|
127 | entity?: Mapping.Mapping;
|
128 | circular?: Circ[];
|
129 | isArray: boolean;
|
130 | body?: HttpBody<T>;
|
131 | rq: RequestCache;
|
132 | constructor(sourceRequest: Models.HandleResultSourceRequestOptions, responseText?: string, headers?: RestHeaders, statusCode?: HttpCode | number, entity?: Mapping.Mapping, circular?: Circ[], isArray?: boolean);
|
133 | init(): void;
|
134 | get cache(): RequestCache;
|
135 | }
|
136 | class HttpResponseError extends BaseResponse<any> {
|
137 | message: string;
|
138 | private body;
|
139 | constructor(message: string, responseText?: string, headers?: RestHeaders, statusCode?: HttpCode | number);
|
140 | }
|
141 | interface MockResponse {
|
142 | data?: any;
|
143 | code?: HttpCode;
|
144 | error?: string;
|
145 | headers?: RestHeaders;
|
146 | jobid?: number;
|
147 | isArray: boolean;
|
148 | }
|
149 | }
|