Skip to content

Commit 604421c

Browse files
committed
fix: fix getdelay error + fix styling errors
1 parent 0963098 commit 604421c

File tree

1 file changed

+81
-86
lines changed

1 file changed

+81
-86
lines changed
Lines changed: 81 additions & 86 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,15 @@
1-
import { HttpClient, HttpParams, HttpHeaders } from "@angular/common/http";
2-
import {InjectionToken, Injector} from "@angular/core";
3-
import {MonoTypeOperatorFunction} from 'rxjs';
4-
import {delay} from "rxjs/operators";
1+
import { HttpClient } from '@angular/common/http';
2+
import { InjectionToken, Injector } from '@angular/core';
3+
import { MonoTypeOperatorFunction } from 'rxjs';
4+
import { delay } from 'rxjs/operators';
55

66
export const HTTP_ANNOTATIONS_USE_MOCKS: InjectionToken<boolean> = new InjectionToken('HTTP_ANNOTATIONS_USE_MOCKS');
77

88
export const HTTP_ANNOTATIONS_USE_DELAY: InjectionToken<number > = new InjectionToken('HTTP_ANNOTATIONS_USE_DELAY');
99

10-
interface httpRequestOptions {
11-
body?: any;
12-
headers?: HttpHeaders;
13-
params?: HttpParams;
14-
observe?: 'body' | 'events' | 'response';
15-
reportProgress?: boolean;
16-
responseType?: 'arraybuffer' | 'blob' | 'json' | 'text';
17-
withCredentials?: boolean;
18-
}
1910

20-
interface CallConfig {url: string, requestMethodName: string, params: any, args: any[]};
11+
12+
interface CallConfig {url: string; requestMethodName: string; params: any; args: any[]; }
2113

2214

2315
export function observe(annotations: any) {
@@ -26,7 +18,7 @@ export function observe(annotations: any) {
2618
export function path(annotations: any) {
2719
return (...args: any[]) => {
2820
return HttpRestUtils.decorate.apply(this, ['path', annotations, ...args]);
29-
}
21+
};
3022
}
3123
export function body(annotations: any) {
3224
return (...args: any[]) => HttpRestUtils.decorate.apply(this, ['body', annotations, ...args]);
@@ -51,11 +43,11 @@ interface ExtraEntityData {
5143
keyName: string;
5244
index: number;
5345
}
54-
const RESOURSE_METADATA_ROOT = 'resources_metadata';
46+
const RESOURCE_METADATA_ROOT = 'resources_metadata';
5547
// @dynamic
56-
const NO_DELAY: number = 0;
48+
const NO_DELAY = 0;
5749

58-
const MOCK_DEFAULT_DELAY: number = 500;
50+
const MOCK_DEFAULT_DELAY = 500;
5951

6052
export class HttpRestUtils {
6153

@@ -70,7 +62,7 @@ export class HttpRestUtils {
7062
break;
7163
}
7264
case 2: {
73-
const [target, key] = args;
65+
const [target, __key] = args;
7466
HttpRestUtils.constructMetadata.apply(this, [ decoratorName, 'props', annotations, target ]);
7567
break;
7668
}
@@ -80,7 +72,7 @@ export class HttpRestUtils {
8072
HttpRestUtils.constructMetadata.apply(this, [ decoratorName, 'params', annotations, target, { keyName, index } ]);
8173
break;
8274
} else {
83-
const [target, keyName, descriptor] = args;
75+
const [target, keyName, __descriptor] = args;
8476
HttpRestUtils.constructMetadata.apply(this, [ decoratorName, 'methods', annotations, target, { keyName } ]);
8577
break;
8678
}
@@ -90,20 +82,24 @@ export class HttpRestUtils {
9082
}
9183

9284
/**
93-
* Set up metadada
94-
* @param type Entity type
85+
* Set up metadata
86+
* @param entityType
9587
* @param value Value of metadata
9688
* @param target Prototype of current object
9789
* @param metaName Decorator name
9890
* @param entityData Entity extra data
9991
*/
100-
private static constructMetadata(metaName: string, entityType: ResourceMetadataType, value: any, target: any, entityData?: ExtraEntityData) {
92+
private static constructMetadata(
93+
metaName: string,
94+
entityType: ResourceMetadataType,
95+
value: any,
96+
target: any,
97+
entityData?: ExtraEntityData) {
10198

102-
target[RESOURSE_METADATA_ROOT] = target[RESOURSE_METADATA_ROOT] || {};
103-
target[RESOURSE_METADATA_ROOT][entityType] = target[RESOURSE_METADATA_ROOT][entityType] || {};
99+
target[RESOURCE_METADATA_ROOT] = target[RESOURCE_METADATA_ROOT] || {};
100+
target[RESOURCE_METADATA_ROOT][entityType] = target[RESOURCE_METADATA_ROOT][entityType] || {};
104101

105-
const rootMetadata = target[RESOURSE_METADATA_ROOT];
106-
const metadataObj = target[RESOURSE_METADATA_ROOT][entityType];
102+
const metadataObj = target[RESOURCE_METADATA_ROOT][entityType];
107103
if (entityData && entityData.keyName) {
108104
metadataObj[entityData.keyName] = metadataObj[entityData.keyName] || {};
109105
}
@@ -117,21 +113,24 @@ export class HttpRestUtils {
117113
case 'params': metadataObj[entityData.keyName][metaName][value || 'default'] = entityData.index;
118114
}
119115

120-
target[RESOURSE_METADATA_ROOT][entityType] = metadataObj;
116+
target[RESOURCE_METADATA_ROOT][entityType] = metadataObj;
121117
}
122118

123119
public static requestMethod(requestMethodName: string): any {
124120
// @dynamic
125121
return (target: any, key: string, descriptor: any) => {
126-
let originalFunction = descriptor.value;
122+
const originalFunction = descriptor.value;
127123

128124
descriptor.value = function (...args: any[]) {
129125
const url = HttpRestUtils.collectUrl(target, key, args);
130-
const body = HttpRestUtils.collectBody(target, key, args);
126+
// tslint:disable-next-line:no-shadowed-variable
127+
const body = HttpRestUtils.collectBodyContent(target, key, args);
131128
const search = HttpRestUtils.collectQueryParams(target, key, args);
132-
const headers = HttpRestUtils.collectHeaders(target, key, args);
129+
// tslint:disable-next-line:no-shadowed-variable
130+
const headers = HttpRestUtils.collectHttpHeaders(target, key, args);
133131
const producesType = HttpRestUtils.produce(target, key, args);
134-
const observe = HttpRestUtils.getObserve(target, key, args);
132+
// tslint:disable-next-line:no-shadowed-variable
133+
const observe = HttpRestUtils.getHttpClientObserve(target, key, args);
135134
const params: any = {
136135
body,
137136
params: search,
@@ -141,17 +140,17 @@ export class HttpRestUtils {
141140
};
142141
const newArgs = args;
143142
const responseIndex = HttpRestUtils.collectResponseIndex(target, key, args);
144-
const callConfig = {
143+
const callConfig: CallConfig = {
145144
url,
146145
requestMethodName,
147146
params,
148147
args: newArgs,
149148
};
150149

151-
if (HttpRestUtils.ifUseMock(callConfig)) { // If use mock is true, call original function, to get mock directly from function
150+
if (HttpRestUtils.ifUseMock(callConfig)) { // If "use mock" is true, call original function, to get mock directly from function
152151
return HttpRestUtils.processIfUseMock(responseIndex, args, newArgs, originalFunction);
153152
}
154-
let request = HttpRestUtils.http.request(requestMethodName, url, params);
153+
const request = HttpRestUtils.http.request(requestMethodName, url, params);
155154

156155

157156

@@ -162,10 +161,10 @@ export class HttpRestUtils {
162161
newArgs.splice(responseIndex, 0, request);
163162
}
164163

165-
return originalFunction(...newArgs).pipe(this.getDelay());
164+
return originalFunction(...newArgs).pipe(HttpRestUtils.getDelay(callConfig));
166165
}
167166

168-
return request.pipe(this.getDelay());
167+
return request.pipe(HttpRestUtils.getDelay(callConfig));
169168
};
170169

171170
};
@@ -200,48 +199,48 @@ export class HttpRestUtils {
200199
return delay(useDelay as number);
201200
}
202201

203-
private static getObserve(target: any, methodName: string, args: any[]) {
204-
if (target[RESOURSE_METADATA_ROOT].methods
205-
&& target[RESOURSE_METADATA_ROOT].methods[methodName]) {
206-
return target[RESOURSE_METADATA_ROOT].methods[methodName].observe;
202+
private static getHttpClientObserve(target: any, methodName: string, __args: any[]) {
203+
if (target[RESOURCE_METADATA_ROOT].methods
204+
&& target[RESOURCE_METADATA_ROOT].methods[methodName]) {
205+
return target[RESOURCE_METADATA_ROOT].methods[methodName].observe;
207206
}
208207
return undefined;
209208
}
210209

211-
private static produce(target: any, methodName: string, args: any[]) {
212-
if (target[RESOURSE_METADATA_ROOT].methods
213-
&& target[RESOURSE_METADATA_ROOT].methods[methodName]) {
214-
return target[RESOURSE_METADATA_ROOT].methods[methodName].produces;
210+
private static produce(target: any, methodName: string, __args: any[]) {
211+
if (target[RESOURCE_METADATA_ROOT].methods
212+
&& target[RESOURCE_METADATA_ROOT].methods[methodName]) {
213+
return target[RESOURCE_METADATA_ROOT].methods[methodName].produces;
215214
}
216215
return 'json';
217216
}
218217

219218
private static collectUrl(target: any, methodName: string, args: any[]) {
220-
const baseUrl = target[RESOURSE_METADATA_ROOT] && target[RESOURSE_METADATA_ROOT].class
221-
? target[RESOURSE_METADATA_ROOT].class.path
219+
const baseUrl = target[RESOURCE_METADATA_ROOT] && target[RESOURCE_METADATA_ROOT].class
220+
? target[RESOURCE_METADATA_ROOT].class.path
222221
: '';
223-
const methodUrl = target[RESOURSE_METADATA_ROOT].methods && target[RESOURSE_METADATA_ROOT].methods[methodName]
224-
? target[RESOURSE_METADATA_ROOT].methods[methodName].path
222+
const methodUrl = target[RESOURCE_METADATA_ROOT].methods && target[RESOURCE_METADATA_ROOT].methods[methodName]
223+
? target[RESOURCE_METADATA_ROOT].methods[methodName].path
225224
: '';
226225
const isRelativePath = `${baseUrl}${methodUrl}`[0] === '/';
227226
const methodUrlWithParams
228227
= [baseUrl, methodUrl]
229-
.filter(path => path)
228+
.filter(pathToFilter => pathToFilter)
230229
.join('/')
231230
.split('/')
232-
.map(path => {
233-
if ( path[0] === ':') {
234-
const paramName = path.substring(1);
235-
const index = target[RESOURSE_METADATA_ROOT].params
236-
&& target[RESOURSE_METADATA_ROOT].params[methodName]
237-
&& target[RESOURSE_METADATA_ROOT].params[methodName].path
238-
? target[RESOURSE_METADATA_ROOT].params[methodName].path[paramName]
231+
.map(pathParams => {
232+
if ( pathParams[0] === ':') {
233+
const paramName = pathParams.substring(1);
234+
const index = target[RESOURCE_METADATA_ROOT].params
235+
&& target[RESOURCE_METADATA_ROOT].params[methodName]
236+
&& target[RESOURCE_METADATA_ROOT].params[methodName].path
237+
? target[RESOURCE_METADATA_ROOT].params[methodName].path[paramName]
239238
: '';
240239
return args[index];
241240
}
242-
return path;
241+
return pathParams;
243242
})
244-
.filter(path => path)
243+
.filter(pathToFilter => pathToFilter)
245244
.join('/');
246245

247246
if (!isRelativePath) {
@@ -251,33 +250,32 @@ export class HttpRestUtils {
251250
return `/${ methodUrlWithParams }`;
252251
}
253252

254-
private static collectBody(target: any, methodName: string, args: any[]) {
255-
if (!target[RESOURSE_METADATA_ROOT].params
256-
|| !target[RESOURSE_METADATA_ROOT].params[methodName]
257-
|| !target[RESOURSE_METADATA_ROOT].params[methodName].body) return undefined;
253+
private static collectBodyContent(target: any, methodName: string, args: any[]) {
254+
if (!target[RESOURCE_METADATA_ROOT].params
255+
|| !target[RESOURCE_METADATA_ROOT].params[methodName]
256+
|| !target[RESOURCE_METADATA_ROOT].params[methodName].body) { return undefined; }
258257

259-
const index = target[RESOURSE_METADATA_ROOT].params[methodName].body.default;
258+
const index = target[RESOURCE_METADATA_ROOT].params[methodName].body.default;
260259
return args[index];
261260
}
262261

263-
private static collectResponseIndex(target: any, methodName: string, args: any[]) {
264-
if (!target[RESOURSE_METADATA_ROOT].params
265-
|| !target[RESOURSE_METADATA_ROOT].params[methodName]
266-
|| !target[RESOURSE_METADATA_ROOT].params[methodName].response) return undefined;
262+
private static collectResponseIndex(target: any, methodName: string, __args: any[]) {
263+
if (!target[RESOURCE_METADATA_ROOT].params
264+
|| !target[RESOURCE_METADATA_ROOT].params[methodName]
265+
|| !target[RESOURCE_METADATA_ROOT].params[methodName].response) { return undefined; }
267266

268-
const index = target[RESOURSE_METADATA_ROOT].params[methodName].response.default;
269-
return index;
267+
return target[RESOURCE_METADATA_ROOT].params[methodName].response.default;
270268
}
271269

272270
private static collectQueryParams(target: any, methodName: string, args: any[]) {
273-
if (!target[RESOURSE_METADATA_ROOT].params
274-
|| !target[RESOURSE_METADATA_ROOT].params[methodName]
275-
|| !target[RESOURSE_METADATA_ROOT].params[methodName].query) return undefined;
276-
277-
let queryParams = {};
278-
const queryParamsObjectIndex = target[RESOURSE_METADATA_ROOT].params[methodName].query.default;
279-
const queryMetadata = target[RESOURSE_METADATA_ROOT].params[methodName].query;
280-
const queryParamsCollection = queryParamsObjectIndex != undefined
271+
if (!target[RESOURCE_METADATA_ROOT].params
272+
|| !target[RESOURCE_METADATA_ROOT].params[methodName]
273+
|| !target[RESOURCE_METADATA_ROOT].params[methodName].query) { return undefined; }
274+
275+
const queryParams = {};
276+
const queryParamsObjectIndex = target[RESOURCE_METADATA_ROOT].params[methodName].query.default;
277+
const queryMetadata = target[RESOURCE_METADATA_ROOT].params[methodName].query;
278+
const queryParamsCollection = queryParamsObjectIndex !== undefined
281279
? args[queryParamsObjectIndex]
282280
: Object.keys(queryMetadata).reduce((mergedObj, paramName) =>
283281
Object.assign(mergedObj, { [paramName]: args[queryMetadata[paramName]] }), {}
@@ -292,14 +290,11 @@ export class HttpRestUtils {
292290
return queryParams;
293291
}
294292

295-
private static collectHeaders(target: any, methodName: string, args: any[]) {
296-
const classHeaders = target[RESOURSE_METADATA_ROOT].class ? target[RESOURSE_METADATA_ROOT].class.headers : {};
297-
const methodHeaders = target[RESOURSE_METADATA_ROOT].methods && target[RESOURSE_METADATA_ROOT].methods[methodName]
298-
? target[RESOURSE_METADATA_ROOT].methods[methodName].headers
293+
private static collectHttpHeaders(target: any, methodName: string, __args: any[]) {
294+
const classHeaders = target[RESOURCE_METADATA_ROOT].class ? target[RESOURCE_METADATA_ROOT].class.headers : {};
295+
const methodHeaders = target[RESOURCE_METADATA_ROOT].methods && target[RESOURCE_METADATA_ROOT].methods[methodName]
296+
? target[RESOURCE_METADATA_ROOT].methods[methodName].headers
299297
: {};
300-
const mergedHeaders = Object.assign({}, classHeaders, methodHeaders);
301-
302-
303-
return mergedHeaders;
298+
return Object.assign({}, classHeaders, methodHeaders);
304299
}
305300
}

0 commit comments

Comments
 (0)