bx-rest 0.0.9 → 0.0.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/consts/part-name-metods.d.ts +11 -0
- package/esm2020/consts/part-name-metods.mjs +12 -0
- package/esm2020/functions/serializeJavascript.mjs +200 -0
- package/esm2020/public-api.mjs +3 -3
- package/esm2020/{rest → request}/bx-rest.module.mjs +1 -1
- package/esm2020/request/user/user.mjs +263 -0
- package/esm2020/services/http/HttpBX.mjs +128 -0
- package/esm2020/services/http/HttpData.mjs +124 -0
- package/esm2020/services/http/base/base.mjs +29 -0
- package/esm2020/services/http/base/http.mjs +28 -0
- package/esm2020/services/http/http.mjs +135 -0
- package/esm2020/services/http/sessionKey.mjs +180 -0
- package/esm2020/services/map/base.mjs +14 -0
- package/esm2020/services/map/rest/user.mjs +89 -0
- package/esm2020/services/snack-bar/snack-bar.service.mjs +42 -0
- package/esm2020/services/snack-bar/toast-message/toast-message.component.mjs +31 -0
- package/esm2020/services/vanilla/JSON.mjs +20 -0
- package/esm2020/services/vanilla/localStorage.mjs +35 -0
- package/esm2020/services/vanilla//321/201ookies.mjs +44 -0
- package/esm2020/store/auth.mjs +26 -0
- package/esm2020/store/users.mjs +67 -0
- package/esm2020/typification/auth/save.mjs +2 -0
- package/esm2020/typification/rest/api-lib.mjs +21 -0
- package/esm2020/typification/rest/base/YesNo.mjs +2 -0
- package/esm2020/typification/rest/base/httpAnswerBX.mjs +2 -0
- package/esm2020/typification/rest/batch/batchRequestParam.mjs +2 -0
- package/esm2020/typification/rest/lib.mjs +2 -0
- package/esm2020/typification/rest/settings.mjs +2 -0
- package/esm2020/typification/rest/support/param.mjs +2 -0
- package/esm2020/typification/rest/user/CustomUserFieldInfo.mjs +2 -0
- package/esm2020/typification/rest/user/UserFilterSearch.mjs +2 -0
- package/esm2020/typification/rest/user/get.mjs +2 -0
- package/esm2020/typification/rest/user/user.mjs +2 -0
- package/esm2020/typification/rest/user/userFilter.mjs +2 -0
- package/fesm2015/bx-rest.mjs +343 -42
- package/fesm2015/bx-rest.mjs.map +1 -1
- package/fesm2020/bx-rest.mjs +342 -41
- package/fesm2020/bx-rest.mjs.map +1 -1
- package/functions/serializeJavascript.d.ts +2 -0
- package/package.json +1 -1
- package/public-api.d.ts +1 -2
- package/request/user/user.d.ts +60 -0
- package/services/http/HttpBX.d.ts +26 -0
- package/services/http/HttpData.d.ts +13 -0
- package/services/http/base/base.d.ts +16 -0
- package/services/http/base/http.d.ts +7 -0
- package/services/http/http.d.ts +31 -0
- package/services/http/sessionKey.d.ts +34 -0
- package/services/map/base.d.ts +6 -0
- package/services/map/rest/user.d.ts +12 -0
- package/services/snack-bar/snack-bar.service.d.ts +12 -0
- package/services/snack-bar/toast-message/toast-message.component.d.ts +16 -0
- package/services/vanilla/JSON.d.ts +7 -0
- package/services/vanilla/localStorage.d.ts +10 -0
- package/services/vanilla//321/201ookies.d.ts +9 -0
- package/store/auth.d.ts +20 -0
- package/store/users.d.ts +34 -0
- package/typification/auth/save.d.ts +14 -0
- package/typification/rest/api-lib.d.ts +9 -0
- package/typification/rest/base/YesNo.d.ts +1 -0
- package/typification/rest/base/httpAnswerBX.d.ts +15 -0
- package/typification/rest/batch/batchRequestParam.d.ts +16 -0
- package/typification/rest/lib.d.ts +18 -0
- package/typification/rest/settings.d.ts +6 -0
- package/typification/rest/support/param.d.ts +5 -0
- package/typification/rest/user/CustomUserFieldInfo.d.ts +56 -0
- package/typification/rest/user/UserFilterSearch.d.ts +43 -0
- package/typification/rest/user/get.d.ts +13 -0
- package/typification/rest/user/user.d.ts +62 -0
- package/typification/rest/user/userFilter.d.ts +13 -0
- package/bx-rest.service.d.ts +0 -6
- package/esm2020/bx-rest.service.mjs +0 -14
- /package/{rest → request}/bx-rest.module.d.ts +0 -0
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import { throwError, take, mergeMap, forkJoin } from 'rxjs';
|
|
2
|
+
import { catchError, map } from 'rxjs/operators';
|
|
3
|
+
import { Injectable } from '@angular/core';
|
|
4
|
+
import clone from 'just-clone';
|
|
5
|
+
import BaseHttpServices from '../../services/http/http';
|
|
6
|
+
import flatten from 'just-flatten-it';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
export default class HttpBXServices extends BaseHttpServices {
|
|
9
|
+
timeNowOnServer() {
|
|
10
|
+
return this.httpGet('server.time').pipe(map(v => {
|
|
11
|
+
if (v && v.result) {
|
|
12
|
+
return new Date(v.result);
|
|
13
|
+
}
|
|
14
|
+
return undefined;
|
|
15
|
+
}));
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Это пиздец а не метод
|
|
19
|
+
* @param param
|
|
20
|
+
*/
|
|
21
|
+
branch(param) {
|
|
22
|
+
let prepareParam = Object.entries(this.prepareBatch(param));
|
|
23
|
+
const size = 50; // больше не отдаст
|
|
24
|
+
let subarray = []; //массив в который будет выведен результат.
|
|
25
|
+
for (let i = 0; i < Math.ceil(prepareParam.length / size); i++) {
|
|
26
|
+
subarray[i] = prepareParam.slice((i * size), (i * size) + size);
|
|
27
|
+
}
|
|
28
|
+
return forkJoin(subarray.map(i => {
|
|
29
|
+
return this.httpPost('batch.json', {
|
|
30
|
+
halt: 0,
|
|
31
|
+
cmd: Object.assign({}, ...i.map(x => {
|
|
32
|
+
return { [x[0]]: x[1] };
|
|
33
|
+
}))
|
|
34
|
+
});
|
|
35
|
+
}));
|
|
36
|
+
}
|
|
37
|
+
prepareBatch(param) {
|
|
38
|
+
let res = Object.keys(param).reduce((obj, key) => {
|
|
39
|
+
obj[key] = '';
|
|
40
|
+
return obj;
|
|
41
|
+
}, {});
|
|
42
|
+
for (let key in param) {
|
|
43
|
+
if (typeof key === 'string' || typeof key === 'number' && param[key].param) {
|
|
44
|
+
res[key] = param[key].name + '?' + this.getHttpParamsGet(param[key].param).toString();
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return res;
|
|
48
|
+
}
|
|
49
|
+
mapBranchResult(res) {
|
|
50
|
+
return Object.assign([], ...res.map(i => (i.result && i.result.result) ? i.result.result : undefined));
|
|
51
|
+
}
|
|
52
|
+
mapBranchResultWithoutKey(res) {
|
|
53
|
+
return flatten(Object.assign([], ...res.map(i => (i.result && i.result.result) ? i.result.result : undefined)));
|
|
54
|
+
}
|
|
55
|
+
post(name, params = {}, textError = '', settings = this.defSettings) {
|
|
56
|
+
return this.httpPost(this.getNameMethod(name), params, textError, settings);
|
|
57
|
+
}
|
|
58
|
+
get(name, params = {}, textError = '', settings = this.defSettings) {
|
|
59
|
+
return this.httpGet(this.getNameMethod(name), params, textError, settings);
|
|
60
|
+
}
|
|
61
|
+
httpPost(url, params = {}, textError = '', settings = this.defSettings) {
|
|
62
|
+
return this.session.getAuthParams().pipe(mergeMap(auth => {
|
|
63
|
+
if (auth) {
|
|
64
|
+
const paramsClone = clone(params);
|
|
65
|
+
paramsClone[this.session.getKeyAuth()] = auth;
|
|
66
|
+
return this.session.getBaseUrl().pipe(mergeMap(v => {
|
|
67
|
+
if (v) {
|
|
68
|
+
return this.http.post(this.prepareBaseAddress(v) + url, this.getHttpParamsPost(paramsClone, new FormData(), false, [], settings))
|
|
69
|
+
.pipe(take(1), catchError(err => {
|
|
70
|
+
if (!textError.length && err.error.error_description) {
|
|
71
|
+
textError = err.error.error_description;
|
|
72
|
+
}
|
|
73
|
+
this.snackBar.error('Ошибка: ' + textError);
|
|
74
|
+
return throwError(() => err);
|
|
75
|
+
}));
|
|
76
|
+
}
|
|
77
|
+
return throwError(() => 'get base url error');
|
|
78
|
+
}));
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
this.snackBar.error('Error: Auth not get');
|
|
82
|
+
return throwError(() => 'auth not get');
|
|
83
|
+
}
|
|
84
|
+
}));
|
|
85
|
+
}
|
|
86
|
+
httpGet(url, params = {}, textError = '', settings = this.defSettings) {
|
|
87
|
+
return this.session.getAuthParams().pipe(mergeMap(auth => {
|
|
88
|
+
if (auth) {
|
|
89
|
+
if (params === null) {
|
|
90
|
+
params = {};
|
|
91
|
+
}
|
|
92
|
+
const paramsClone = clone(params);
|
|
93
|
+
paramsClone[this.session.getKeyAuth()] = auth;
|
|
94
|
+
let options = {
|
|
95
|
+
params: this.getHttpParamsGet(paramsClone)
|
|
96
|
+
};
|
|
97
|
+
return this.session.getBaseUrl().pipe(mergeMap(v => {
|
|
98
|
+
if (v) {
|
|
99
|
+
return this.http.get(this.prepareBaseAddress(v) + url, options).pipe(take(1), catchError(err => {
|
|
100
|
+
if (!textError.length && err.error.error_description) {
|
|
101
|
+
textError = err.error.error_description;
|
|
102
|
+
}
|
|
103
|
+
this.snackBar.error('Ошибка: ' + textError);
|
|
104
|
+
return throwError(() => err);
|
|
105
|
+
}));
|
|
106
|
+
}
|
|
107
|
+
return throwError(() => 'get base url error');
|
|
108
|
+
}));
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
this.snackBar.error('Error: Auth not get');
|
|
112
|
+
return throwError(() => 'auth not get');
|
|
113
|
+
}
|
|
114
|
+
}));
|
|
115
|
+
}
|
|
116
|
+
getNameMethod(arr) {
|
|
117
|
+
return arr.join('.');
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
HttpBXServices.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: HttpBXServices, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
|
|
121
|
+
HttpBXServices.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: HttpBXServices, providedIn: 'root' });
|
|
122
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: HttpBXServices, decorators: [{
|
|
123
|
+
type: Injectable,
|
|
124
|
+
args: [{
|
|
125
|
+
providedIn: 'root'
|
|
126
|
+
}]
|
|
127
|
+
}] });
|
|
128
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSHR0cEJYLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYngtcmVzdC9zcmMvc2VydmljZXMvaHR0cC9IdHRwQlgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLFVBQVUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUN2RSxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQ2hELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDMUMsT0FBTyxLQUFLLE1BQU0sWUFBWSxDQUFBO0FBRTlCLE9BQU8sZ0JBQWdCLE1BQU0sMEJBQTBCLENBQUE7QUFNdkQsT0FBTyxPQUFPLE1BQU0saUJBQWlCLENBQUE7O0FBS3JDLE1BQU0sQ0FBQyxPQUFPLE9BQU8sY0FBZSxTQUFRLGdCQUFnQjtJQUVqRCxlQUFlO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBb0MsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUN4RSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFO2dCQUNqQixPQUFPLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQTthQUMxQjtZQUNELE9BQU8sU0FBUyxDQUFBO1FBQ2xCLENBQUMsQ0FBQyxDQUNILENBQUE7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ00sTUFBTSxDQUFPLEtBQXlEO1FBQzdFLElBQUksWUFBWSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQVMsSUFBSSxDQUFDLFlBQVksQ0FBSSxLQUFLLENBQUMsQ0FBQyxDQUFBO1FBQ3RFLE1BQU0sSUFBSSxHQUFHLEVBQUUsQ0FBQSxDQUFDLG1CQUFtQjtRQUNuQyxJQUFJLFFBQVEsR0FBRyxFQUFFLENBQUEsQ0FBQywyQ0FBMkM7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Y0FBYzsrR0FBZCxjQUFjLGNBRnJCLE1BQU07MkZBRUMsY0FBYztrQkFIbEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlLCB0aHJvd0Vycm9yLCB0YWtlLCBtZXJnZU1hcCwgZm9ya0pvaW4gfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCBjbG9uZSBmcm9tICdqdXN0LWNsb25lJ1xuaW1wb3J0IHsgaUh0dHBQYXJhbVNldHRpbmdzIH0gZnJvbSAnLi4vLi4vdHlwaWZpY2F0aW9uL3Jlc3Qvc2V0dGluZ3MnXG5pbXBvcnQgQmFzZUh0dHBTZXJ2aWNlcyBmcm9tICcuLi8uLi9zZXJ2aWNlcy9odHRwL2h0dHAnXG5pbXBvcnQge1xuICBpQmF0Y2hSZXF1ZXN0QW5zd2VyLCBpQmF0Y2hSZXF1ZXN0UGFyYW0sXG4gIGlCYXRjaFJlcXVlc3RQYXJhbUFycixcbiAgaUJhdGNoUmVxdWVzdFBhcmFtSHR0cCwga2V5QmF0Y2hcbn0gZnJvbSAnLi4vLi4vdHlwaWZpY2F0aW9uL3Jlc3QvYmF0Y2gvYmF0Y2hSZXF1ZXN0UGFyYW0nXG5pbXBvcnQgZmxhdHRlbiBmcm9tICdqdXN0LWZsYXR0ZW4taXQnXG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgSHR0cEJYU2VydmljZXMgZXh0ZW5kcyBCYXNlSHR0cFNlcnZpY2VzIHtcblxuICBvdmVycmlkZSB0aW1lTm93T25TZXJ2ZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cEdldDx7IHJlc3VsdD86IERhdGUsIGVycm9yPzogc3RyaW5nIH0+KCdzZXJ2ZXIudGltZScpLnBpcGUoXG4gICAgICBtYXAodiA9PiB7XG4gICAgICAgIGlmICh2ICYmIHYucmVzdWx0KSB7XG4gICAgICAgICAgcmV0dXJuIG5ldyBEYXRlKHYucmVzdWx0KVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICAgIH0pLFxuICAgIClcbiAgfVxuXG4gIC8qKlxuICAgKiDQrdGC0L4g0L/QuNC30LTQtdGGINCwINC90LUg0LzQtdGC0L7QtFxuICAgKiBAcGFyYW0gcGFyYW1cbiAgICovXG4gIG92ZXJyaWRlIGJyYW5jaDxULCBBPihwYXJhbTogaUJhdGNoUmVxdWVzdFBhcmFtQXJyPFQ+IHwgaUJhdGNoUmVxdWVzdFBhcmFtPFQ+W10pOiBPYnNlcnZhYmxlPGlCYXRjaFJlcXVlc3RBbnN3ZXI8QT5bXSB8IHVuZGVmaW5lZD4ge1xuICAgIGxldCBwcmVwYXJlUGFyYW0gPSBPYmplY3QuZW50cmllczxzdHJpbmc+KHRoaXMucHJlcGFyZUJhdGNoPFQ+KHBhcmFtKSlcbiAgICBjb25zdCBzaXplID0gNTAgLy8g0LHQvtC70YzRiNC1INC90LUg0L7RgtC00LDRgdGCXG4gICAgbGV0IHN1YmFycmF5ID0gW10gLy/QvNCw0YHRgdC40LIg0LIg0LrQvtGC0L7RgNGL0Lkg0LHRg9C00LXRgiDQstGL0LLQtdC00LXQvSDRgNC10LfRg9C70YzRgtCw0YIuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBNYXRoLmNlaWwocHJlcGFyZVBhcmFtLmxlbmd0aCAvIHNpemUpOyBpKyspIHtcbiAgICAgIHN1YmFycmF5W2ldID0gcHJlcGFyZVBhcmFtLnNsaWNlKChpICogc2l6ZSksIChpICogc2l6ZSkgKyBzaXplKVxuICAgIH1cblxuICAgIHJldHVybiBmb3JrSm9pbihcbiAgICAgIHN1YmFycmF5Lm1hcChpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFBvc3QoJ2JhdGNoLmpzb24nLCB7XG4gICAgICAgICAgaGFsdDogMCxcbiAgICAgICAgICBjbWQ6IE9iamVjdC5hc3NpZ24oe30sIC4uLmkubWFwKHggPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHtbeFswXV06IHhbMV19XG4gICAgICAgICAgfSkpXG4gICAgICAgIH0pXG4gICAgICB9KVxuICAgICkgYXMgT2JzZXJ2YWJsZTxpQmF0Y2hSZXF1ZXN0QW5zd2VyPEE+W10+XG4gIH1cblxuICBvdmVycmlkZSBwcmVwYXJlQmF0Y2g8VD4ocGFyYW06IGlCYXRjaFJlcXVlc3RQYXJhbUFycjxUPiB8IGlCYXRjaFJlcXVlc3RQYXJhbTxUPltdKTogaUJhdGNoUmVxdWVzdFBhcmFtSHR0cCB7XG4gICAgbGV0IHJlczogaUJhdGNoUmVxdWVzdFBhcmFtSHR0cCA9IE9iamVjdC5rZXlzKHBhcmFtKS5yZWR1Y2UoXG4gICAgICAob2JqLCBrZXkpID0+IHtcbiAgICAgICAgb2JqW2tleV0gPSAnJztcbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICAgIH0sXG4gICAgICB7fSBhcyBpQmF0Y2hSZXF1ZXN0UGFyYW1IdHRwXG4gICAgKTtcbiAgICBmb3IgKGxldCBrZXkgaW4gcGFyYW0pIHtcbiAgICAgIGlmICh0eXBlb2Yga2V5ID09PSAnc3RyaW5nJyB8fCB0eXBlb2Yga2V5ID09PSAnbnVtYmVyJyAmJiBwYXJhbVtrZXldLnBhcmFtKSB7XG4gICAgICAgIHJlc1trZXldID0gcGFyYW1ba2V5XS5uYW1lICsgJz8nICsgdGhpcy5nZXRIdHRwUGFyYW1zR2V0KHBhcmFtW2tleV0ucGFyYW0pLnRvU3RyaW5nKClcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc1xuICB9XG5cbiAgb3ZlcnJpZGUgbWFwQnJhbmNoUmVzdWx0PFQ+KHJlczogaUJhdGNoUmVxdWVzdEFuc3dlcjxUPltdKSB7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oW10sIC4uLnJlcy5tYXAoaSA9PiAoaS5yZXN1bHQgJiYgaS5yZXN1bHQucmVzdWx0KSA/IGkucmVzdWx0LnJlc3VsdCA6IHVuZGVmaW5lZCkpIGFzIHtcbiAgICAgIFtrZXk6IGtleUJhdGNoXTogVFxuICAgIH1cbiAgfVxuXG4gIG92ZXJyaWRlIG1hcEJyYW5jaFJlc3VsdFdpdGhvdXRLZXk8VD4ocmVzOiBpQmF0Y2hSZXF1ZXN0QW5zd2VyPFQ+W10pOiBUW10ge1xuICAgIHJldHVybiBmbGF0dGVuPFQ+KE9iamVjdC5hc3NpZ24oW10sIC4uLnJlcy5tYXAoaSA9PiAoaS5yZXN1bHQgJiYgaS5yZXN1bHQucmVzdWx0KSA/IGkucmVzdWx0LnJlc3VsdCA6IHVuZGVmaW5lZCkpKVxuICB9XG5cbiAgb3ZlcnJpZGUgcG9zdDxUPihuYW1lOiBzdHJpbmdbXSxcbiAgICAgICAgICAgICAgICAgICBwYXJhbXM6IGFueSA9IHt9LFxuICAgICAgICAgICAgICAgICAgIHRleHRFcnJvciA9ICcnLFxuICAgICAgICAgICAgICAgICAgIHNldHRpbmdzOiBpSHR0cFBhcmFtU2V0dGluZ3MgPSB0aGlzLmRlZlNldHRpbmdzKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFBvc3Q8VD4odGhpcy5nZXROYW1lTWV0aG9kKG5hbWUpLCBwYXJhbXMsIHRleHRFcnJvciwgc2V0dGluZ3MpXG4gIH1cblxuICBvdmVycmlkZSBnZXQ8VD4obmFtZTogc3RyaW5nW10sXG4gICAgICAgICAgICAgICAgICBwYXJhbXM6IGFueSA9IHt9LFxuICAgICAgICAgICAgICAgICAgdGV4dEVycm9yID0gJycsXG4gICAgICAgICAgICAgICAgICBzZXR0aW5nczogaUh0dHBQYXJhbVNldHRpbmdzID0gdGhpcy5kZWZTZXR0aW5ncykge1xuICAgIHJldHVybiB0aGlzLmh0dHBHZXQ8VD4odGhpcy5nZXROYW1lTWV0aG9kKG5hbWUpLCBwYXJhbXMsIHRleHRFcnJvciwgc2V0dGluZ3MpXG4gIH1cblxuICBvdmVycmlkZSBodHRwUG9zdDxUPih1cmw6IHN0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zOiBhbnkgPSB7fSxcbiAgICAgICAgICAgICAgICAgICAgICAgdGV4dEVycm9yID0gJycsXG4gICAgICAgICAgICAgICAgICAgICAgIHNldHRpbmdzOiBpSHR0cFBhcmFtU2V0dGluZ3MgPSB0aGlzLmRlZlNldHRpbmdzXG4gICk6IE9ic2VydmFibGU8VCB8IHVuZGVmaW5lZD4ge1xuICAgIHJldHVybiB0aGlzLnNlc3Npb24uZ2V0QXV0aFBhcmFtcygpLnBpcGUoXG4gICAgICBtZXJnZU1hcChhdXRoID0+IHtcbiAgICAgICAgaWYgKGF1dGgpIHtcbiAgICAgICAgICBjb25zdCBwYXJhbXNDbG9uZSA9IGNsb25lKHBhcmFtcylcbiAgICAgICAgICBwYXJhbXNDbG9uZVt0aGlzLnNlc3Npb24uZ2V0S2V5QXV0aCgpXSA9IGF1dGhcbiAgICAgICAgICByZXR1cm4gdGhpcy5zZXNzaW9uLmdldEJhc2VVcmwoKS5waXBlKG1lcmdlTWFwKHYgPT4ge1xuICAgICAgICAgICAgaWYgKHYpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PFQgfCB1bmRlZmluZWQ+KFxuICAgICAgICAgICAgICAgIHRoaXMucHJlcGFyZUJhc2VBZGRyZXNzKHYpICsgdXJsLFxuICAgICAgICAgICAgICAgIHRoaXMuZ2V0SHR0cFBhcmFtc1Bvc3QocGFyYW1zQ2xvbmUsIG5ldyBGb3JtRGF0YSgpLCBmYWxzZSwgW10sIHNldHRpbmdzKSlcbiAgICAgICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICAgIHRha2UoMSksXG4gICAgICAgICAgICAgICAgICBjYXRjaEVycm9yKGVyciA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghdGV4dEVycm9yLmxlbmd0aCAmJiBlcnIuZXJyb3IuZXJyb3JfZGVzY3JpcHRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICB0ZXh0RXJyb3IgPSBlcnIuZXJyb3IuZXJyb3JfZGVzY3JpcHRpb25cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc25hY2tCYXIuZXJyb3IoJ9Ce0YjQuNCx0LrQsDogJyArIHRleHRFcnJvcilcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gZXJyKVxuICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiAnZ2V0IGJhc2UgdXJsIGVycm9yJylcbiAgICAgICAgICB9KSlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnNuYWNrQmFyLmVycm9yKCdFcnJvcjogQXV0aCBub3QgZ2V0JylcbiAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiAnYXV0aCBub3QgZ2V0JylcbiAgICAgICAgfVxuICAgICAgfSkpXG4gIH1cblxuICBvdmVycmlkZSBodHRwR2V0PFQ+KFxuICAgIHVybDogc3RyaW5nLFxuICAgIHBhcmFtczogYW55ID0ge30sXG4gICAgdGV4dEVycm9yID0gJycsXG4gICAgc2V0dGluZ3M6IGlIdHRwUGFyYW1TZXR0aW5ncyA9IHRoaXMuZGVmU2V0dGluZ3NcbiAgKTogT2JzZXJ2YWJsZTxUIHwgdW5kZWZpbmVkPiB7XG4gICAgcmV0dXJuIHRoaXMuc2Vzc2lvbi5nZXRBdXRoUGFyYW1zKCkucGlwZShcbiAgICAgIG1lcmdlTWFwKGF1dGggPT4ge1xuICAgICAgICBpZiAoYXV0aCkge1xuICAgICAgICAgIGlmIChwYXJhbXMgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHBhcmFtcyA9IHt9XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnN0IHBhcmFtc0Nsb25lID0gY2xvbmUocGFyYW1zKVxuICAgICAgICAgIHBhcmFtc0Nsb25lW3RoaXMuc2Vzc2lvbi5nZXRLZXlBdXRoKCldID0gYXV0aFxuICAgICAgICAgIGxldCBvcHRpb25zID0ge1xuICAgICAgICAgICAgcGFyYW1zOiB0aGlzLmdldEh0dHBQYXJhbXNHZXQocGFyYW1zQ2xvbmUpXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHRoaXMuc2Vzc2lvbi5nZXRCYXNlVXJsKCkucGlwZShcbiAgICAgICAgICAgIG1lcmdlTWFwKHYgPT4ge1xuICAgICAgICAgICAgICBpZiAodikge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFQ+KHRoaXMucHJlcGFyZUJhc2VBZGRyZXNzKHYpICsgdXJsLCBvcHRpb25zKS5waXBlKFxuICAgICAgICAgICAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoZXJyID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0ZXh0RXJyb3IubGVuZ3RoICYmIGVyci5lcnJvci5lcnJvcl9kZXNjcmlwdGlvbikge1xuICAgICAgICAgICAgICAgICAgICAgIHRleHRFcnJvciA9IGVyci5lcnJvci5lcnJvcl9kZXNjcmlwdGlvblxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zbmFja0Jhci5lcnJvcign0J7RiNC40LHQutCwOiAnICsgdGV4dEVycm9yKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBlcnIpXG4gICAgICAgICAgICAgICAgICB9KSlcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiAnZ2V0IGJhc2UgdXJsIGVycm9yJylcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuc25hY2tCYXIuZXJyb3IoJ0Vycm9yOiBBdXRoIG5vdCBnZXQnKVxuICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+ICdhdXRoIG5vdCBnZXQnKVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIG92ZXJyaWRlIGdldE5hbWVNZXRob2QoYXJyOiBzdHJpbmdbXSkge1xuICAgIHJldHVybiBhcnIuam9pbignLicpXG4gIH1cblxufVxuXG4iXX0=
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { BaseServices } from '../../services/base';
|
|
2
|
+
import { HttpParams } from '@angular/common/http';
|
|
3
|
+
export class HttpData extends BaseServices {
|
|
4
|
+
constructor() {
|
|
5
|
+
super(...arguments);
|
|
6
|
+
this.defSettings = {
|
|
7
|
+
timeZone: {
|
|
8
|
+
calc: true,
|
|
9
|
+
levelOut: false
|
|
10
|
+
}
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
getHttpParamsGet(// не так уж и сложно сделать сложенный HttpParams, да гугл?
|
|
14
|
+
obj, sendHttpParams = new HttpParams(), thisArray = false, nesting = [],
|
|
15
|
+
// settings = this.defSettings
|
|
16
|
+
_ = this.defSettings) {
|
|
17
|
+
for (const key in obj) {
|
|
18
|
+
let setKey = '';
|
|
19
|
+
if (nesting.length) {
|
|
20
|
+
let first = nesting[0];
|
|
21
|
+
setKey = (nesting.length > 1)
|
|
22
|
+
? first + '[' + nesting.slice(1).join('][') + '][' + key + ']'
|
|
23
|
+
: first + '[' + key + ']';
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
setKey = key;
|
|
27
|
+
}
|
|
28
|
+
switch (typeof obj[key]) {
|
|
29
|
+
case 'string':
|
|
30
|
+
sendHttpParams = sendHttpParams.set(setKey, obj[key]);
|
|
31
|
+
break;
|
|
32
|
+
case 'symbol':
|
|
33
|
+
case 'number':
|
|
34
|
+
case 'bigint':
|
|
35
|
+
case 'boolean':
|
|
36
|
+
sendHttpParams = sendHttpParams.set(setKey, String(obj[key]));
|
|
37
|
+
break;
|
|
38
|
+
case 'object':
|
|
39
|
+
nesting.push(key);
|
|
40
|
+
sendHttpParams = this.getHttpParamsGet(obj[key], sendHttpParams, false, nesting);
|
|
41
|
+
nesting.pop();
|
|
42
|
+
break;
|
|
43
|
+
case 'function':
|
|
44
|
+
case 'undefined':
|
|
45
|
+
default:
|
|
46
|
+
console.error('Ты отправил что-то не то', obj[key], typeof obj[key], typeof obj);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
return sendHttpParams;
|
|
50
|
+
}
|
|
51
|
+
getHttpParamsPost(obj, sendHttpParams = new FormData(), thisArray = false, nesting = [], settings = this.defSettings) {
|
|
52
|
+
if (obj instanceof Blob) {
|
|
53
|
+
let first = nesting[0];
|
|
54
|
+
let setKey = (nesting.length > 1)
|
|
55
|
+
? first + '[' + nesting.slice(1).join('][') + ']'
|
|
56
|
+
: first;
|
|
57
|
+
sendHttpParams.set(setKey, obj);
|
|
58
|
+
return sendHttpParams;
|
|
59
|
+
}
|
|
60
|
+
else if (obj instanceof Date) {
|
|
61
|
+
let first = nesting[0];
|
|
62
|
+
let tzoffset = (settings.timeZone.calc) ? obj.getTimezoneOffset() * 60000 : 0; // вычисляем влияние часового пояса
|
|
63
|
+
let levelOut = (settings.timeZone.levelOut) ? obj.getTimezoneOffset() * 60000 : 0; // вычисляем влияние часового пояса
|
|
64
|
+
let setKey = (nesting.length > 1)
|
|
65
|
+
? first + '[' + nesting.slice(1).join('][') + ']'
|
|
66
|
+
: first;
|
|
67
|
+
sendHttpParams.set(setKey, (new Date(obj.valueOf() + tzoffset - levelOut)).toISOString());
|
|
68
|
+
return sendHttpParams;
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
for (const key in obj) {
|
|
72
|
+
let setKey = '';
|
|
73
|
+
if (nesting.length) {
|
|
74
|
+
let first = nesting[0];
|
|
75
|
+
setKey = (nesting.length > 1)
|
|
76
|
+
? first + '[' + nesting.slice(1).join('][') + '][' + key + ']'
|
|
77
|
+
: first + '[' + key + ']';
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
setKey = key;
|
|
81
|
+
}
|
|
82
|
+
switch (typeof obj[key]) {
|
|
83
|
+
case 'string':
|
|
84
|
+
sendHttpParams.set(setKey, obj[key]);
|
|
85
|
+
break;
|
|
86
|
+
case 'symbol':
|
|
87
|
+
case 'number':
|
|
88
|
+
case 'bigint':
|
|
89
|
+
case 'boolean':
|
|
90
|
+
sendHttpParams.set(setKey, String(obj[key]));
|
|
91
|
+
break;
|
|
92
|
+
case 'object':
|
|
93
|
+
nesting.push(key);
|
|
94
|
+
sendHttpParams = this.getHttpParamsPost(obj[key], sendHttpParams, false, nesting, settings);
|
|
95
|
+
nesting.pop();
|
|
96
|
+
break;
|
|
97
|
+
case 'function':
|
|
98
|
+
case 'undefined':
|
|
99
|
+
default:
|
|
100
|
+
console.error('Ты отправил что-то не то', obj[key], typeof obj[key], typeof obj);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
return sendHttpParams;
|
|
105
|
+
}
|
|
106
|
+
mapResult(v) {
|
|
107
|
+
if (v && (v.result || typeof v.result === 'boolean')) {
|
|
108
|
+
return v.result;
|
|
109
|
+
}
|
|
110
|
+
return undefined;
|
|
111
|
+
}
|
|
112
|
+
sliceArrayIntoChunks(arr, chunkSize) {
|
|
113
|
+
const res = [];
|
|
114
|
+
for (let i = 0; i < arr.length; i += chunkSize) {
|
|
115
|
+
const chunk = arr.slice(i, i + chunkSize);
|
|
116
|
+
res.push(chunk);
|
|
117
|
+
}
|
|
118
|
+
return res;
|
|
119
|
+
}
|
|
120
|
+
removingMultipleSlashes(str) {
|
|
121
|
+
return str.replace(/\/{2,}/g, '/');
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSHR0cERhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ieC1yZXN0L3NyYy9zZXJ2aWNlcy9odHRwL0h0dHBEYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUNsRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFJakQsTUFBTSxPQUFPLFFBQVMsU0FBUSxZQUFZO0lBQTFDOztRQUVJLGdCQUFXLEdBQXVCO1lBQzlCLFFBQVEsRUFBRTtnQkFDTixJQUFJLEVBQUUsSUFBSTtnQkFDVixRQUFRLEVBQUUsS0FBSzthQUNsQjtTQUNKLENBQUE7SUFpSUwsQ0FBQztJQS9IRyxnQkFBZ0IsQ0FBRSw0REFBNEQ7SUFDMUUsR0FBUSxFQUNSLGlCQUE2QixJQUFJLFVBQVUsRUFBRSxFQUM3QyxTQUFTLEdBQUcsS0FBSyxFQUNqQixVQUFvQixFQUFFO0lBQ3RCLDhCQUE4QjtJQUM5QixDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVc7UUFFcEIsS0FBSyxNQUFNLEdBQUcsSUFBSSxHQUFHLEVBQUU7WUFDbkIsSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFBO1lBQ2YsSUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFO2dCQUNoQixJQUFJLEtBQUssR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUE7Z0JBQ3RCLE1BQU0sR0FBRyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO29CQUN6QixDQUFDLENBQUMsS0FBSyxHQUFHLEdBQUcsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLEdBQUcsR0FBRyxHQUFHLEdBQUc7b0JBQzlELENBQUMsQ0FBQyxLQUFLLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUE7YUFDaEM7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TyxDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUMsQ0FBQTtJQUN0QyxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlU2VydmljZXMgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9iYXNlJ1xyXG5pbXBvcnQgeyBIdHRwUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnXHJcbmltcG9ydCB7IGlIdHRwUGFyYW1TZXR0aW5ncyB9IGZyb20gJy4uLy4uL3R5cGlmaWNhdGlvbi9yZXN0L3NldHRpbmdzJ1xyXG5pbXBvcnQgaUh0dHBBbnN3ZXJCWCBmcm9tICcuLi8uLi90eXBpZmljYXRpb24vcmVzdC9iYXNlL2h0dHBBbnN3ZXJCWCdcclxuXHJcbmV4cG9ydCBjbGFzcyBIdHRwRGF0YSBleHRlbmRzIEJhc2VTZXJ2aWNlcyB7XHJcblxyXG4gICAgZGVmU2V0dGluZ3M6IGlIdHRwUGFyYW1TZXR0aW5ncyA9IHtcclxuICAgICAgICB0aW1lWm9uZToge1xyXG4gICAgICAgICAgICBjYWxjOiB0cnVlLFxyXG4gICAgICAgICAgICBsZXZlbE91dDogZmFsc2VcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0SHR0cFBhcmFtc0dldCggLy8g0L3QtSDRgtCw0Log0YPQtiDQuCDRgdC70L7QttC90L4g0YHQtNC10LvQsNGC0Ywg0YHQu9C+0LbQtdC90L3Ri9C5IEh0dHBQYXJhbXMsINC00LAg0LPRg9Cz0Ls/XHJcbiAgICAgICAgb2JqOiBhbnksXHJcbiAgICAgICAgc2VuZEh0dHBQYXJhbXM6IEh0dHBQYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpLFxyXG4gICAgICAgIHRoaXNBcnJheSA9IGZhbHNlLFxyXG4gICAgICAgIG5lc3Rpbmc6IHN0cmluZ1tdID0gW10sXHJcbiAgICAgICAgLy8gc2V0dGluZ3MgPSB0aGlzLmRlZlNldHRpbmdzXHJcbiAgICAgICAgXyA9IHRoaXMuZGVmU2V0dGluZ3NcclxuICAgICk6IGFueSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gb2JqKSB7XHJcbiAgICAgICAgICAgIGxldCBzZXRLZXkgPSAnJ1xyXG4gICAgICAgICAgICBpZiAobmVzdGluZy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgIGxldCBmaXJzdCA9IG5lc3RpbmdbMF1cclxuICAgICAgICAgICAgICAgIHNldEtleSA9IChuZXN0aW5nLmxlbmd0aCA+IDEpXHJcbiAgICAgICAgICAgICAgICAgICAgPyBmaXJzdCArICdbJyArIG5lc3Rpbmcuc2xpY2UoMSkuam9pbignXVsnKSArICddWycgKyBrZXkgKyAnXSdcclxuICAgICAgICAgICAgICAgICAgICA6IGZpcnN0ICsgJ1snICsga2V5ICsgJ10nXHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBzZXRLZXkgPSBrZXlcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBzd2l0Y2ggKHR5cGVvZiBvYmpba2V5XSkge1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnc3RyaW5nJzpcclxuICAgICAgICAgICAgICAgICAgICBzZW5kSHR0cFBhcmFtcyA9IHNlbmRIdHRwUGFyYW1zLnNldChzZXRLZXksIG9ialtrZXldKVxyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrXHJcbiAgICAgICAgICAgICAgICBjYXNlICdzeW1ib2wnOlxyXG4gICAgICAgICAgICAgICAgY2FzZSAnbnVtYmVyJzpcclxuICAgICAgICAgICAgICAgIGNhc2UgJ2JpZ2ludCc6XHJcbiAgICAgICAgICAgICAgICBjYXNlICdib29sZWFuJzpcclxuICAgICAgICAgICAgICAgICAgICBzZW5kSHR0cFBhcmFtcyA9IHNlbmRIdHRwUGFyYW1zLnNldChzZXRLZXksIFN0cmluZyhvYmpba2V5XSkpXHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWtcclxuICAgICAgICAgICAgICAgIGNhc2UgJ29iamVjdCc6XHJcbiAgICAgICAgICAgICAgICAgICAgbmVzdGluZy5wdXNoKGtleSlcclxuICAgICAgICAgICAgICAgICAgICBzZW5kSHR0cFBhcmFtcyA9IHRoaXMuZ2V0SHR0cFBhcmFtc0dldChvYmpba2V5XSwgc2VuZEh0dHBQYXJhbXMsIGZhbHNlLCBuZXN0aW5nKVxyXG4gICAgICAgICAgICAgICAgICAgIG5lc3RpbmcucG9wKClcclxuICAgICAgICAgICAgICAgICAgICBicmVha1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnZnVuY3Rpb24nOlxyXG4gICAgICAgICAgICAgICAgY2FzZSAndW5kZWZpbmVkJzpcclxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcign0KLRiyDQvtGC0L/RgNCw0LLQuNC7INGH0YLQvi3RgtC+INC90LUg0YLQvicsIG9ialtrZXldLCB0eXBlb2Ygb2JqW2tleV0sIHR5cGVvZiBvYmopXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHNlbmRIdHRwUGFyYW1zXHJcbiAgICB9XHJcblxyXG4gICAgZ2V0SHR0cFBhcmFtc1Bvc3QoXHJcbiAgICAgICAgb2JqOiBhbnksXHJcbiAgICAgICAgc2VuZEh0dHBQYXJhbXM6IEZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCksXHJcbiAgICAgICAgdGhpc0FycmF5ID0gZmFsc2UsXHJcbiAgICAgICAgbmVzdGluZzogc3RyaW5nW10gPSBbXSxcclxuICAgICAgICBzZXR0aW5ncyA9IHRoaXMuZGVmU2V0dGluZ3NcclxuICAgICk6IGFueSB7XHJcblxyXG4gICAgICAgIGlmIChvYmogaW5zdGFuY2VvZiBCbG9iKSB7XHJcbiAgICAgICAgICAgIGxldCBmaXJzdCA9IG5lc3RpbmdbMF1cclxuICAgICAgICAgICAgbGV0IHNldEtleSA9IChuZXN0aW5nLmxlbmd0aCA+IDEpXHJcbiAgICAgICAgICAgICAgICA/IGZpcnN0ICsgJ1snICsgbmVzdGluZy5zbGljZSgxKS5qb2luKCddWycpICsgJ10nXHJcbiAgICAgICAgICAgICAgICA6IGZpcnN0XHJcbiAgICAgICAgICAgIHNlbmRIdHRwUGFyYW1zLnNldChzZXRLZXksIG9iailcclxuICAgICAgICAgICAgcmV0dXJuIHNlbmRIdHRwUGFyYW1zXHJcbiAgICAgICAgfSBlbHNlIGlmIChvYmogaW5zdGFuY2VvZiBEYXRlKSB7XHJcbiAgICAgICAgICAgIGxldCBmaXJzdCA9IG5lc3RpbmdbMF1cclxuICAgICAgICAgICAgbGV0IHR6b2Zmc2V0ID0gKHNldHRpbmdzLnRpbWVab25lLmNhbGMpID8gIG9iai5nZXRUaW1lem9uZU9mZnNldCgpICogNjAwMDAgOiAwIC8vINCy0YvRh9C40YHQu9GP0LXQvCDQstC70LjRj9C90LjQtSDRh9Cw0YHQvtCy0L7Qs9C+INC/0L7Rj9GB0LBcclxuICAgICAgICAgICAgbGV0IGxldmVsT3V0ID0gKHNldHRpbmdzLnRpbWVab25lLmxldmVsT3V0KSA/ICBvYmouZ2V0VGltZXpvbmVPZmZzZXQoKSAqIDYwMDAwIDogMCAvLyDQstGL0YfQuNGB0LvRj9C10Lwg0LLQu9C40Y/QvdC40LUg0YfQsNGB0L7QstC+0LPQviDQv9C+0Y/RgdCwXHJcbiAgICAgICAgICAgIGxldCBzZXRLZXkgPSAobmVzdGluZy5sZW5ndGggPiAxKVxyXG4gICAgICAgICAgICAgICAgPyBmaXJzdCArICdbJyArIG5lc3Rpbmcuc2xpY2UoMSkuam9pbignXVsnKSArICddJ1xyXG4gICAgICAgICAgICAgICAgOiBmaXJzdFxyXG4gICAgICAgICAgICBzZW5kSHR0cFBhcmFtcy5zZXQoc2V0S2V5LCAobmV3IERhdGUob2JqLnZhbHVlT2YoKSArIHR6b2Zmc2V0IC0gbGV2ZWxPdXQpKS50b0lTT1N0cmluZygpKVxyXG4gICAgICAgICAgICByZXR1cm4gc2VuZEh0dHBQYXJhbXNcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBvYmopIHtcclxuICAgICAgICAgICAgICAgIGxldCBzZXRLZXkgPSAnJ1xyXG4gICAgICAgICAgICAgICAgaWYgKG5lc3RpbmcubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGZpcnN0ID0gbmVzdGluZ1swXVxyXG4gICAgICAgICAgICAgICAgICAgIHNldEtleSA9IChuZXN0aW5nLmxlbmd0aCA+IDEpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gZmlyc3QgKyAnWycgKyBuZXN0aW5nLnNsaWNlKDEpLmpvaW4oJ11bJykgKyAnXVsnICsga2V5ICsgJ10nXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogZmlyc3QgKyAnWycgKyBrZXkgKyAnXSdcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgc2V0S2V5ID0ga2V5XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHR5cGVvZiBvYmpba2V5XSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3N0cmluZyc6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbmRIdHRwUGFyYW1zLnNldChzZXRLZXksIG9ialtrZXldKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVha1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3N5bWJvbCc6XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnbnVtYmVyJzpcclxuICAgICAgICAgICAgICAgICAgICBjYXNlICdiaWdpbnQnOlxyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ2Jvb2xlYW4nOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzZW5kSHR0cFBhcmFtcy5zZXQoc2V0S2V5LCBTdHJpbmcob2JqW2tleV0pKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVha1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ29iamVjdCc6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5lc3RpbmcucHVzaChrZXkpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbmRIdHRwUGFyYW1zID0gdGhpcy5nZXRIdHRwUGFyYW1zUG9zdChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9ialtrZXldLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VuZEh0dHBQYXJhbXMsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5lc3RpbmcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXR0aW5nc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5lc3RpbmcucG9wKClcclxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWtcclxuICAgICAgICAgICAgICAgICAgICBjYXNlICdmdW5jdGlvbic6XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAndW5kZWZpbmVkJzpcclxuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCfQotGLINC+0YLQv9GA0LDQstC40Lsg0YfRgtC+LdGC0L4g0L3QtSDRgtC+Jywgb2JqW2tleV0sIHR5cGVvZiBvYmpba2V5XSwgdHlwZW9mIG9iailcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gc2VuZEh0dHBQYXJhbXNcclxuICAgIH1cclxuXHJcbiAgICBtYXBSZXN1bHQ8VD4odjogaUh0dHBBbnN3ZXJCWDxUPiB8IHVuZGVmaW5lZCk6IFQgfCB1bmRlZmluZWQge1xyXG4gICAgICAgIGlmICh2ICYmICh2LnJlc3VsdCB8fCB0eXBlb2Ygdi5yZXN1bHQgPT09ICdib29sZWFuJykpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHYucmVzdWx0XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB1bmRlZmluZWRcclxuICAgIH1cclxuXHJcbiAgICBzbGljZUFycmF5SW50b0NodW5rcyhhcnI6IGFueVtdLCBjaHVua1NpemU6IG51bWJlcikge1xyXG4gICAgICAgIGNvbnN0IHJlcyA9IFtdO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXJyLmxlbmd0aDsgaSArPSBjaHVua1NpemUpIHtcclxuICAgICAgICAgICAgY29uc3QgY2h1bmsgPSBhcnIuc2xpY2UoaSwgaSArIGNodW5rU2l6ZSk7XHJcbiAgICAgICAgICAgIHJlcy5wdXNoKGNodW5rKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHJlcztcclxuICAgIH1cclxuXHJcbiAgICByZW1vdmluZ011bHRpcGxlU2xhc2hlcyhzdHI6IHN0cmluZykge1xyXG4gICAgICAgIHJldHVybiBzdHIucmVwbGFjZSgvXFwvezIsfS9nLCAnLycpXHJcbiAgICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import SnackBarService from '../../../services/snack-bar/snack-bar.service';
|
|
2
|
+
import { of, } from 'rxjs';
|
|
3
|
+
import { HttpData } from '../../../services/http/HttpData';
|
|
4
|
+
import { Injectable } from '@angular/core';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@angular/common/http";
|
|
7
|
+
export class BaseHttp extends HttpData {
|
|
8
|
+
constructor(http, snackBar) {
|
|
9
|
+
super();
|
|
10
|
+
this.http = http;
|
|
11
|
+
this.snackBar = snackBar;
|
|
12
|
+
}
|
|
13
|
+
handleError(result, textError = 'получения данных') {
|
|
14
|
+
return (error) => {
|
|
15
|
+
console.error(`failed: ${error.message}`);
|
|
16
|
+
this.snackBar.error('Ошибка: ' + textError);
|
|
17
|
+
return of(result);
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
BaseHttp.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BaseHttp, deps: [{ token: i1.HttpClient }, { token: SnackBarService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
22
|
+
BaseHttp.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BaseHttp, providedIn: 'root' });
|
|
23
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BaseHttp, decorators: [{
|
|
24
|
+
type: Injectable,
|
|
25
|
+
args: [{
|
|
26
|
+
providedIn: 'root'
|
|
27
|
+
}]
|
|
28
|
+
}], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: SnackBarService }]; } });
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL3NlcnZpY2VzL2h0dHAvYmFzZS9iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBLE9BQU8sZUFBZSxNQUFNLCtDQUErQyxDQUFBO0FBQzNFLE9BQU8sRUFBYyxFQUFFLEdBQUcsTUFBTSxNQUFNLENBQUE7QUFDdEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlDQUFpQyxDQUFBO0FBQzFELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7OztBQUsxQyxNQUFNLE9BQWdCLFFBQVMsU0FBUSxRQUFRO0lBRTNDLFlBQTZCLElBQWdCLEVBQVMsUUFBeUI7UUFDM0UsS0FBSyxFQUFFLENBQUE7UUFEa0IsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUFTLGFBQVEsR0FBUixRQUFRLENBQWlCO0lBRS9FLENBQUM7SUFlRCxXQUFXLENBQ1AsTUFBVSxFQUNWLFNBQVMsR0FBRyxrQkFBa0I7UUFDOUIsT0FBTyxDQUFDLEtBQVksRUFBaUIsRUFBRTtZQUNuQyxPQUFPLENBQUMsS0FBSyxDQUFDLFdBQVcsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUE7WUFDekMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQyxDQUFBO1lBQzNDLE9BQU8sRUFBRSxDQUFDLE1BQVcsQ0FBQyxDQUFBO1FBQzFCLENBQUMsQ0FBQztJQUNOLENBQUM7O3FHQTNCaUIsUUFBUSw0Q0FSdkIsZUFBZTt5R0FRQSxRQUFRLGNBRmQsTUFBTTsyRkFFQSxRQUFRO2tCQUg3QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQjttRkFQTSxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiLy8gaW1wb3J0IHsgaUh0dHBQYXJhbVNldHRpbmdzIH0gZnJvbSAnLi4vLi4vLi4vdHlwaWZpY2F0aW9uL3Jlc3Qvc2V0dGluZ3MnXHJcbi8vIGltcG9ydCB7IGlIdHRwUGFyYW1TZXR0aW5ncyB9IGZyb20gJ2J4LXJlc3QvdHlwaWZpY2F0aW9uL3Jlc3Qvc2V0dGluZ3MnXHJcblxyXG5pbXBvcnQgeyBpSHR0cFBhcmFtU2V0dGluZ3MgfSBmcm9tICcuLi8uLi8uLi90eXBpZmljYXRpb24vcmVzdC9zZXR0aW5ncydcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJ1xyXG5pbXBvcnQgU25hY2tCYXJTZXJ2aWNlIGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3NuYWNrLWJhci9zbmFjay1iYXIuc2VydmljZSdcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YsIH0gZnJvbSAncnhqcydcclxuaW1wb3J0IHsgSHR0cERhdGEgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9odHRwL0h0dHBEYXRhJ1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZUh0dHAgZXh0ZW5kcyBIdHRwRGF0YSB7XHJcblxyXG4gICAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKHB1YmxpYyBodHRwOiBIdHRwQ2xpZW50LCBwdWJsaWMgc25hY2tCYXI6IFNuYWNrQmFyU2VydmljZSkge1xyXG4gICAgICAgIHN1cGVyKClcclxuICAgIH1cclxuXHJcbiAgICBhYnN0cmFjdCBodHRwR2V0PFQ+KFxyXG4gICAgICAgIHVybDogc3RyaW5nLFxyXG4gICAgICAgIHBhcmFtczogYW55LFxyXG4gICAgICAgIHRleHRFcnJvcjogc3RyaW5nLFxyXG4gICAgICAgIHNldHRpbmdzOiBpSHR0cFBhcmFtU2V0dGluZ3NcclxuICAgICk6IE9ic2VydmFibGU8VCB8IHVuZGVmaW5lZD5cclxuXHJcbiAgICBhYnN0cmFjdCBodHRwUG9zdDxUPih1cmw6IHN0cmluZyxcclxuICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXM6IGFueSAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgdGV4dEVycm9yOiBzdHJpbmcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgc2V0dGluZ3M6IGlIdHRwUGFyYW1TZXR0aW5nc1xyXG4gICAgKTogT2JzZXJ2YWJsZTxUIHwgdW5kZWZpbmVkPlxyXG5cclxuICAgIGhhbmRsZUVycm9yPFQ+KFxyXG4gICAgICAgIHJlc3VsdD86IFQsXHJcbiAgICAgICAgdGV4dEVycm9yID0gJ9C/0L7Qu9GD0YfQtdC90LjRjyDQtNCw0L3QvdGL0YUnKSB7XHJcbiAgICAgICAgcmV0dXJuIChlcnJvcjogRXJyb3IpOiBPYnNlcnZhYmxlPFQ+ID0+IHtcclxuICAgICAgICAgICAgY29uc29sZS5lcnJvcihgZmFpbGVkOiAke2Vycm9yLm1lc3NhZ2V9YClcclxuICAgICAgICAgICAgdGhpcy5zbmFja0Jhci5lcnJvcign0J7RiNC40LHQutCwOiAnICsgdGV4dEVycm9yKVxyXG4gICAgICAgICAgICByZXR1cm4gb2YocmVzdWx0IGFzIFQpXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { throwError } from 'rxjs';
|
|
2
|
+
import { catchError } from 'rxjs/operators';
|
|
3
|
+
import { HttpParams } from '@angular/common/http';
|
|
4
|
+
import { BaseHttp } from '../../../services/http/base/base';
|
|
5
|
+
export class BaseHttpServices extends BaseHttp {
|
|
6
|
+
httpGet(url, params = {}, textError = '', settings = this.defSettings) {
|
|
7
|
+
return this.http.get(url, {
|
|
8
|
+
params: this.getHttpParamsGet(params, new HttpParams(), false, [], settings)
|
|
9
|
+
}).pipe(catchError(err => {
|
|
10
|
+
if (!textError.length && err.error.error_description) {
|
|
11
|
+
textError = err.error.error_description;
|
|
12
|
+
}
|
|
13
|
+
this.snackBar.error('Ошибка: ' + textError);
|
|
14
|
+
return throwError(() => err);
|
|
15
|
+
}));
|
|
16
|
+
}
|
|
17
|
+
httpPost(url, params = {}, textError = '', settings = this.defSettings) {
|
|
18
|
+
return this.http.post(url, this.getHttpParamsPost(params, new FormData(), false, [], settings)).pipe(catchError(err => {
|
|
19
|
+
if (!textError.length && err.error.error_description) {
|
|
20
|
+
textError = err.error.error_description;
|
|
21
|
+
}
|
|
22
|
+
this.snackBar.error('Ошибка: ' + textError);
|
|
23
|
+
console.error(err);
|
|
24
|
+
return throwError(() => err);
|
|
25
|
+
}));
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL3NlcnZpY2VzL2h0dHAvYmFzZS9odHRwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDN0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUVqRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0NBQWtDLENBQUE7QUFFM0QsTUFBTSxPQUFPLGdCQUFpQixTQUFRLFFBQVE7SUFFbkMsT0FBTyxDQUNWLEdBQVcsRUFDWCxNQUFNLEdBQUcsRUFBRSxFQUNYLFNBQVMsR0FBRyxFQUFFLEVBQ2QsV0FBK0IsSUFBSSxDQUFDLFdBQVc7UUFFL0MsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBZ0IsR0FBRyxFQUFFO1lBQ3JDLE1BQU0sRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLElBQUksVUFBVSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQUM7U0FDL0UsQ0FBQyxDQUFDLElBQUksQ0FDSCxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDYixJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLGlCQUFpQixFQUFFO2dCQUNsRCxTQUFTLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQTthQUMxQztZQUVELElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUMsQ0FBQTtZQUMzQyxPQUFPLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUNoQyxDQUFDLENBQUMsQ0FDTCxDQUFBO0lBQ0wsQ0FBQztJQUVNLFFBQVEsQ0FBSSxHQUFXLEVBQ1gsU0FBYyxFQUFFLEVBQ2hCLFNBQVMsR0FBRyxFQUFFLEVBQ2QsV0FBK0IsSUFBSSxDQUFDLFdBQVc7UUFFOUQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FDakIsR0FBRyxFQUNILElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLEVBQUUsSUFBSSxRQUFRLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUN0RSxDQUFDLElBQUksQ0FDRixVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDYixJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLGlCQUFpQixFQUFFO2dCQUNsRCxTQUFTLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQTthQUMxQztZQUVELElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUMsQ0FBQTtZQUMzQyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1lBQ2xCLE9BQU8sVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQ2hDLENBQUMsQ0FBQyxDQUNMLENBQUE7SUFDTCxDQUFDO0NBbUJKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnXHJcbmltcG9ydCB7IGNhdGNoRXJyb3IgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcclxuaW1wb3J0IHsgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJ1xyXG5pbXBvcnQgeyBpSHR0cFBhcmFtU2V0dGluZ3MgfSBmcm9tICcuLi8uLi8uLi90eXBpZmljYXRpb24vcmVzdC9zZXR0aW5ncydcclxuaW1wb3J0IHsgQmFzZUh0dHAgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9odHRwL2Jhc2UvYmFzZSdcclxuXHJcbmV4cG9ydCBjbGFzcyBCYXNlSHR0cFNlcnZpY2VzIGV4dGVuZHMgQmFzZUh0dHAge1xyXG5cclxuICAgIHB1YmxpYyBodHRwR2V0PFQ+KFxyXG4gICAgICAgIHVybDogc3RyaW5nLFxyXG4gICAgICAgIHBhcmFtcyA9IHt9LFxyXG4gICAgICAgIHRleHRFcnJvciA9ICcnLFxyXG4gICAgICAgIHNldHRpbmdzOiBpSHR0cFBhcmFtU2V0dGluZ3MgPSB0aGlzLmRlZlNldHRpbmdzXHJcbiAgICApOiBPYnNlcnZhYmxlPFQgfCB1bmRlZmluZWQ+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldDxUIHwgdW5kZWZpbmVkPih1cmwsIHtcclxuICAgICAgICAgICAgcGFyYW1zOiB0aGlzLmdldEh0dHBQYXJhbXNHZXQocGFyYW1zLCBuZXcgSHR0cFBhcmFtcygpLCBmYWxzZSwgW10sIHNldHRpbmdzKVxyXG4gICAgICAgIH0pLnBpcGUoXHJcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoZXJyID0+IHtcclxuICAgICAgICAgICAgICAgIGlmICghdGV4dEVycm9yLmxlbmd0aCAmJiBlcnIuZXJyb3IuZXJyb3JfZGVzY3JpcHRpb24pIHtcclxuICAgICAgICAgICAgICAgICAgICB0ZXh0RXJyb3IgPSBlcnIuZXJyb3IuZXJyb3JfZGVzY3JpcHRpb25cclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLnNuYWNrQmFyLmVycm9yKCfQntGI0LjQsdC60LA6ICcgKyB0ZXh0RXJyb3IpXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBlcnIpXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgKVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBodHRwUG9zdDxUPih1cmw6IHN0cmluZyxcclxuICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXM6IGFueSA9IHt9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgIHRleHRFcnJvciA9ICcnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgIHNldHRpbmdzOiBpSHR0cFBhcmFtU2V0dGluZ3MgPSB0aGlzLmRlZlNldHRpbmdzXHJcbiAgICApOiBPYnNlcnZhYmxlPFQgfCB1bmRlZmluZWQ+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8VCB8IHVuZGVmaW5lZD4oXHJcbiAgICAgICAgICAgIHVybCxcclxuICAgICAgICAgICAgdGhpcy5nZXRIdHRwUGFyYW1zUG9zdChwYXJhbXMsIG5ldyBGb3JtRGF0YSgpLCBmYWxzZSwgW10sIHNldHRpbmdzKVxyXG4gICAgICAgICkucGlwZShcclxuICAgICAgICAgICAgY2F0Y2hFcnJvcihlcnIgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKCF0ZXh0RXJyb3IubGVuZ3RoICYmIGVyci5lcnJvci5lcnJvcl9kZXNjcmlwdGlvbikge1xyXG4gICAgICAgICAgICAgICAgICAgIHRleHRFcnJvciA9IGVyci5lcnJvci5lcnJvcl9kZXNjcmlwdGlvblxyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMuc25hY2tCYXIuZXJyb3IoJ9Ce0YjQuNCx0LrQsDogJyArIHRleHRFcnJvcilcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyKVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gZXJyKVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgIClcclxuICAgIH1cclxuXHJcbiAgICAvLyBUT0RPOiDQtNC+0LTQtdC70LDRgtGMXHJcbiAgICAvLyBodHRwUG9zdEJhc2VXaXRoRmlsZTxUPih1cmw6IHN0cmluZyxcclxuICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtczogYW55ID0ge30sXHJcbiAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0RXJyb3IgPSAnJyk6IE9ic2VydmFibGU8VCB8IHVuZGVmaW5lZD4ge1xyXG4gICAgLy8gICAgIGxldCBzZWFyY2hGaWxlID0gT2JqZWN0LnZhbHVlcyhwYXJhbXMpLmZpbmQoKGk6IGFueSkgPT4gaSBpbnN0YW5jZW9mIEJsb2IpXHJcbiAgICAvLyAgICAgaWYgKHNlYXJjaEZpbGUpIHtcclxuICAgIC8vICAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PFQgfCB1bmRlZmluZWQ+KHVybCwgdGhpcy5nZXRIdHRwUGFyYW1zUG9zdChwYXJhbXMpKS5waXBlKFxyXG4gICAgLy8gICAgICAgICAgICAgY2F0Y2hFcnJvcihlcnIgPT4ge1xyXG4gICAgLy8gICAgICAgICAgICAgICAgIHRoaXMuc25hY2tCYXIuZXJyb3IoJ9Ce0YjQuNCx0LrQsDogJyArIHRleHRFcnJvcilcclxuICAgIC8vICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycilcclxuICAgIC8vICAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBlcnIpXHJcbiAgICAvLyAgICAgICAgICAgICB9KVxyXG4gICAgLy8gICAgICAgICApXHJcbiAgICAvLyAgICAgfSBlbHNlIHtcclxuICAgIC8vICAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFBvc3QodXJsLCBwYXJhbXMsIHRleHRFcnJvcilcclxuICAgIC8vICAgICB9XHJcbiAgICAvLyB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
import { throwError, take, mergeMap, forkJoin } from 'rxjs';
|
|
2
|
+
import { catchError, map } from 'rxjs/operators';
|
|
3
|
+
import { Injectable } from '@angular/core';
|
|
4
|
+
import SnackBarService from '../../services/snack-bar/snack-bar.service';
|
|
5
|
+
import SessionKeyServices from '../../services/http/sessionKey';
|
|
6
|
+
import clone from 'just-clone';
|
|
7
|
+
import flatten from 'just-flatten-it';
|
|
8
|
+
import { BaseHttpServices } from './base/http';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
import * as i1 from "@angular/common/http";
|
|
11
|
+
export default class HttpServices extends BaseHttpServices {
|
|
12
|
+
constructor(http, snackBar, session) {
|
|
13
|
+
super(http, snackBar);
|
|
14
|
+
this.session = session;
|
|
15
|
+
}
|
|
16
|
+
timeNowOnServer() {
|
|
17
|
+
return this.httpGet('server.time').pipe(map(v => {
|
|
18
|
+
if (v && v.result) {
|
|
19
|
+
return new Date(v.result);
|
|
20
|
+
}
|
|
21
|
+
return undefined;
|
|
22
|
+
}));
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Это пиздец а не метод
|
|
26
|
+
* @param param
|
|
27
|
+
*/
|
|
28
|
+
branch(param) {
|
|
29
|
+
let prepareParam = Object.entries(this.prepareBatch(param));
|
|
30
|
+
const size = 50; // больше не отдаст
|
|
31
|
+
let subarray = []; //массив в который будет выведен результат.
|
|
32
|
+
for (let i = 0; i < Math.ceil(prepareParam.length / size); i++) {
|
|
33
|
+
subarray[i] = prepareParam.slice((i * size), (i * size) + size);
|
|
34
|
+
}
|
|
35
|
+
return forkJoin(subarray.map(i => {
|
|
36
|
+
return this.httpPost('batch.json', {
|
|
37
|
+
halt: 0,
|
|
38
|
+
cmd: Object.assign({}, ...i.map(x => {
|
|
39
|
+
return { [x[0]]: x[1] };
|
|
40
|
+
}))
|
|
41
|
+
});
|
|
42
|
+
}));
|
|
43
|
+
}
|
|
44
|
+
prepareBatch(param) {
|
|
45
|
+
let res = Object.keys(param).reduce((obj, key) => {
|
|
46
|
+
obj[key] = '';
|
|
47
|
+
return obj;
|
|
48
|
+
}, {});
|
|
49
|
+
for (let key in param) {
|
|
50
|
+
if (typeof key === 'string' || typeof key === 'number' && param[key].param) {
|
|
51
|
+
res[key] = param[key].name + '?' + this.getHttpParamsGet(param[key].param).toString();
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
return res;
|
|
55
|
+
}
|
|
56
|
+
mapBranchResult(res) {
|
|
57
|
+
return Object.assign([], ...res.map(i => (i.result && i.result.result) ? i.result.result : undefined));
|
|
58
|
+
}
|
|
59
|
+
mapBranchResultWithoutKey(res) {
|
|
60
|
+
return flatten(Object.assign([], ...res.map(i => (i.result && i.result.result) ? i.result.result : undefined)));
|
|
61
|
+
}
|
|
62
|
+
post(name, params = {}, textError = '', settings = this.defSettings) {
|
|
63
|
+
return this.httpPost(this.getNameMethod(name), params, textError, settings);
|
|
64
|
+
}
|
|
65
|
+
get(name, params = {}, textError = '', settings = this.defSettings) {
|
|
66
|
+
return this.httpGet(this.getNameMethod(name), params, textError, settings);
|
|
67
|
+
}
|
|
68
|
+
httpPost(url, params = {}, textError = '', settings = this.defSettings) {
|
|
69
|
+
return this.session.getAuthParams().pipe(mergeMap(auth => {
|
|
70
|
+
if (auth) {
|
|
71
|
+
const paramsClone = clone(params);
|
|
72
|
+
paramsClone[this.session.getKeyAuth()] = auth;
|
|
73
|
+
return this.session.getBaseUrl().pipe(mergeMap(v => {
|
|
74
|
+
if (v) {
|
|
75
|
+
return this.http.post(this.prepareBaseAddress(v) + url, this.getHttpParamsPost(paramsClone, new FormData(), false, [], settings))
|
|
76
|
+
.pipe(take(1), catchError(err => {
|
|
77
|
+
if (!textError.length && err.error.error_description) {
|
|
78
|
+
textError = err.error.error_description;
|
|
79
|
+
}
|
|
80
|
+
this.snackBar.error('Ошибка: ' + textError);
|
|
81
|
+
return throwError(() => err);
|
|
82
|
+
}));
|
|
83
|
+
}
|
|
84
|
+
return throwError(() => 'get base url error');
|
|
85
|
+
}));
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
this.snackBar.error('Error: Auth not get');
|
|
89
|
+
return throwError(() => 'auth not get');
|
|
90
|
+
}
|
|
91
|
+
}));
|
|
92
|
+
}
|
|
93
|
+
httpGet(url, params = {}, textError = '', settings = this.defSettings) {
|
|
94
|
+
return this.session.getAuthParams().pipe(mergeMap(auth => {
|
|
95
|
+
if (auth) {
|
|
96
|
+
if (params === null) {
|
|
97
|
+
params = {};
|
|
98
|
+
}
|
|
99
|
+
const paramsClone = clone(params);
|
|
100
|
+
paramsClone[this.session.getKeyAuth()] = auth;
|
|
101
|
+
let options = {
|
|
102
|
+
params: this.getHttpParamsGet(paramsClone)
|
|
103
|
+
};
|
|
104
|
+
return this.session.getBaseUrl().pipe(mergeMap(v => {
|
|
105
|
+
if (v) {
|
|
106
|
+
return this.http.get(this.prepareBaseAddress(v) + url, options).pipe(take(1), catchError(err => {
|
|
107
|
+
if (!textError.length && err.error.error_description) {
|
|
108
|
+
textError = err.error.error_description;
|
|
109
|
+
}
|
|
110
|
+
this.snackBar.error('Ошибка: ' + textError);
|
|
111
|
+
return throwError(() => err);
|
|
112
|
+
}));
|
|
113
|
+
}
|
|
114
|
+
return throwError(() => 'get base url error');
|
|
115
|
+
}));
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
this.snackBar.error('Error: Auth not get');
|
|
119
|
+
return throwError(() => 'auth not get');
|
|
120
|
+
}
|
|
121
|
+
}));
|
|
122
|
+
}
|
|
123
|
+
getNameMethod(arr) {
|
|
124
|
+
return arr.join('.');
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
HttpServices.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: HttpServices, deps: [{ token: i1.HttpClient }, { token: SnackBarService }, { token: SessionKeyServices }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
128
|
+
HttpServices.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: HttpServices, providedIn: 'root' });
|
|
129
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: HttpServices, decorators: [{
|
|
130
|
+
type: Injectable,
|
|
131
|
+
args: [{
|
|
132
|
+
providedIn: 'root'
|
|
133
|
+
}]
|
|
134
|
+
}], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: SnackBarService }, { type: SessionKeyServices }]; } });
|
|
135
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL3NlcnZpY2VzL2h0dHAvaHR0cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsVUFBVSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQ3ZFLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDaEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUUxQyxPQUFPLGVBQWUsTUFBTSw0Q0FBNEMsQ0FBQTtBQUN4RSxPQUFPLGtCQUFrQixNQUFNLGdDQUFnQyxDQUFBO0FBQy9ELE9BQU8sS0FBSyxNQUFNLFlBQVksQ0FBQTtBQU85QixPQUFPLE9BQU8sTUFBTSxpQkFBaUIsQ0FBQTtBQUNyQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxhQUFhLENBQUE7OztBQUs5QyxNQUFNLENBQUMsT0FBTyxPQUFPLFlBQWEsU0FBUSxnQkFBZ0I7SUFFdEQsWUFBWSxJQUFnQixFQUFFLFFBQXlCLEVBQVMsT0FBMkI7UUFDdkYsS0FBSyxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQTtRQUR1QyxZQUFPLEdBQVAsT0FBTyxDQUFvQjtJQUUzRixDQUFDO0lBRUQsZUFBZTtRQUNYLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBb0MsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUN0RSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDSixJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFO2dCQUNmLE9BQU8sSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFBO2FBQzVCO1lBQ0QsT0FBTyxTQUFTLENBQUE7UUFDcEIsQ0FBQyxDQUFDLENBQ0wsQ0FBQTtJQUNMLENBQUM7SUFFRDs7O09BR0c7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Q0FBQyxDQUFBO2dCQUMxQyxPQUFPLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxjQUFjLENBQUMsQ0FBQTthQUMxQztRQUNMLENBQUMsQ0FBQyxDQUNMLENBQUE7SUFDTCxDQUFDO0lBRUQsYUFBYSxDQUFDLEdBQWE7UUFDdkIsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQ3hCLENBQUM7O3lHQWhLZ0IsWUFBWSw0Q0FmMUIsZUFBZSxhQUNmLGtCQUFrQjs2R0FjSixZQUFZLGNBRmpCLE1BQU07MkZBRUQsWUFBWTtrQkFIaEMsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckI7bUZBZE0sZUFBZSxZQUNmLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUsIHRocm93RXJyb3IsIHRha2UsIG1lcmdlTWFwLCBmb3JrSm9pbiB9IGZyb20gJ3J4anMnXHJcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJ1xyXG5pbXBvcnQgU25hY2tCYXJTZXJ2aWNlIGZyb20gJy4uLy4uL3NlcnZpY2VzL3NuYWNrLWJhci9zbmFjay1iYXIuc2VydmljZSdcclxuaW1wb3J0IFNlc3Npb25LZXlTZXJ2aWNlcyBmcm9tICcuLi8uLi9zZXJ2aWNlcy9odHRwL3Nlc3Npb25LZXknXHJcbmltcG9ydCBjbG9uZSBmcm9tICdqdXN0LWNsb25lJ1xyXG5pbXBvcnQgeyBpSHR0cFBhcmFtU2V0dGluZ3MgfSBmcm9tICcuLi8uLi90eXBpZmljYXRpb24vcmVzdC9zZXR0aW5ncydcclxuaW1wb3J0IHtcclxuICAgIGlCYXRjaFJlcXVlc3RBbnN3ZXIsIGlCYXRjaFJlcXVlc3RQYXJhbSxcclxuICAgIGlCYXRjaFJlcXVlc3RQYXJhbUFycixcclxuICAgIGlCYXRjaFJlcXVlc3RQYXJhbUh0dHAsIGtleUJhdGNoXHJcbn0gZnJvbSAnLi4vLi4vdHlwaWZpY2F0aW9uL3Jlc3QvYmF0Y2gvYmF0Y2hSZXF1ZXN0UGFyYW0nXHJcbmltcG9ydCBmbGF0dGVuIGZyb20gJ2p1c3QtZmxhdHRlbi1pdCdcclxuaW1wb3J0IHsgQmFzZUh0dHBTZXJ2aWNlcyB9IGZyb20gJy4vYmFzZS9odHRwJ1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEh0dHBTZXJ2aWNlcyBleHRlbmRzIEJhc2VIdHRwU2VydmljZXMge1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKGh0dHA6IEh0dHBDbGllbnQsIHNuYWNrQmFyOiBTbmFja0JhclNlcnZpY2UsIHB1YmxpYyBzZXNzaW9uOiBTZXNzaW9uS2V5U2VydmljZXMpIHtcclxuICAgICAgICBzdXBlcihodHRwLCBzbmFja0JhcilcclxuICAgIH1cclxuXHJcbiAgICB0aW1lTm93T25TZXJ2ZXIoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cEdldDx7IHJlc3VsdD86IERhdGUsIGVycm9yPzogc3RyaW5nIH0+KCdzZXJ2ZXIudGltZScpLnBpcGUoXHJcbiAgICAgICAgICAgIG1hcCh2ID0+IHtcclxuICAgICAgICAgICAgICAgIGlmICh2ICYmIHYucmVzdWx0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBEYXRlKHYucmVzdWx0KVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZFxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICApXHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiDQrdGC0L4g0L/QuNC30LTQtdGGINCwINC90LUg0LzQtdGC0L7QtFxyXG4gICAgICogQHBhcmFtIHBhcmFtXHJcbiAgICAgKi9cclxuICAgIGJyYW5jaDxULCBBPihwYXJhbTogaUJhdGNoUmVxdWVzdFBhcmFtQXJyPFQ+IHwgaUJhdGNoUmVxdWVzdFBhcmFtPFQ+W10pOiBPYnNlcnZhYmxlPGlCYXRjaFJlcXVlc3RBbnN3ZXI8QT5bXSB8IHVuZGVmaW5lZD4ge1xyXG4gICAgICAgIGxldCBwcmVwYXJlUGFyYW0gPSBPYmplY3QuZW50cmllczxzdHJpbmc+KHRoaXMucHJlcGFyZUJhdGNoPFQ+KHBhcmFtKSlcclxuICAgICAgICBjb25zdCBzaXplID0gNTAgLy8g0LHQvtC70YzRiNC1INC90LUg0L7RgtC00LDRgdGCXHJcbiAgICAgICAgbGV0IHN1YmFycmF5ID0gW10gLy/QvNCw0YHRgdC40LIg0LIg0LrQvtGC0L7RgNGL0Lkg0LHRg9C00LXRgiDQstGL0LLQtdC00LXQvSDRgNC10LfRg9C70YzRgtCw0YIuXHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBNYXRoLmNlaWwocHJlcGFyZVBhcmFtLmxlbmd0aCAvIHNpemUpOyBpKyspIHtcclxuICAgICAgICAgICAgc3ViYXJyYXlbaV0gPSBwcmVwYXJlUGFyYW0uc2xpY2UoKGkgKiBzaXplKSwgKGkgKiBzaXplKSArIHNpemUpXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gZm9ya0pvaW4oXHJcbiAgICAgICAgICAgIHN1YmFycmF5Lm1hcChpID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmh0dHBQb3N0KCdiYXRjaC5qc29uJywge1xyXG4gICAgICAgICAgICAgICAgICAgIGhhbHQ6IDAsXHJcbiAgICAgICAgICAgICAgICAgICAgY21kOiBPYmplY3QuYXNzaWduKHt9LCAuLi5pLm1hcCh4ID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtbeFswXV06IHhbMV19XHJcbiAgICAgICAgICAgICAgICAgICAgfSkpXHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICkgYXMgT2JzZXJ2YWJsZTxpQmF0Y2hSZXF1ZXN0QW5zd2VyPEE+W10+XHJcbiAgICB9XHJcblxyXG4gICAgcHJlcGFyZUJhdGNoPFQ+KHBhcmFtOiBpQmF0Y2hSZXF1ZXN0UGFyYW1BcnI8VD4gfCBpQmF0Y2hSZXF1ZXN0UGFyYW08VD5bXSk6IGlCYXRjaFJlcXVlc3RQYXJhbUh0dHAge1xyXG4gICAgICAgIGxldCByZXM6IGlCYXRjaFJlcXVlc3RQYXJhbUh0dHAgPSBPYmplY3Qua2V5cyhwYXJhbSkucmVkdWNlKFxyXG4gICAgICAgICAgICAob2JqLCBrZXkpID0+IHtcclxuICAgICAgICAgICAgICAgIG9ialtrZXldID0gJyc7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gb2JqO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7fSBhcyBpQmF0Y2hSZXF1ZXN0UGFyYW1IdHRwXHJcbiAgICAgICAgKTtcclxuICAgICAgICBmb3IgKGxldCBrZXkgaW4gcGFyYW0pIHtcclxuICAgICAgICAgICAgaWYodHlwZW9mIGtleSA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIGtleSA9PT0gJ251bWJlcicgJiYgcGFyYW1ba2V5XS5wYXJhbSkge1xyXG4gICAgICAgICAgICAgICAgcmVzW2tleV0gPSBwYXJhbVtrZXldLm5hbWUgKyAnPycgKyB0aGlzLmdldEh0dHBQYXJhbXNHZXQocGFyYW1ba2V5XS5wYXJhbSkudG9TdHJpbmcoKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiByZXNcclxuICAgIH1cclxuXHJcbiAgICBtYXBCcmFuY2hSZXN1bHQ8VD4ocmVzOiBpQmF0Y2hSZXF1ZXN0QW5zd2VyPFQ+W10pe1xyXG4gICAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKFtdLCAuLi5yZXMubWFwKGkgPT4gKGkucmVzdWx0ICYmIGkucmVzdWx0LnJlc3VsdCkgPyBpLnJlc3VsdC5yZXN1bHQgOiB1bmRlZmluZWQpKSBhcyB7W2tleTprZXlCYXRjaF06IFR9XHJcbiAgICB9XHJcblxyXG4gICAgbWFwQnJhbmNoUmVzdWx0V2l0aG91dEtleTxUPihyZXM6IGlCYXRjaFJlcXVlc3RBbnN3ZXI8VD5bXSk6IFRbXXtcclxuICAgICAgICByZXR1cm4gZmxhdHRlbjxUPihPYmplY3QuYXNzaWduKFtdLCAuLi5yZXMubWFwKGkgPT4gKGkucmVzdWx0ICYmIGkucmVzdWx0LnJlc3VsdCkgPyBpLnJlc3VsdC5yZXN1bHQgOiB1bmRlZmluZWQpKSlcclxuICAgIH1cclxuXHJcbiAgICBwb3N0PFQ+KG5hbWU6IHN0cmluZ1tdLFxyXG4gICAgICAgICAgICBwYXJhbXM6IGFueSA9IHt9LFxyXG4gICAgICAgICAgICB0ZXh0RXJyb3IgPSAnJyxcclxuICAgICAgICAgICAgc2V0dGluZ3M6IGlIdHRwUGFyYW1TZXR0aW5ncyA9IHRoaXMuZGVmU2V0dGluZ3MpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwUG9zdDxUPih0aGlzLmdldE5hbWVNZXRob2QobmFtZSksIHBhcmFtcywgdGV4dEVycm9yLCBzZXR0aW5ncylcclxuICAgIH1cclxuXHJcbiAgICBnZXQ8VD4obmFtZTogc3RyaW5nW10sXHJcbiAgICAgICAgICAgcGFyYW1zOiBhbnkgPSB7fSxcclxuICAgICAgICAgICB0ZXh0RXJyb3IgPSAnJyxcclxuICAgICAgICAgICBzZXR0aW5nczogaUh0dHBQYXJhbVNldHRpbmdzID0gdGhpcy5kZWZTZXR0aW5ncykge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBHZXQ8VD4odGhpcy5nZXROYW1lTWV0aG9kKG5hbWUpLCBwYXJhbXMsIHRleHRFcnJvciwgc2V0dGluZ3MpXHJcbiAgICB9XHJcblxyXG4gICAgb3ZlcnJpZGUgaHR0cFBvc3Q8VD4odXJsOiBzdHJpbmcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXM6IGFueSA9IHt9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgdGV4dEVycm9yID0gJycsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBzZXR0aW5nczogaUh0dHBQYXJhbVNldHRpbmdzID0gdGhpcy5kZWZTZXR0aW5nc1xyXG4gICAgKTogT2JzZXJ2YWJsZTxUIHwgdW5kZWZpbmVkPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2Vzc2lvbi5nZXRBdXRoUGFyYW1zKCkucGlwZShcclxuICAgICAgICAgICAgbWVyZ2VNYXAoYXV0aCA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoYXV0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHBhcmFtc0Nsb25lID0gY2xvbmUocGFyYW1zKVxyXG4gICAgICAgICAgICAgICAgICAgIHBhcmFtc0Nsb25lW3RoaXMuc2Vzc2lvbi5nZXRLZXlBdXRoKCldID0gYXV0aFxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnNlc3Npb24uZ2V0QmFzZVVybCgpLnBpcGUobWVyZ2VNYXAodiA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8VCB8IHVuZGVmaW5lZD4oXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcmVwYXJlQmFzZUFkZHJlc3ModikgKyB1cmwsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRIdHRwUGFyYW1zUG9zdChwYXJhbXNDbG9uZSwgbmV3IEZvcm1EYXRhKCksIGZhbHNlLCBbXSwgc2V0dGluZ3MpKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWtlKDEpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXRjaEVycm9yKGVyciA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRleHRFcnJvci5sZW5ndGggJiYgZXJyLmVycm9yLmVycm9yX2Rlc2NyaXB0aW9uKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dEVycm9yID0gZXJyLmVycm9yLmVycm9yX2Rlc2NyaXB0aW9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zbmFja0Jhci5lcnJvcign0J7RiNC40LHQutCwOiAnICsgdGV4dEVycm9yKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gZXJyKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiAnZ2V0IGJhc2UgdXJsIGVycm9yJylcclxuICAgICAgICAgICAgICAgICAgICB9KSlcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zbmFja0Jhci5lcnJvcignRXJyb3I6IEF1dGggbm90IGdldCcpXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gJ2F1dGggbm90IGdldCcpXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pKVxyXG4gICAgfVxyXG5cclxuICAgIG92ZXJyaWRlIGh0dHBHZXQ8VD4oXHJcbiAgICAgICAgdXJsOiBzdHJpbmcsXHJcbiAgICAgICAgcGFyYW1zOiBhbnkgPSB7fSxcclxuICAgICAgICB0ZXh0RXJyb3IgPSAnJyxcclxuICAgICAgICBzZXR0aW5nczogaUh0dHBQYXJhbVNldHRpbmdzID0gdGhpcy5kZWZTZXR0aW5nc1xyXG4gICAgKTogT2JzZXJ2YWJsZTxUIHwgdW5kZWZpbmVkPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2Vzc2lvbi5nZXRBdXRoUGFyYW1zKCkucGlwZShcclxuICAgICAgICAgICAgbWVyZ2VNYXAoYXV0aCA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoYXV0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChwYXJhbXMgPT09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zID0ge31cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcGFyYW1zQ2xvbmUgPSBjbG9uZShwYXJhbXMpXHJcbiAgICAgICAgICAgICAgICAgICAgcGFyYW1zQ2xvbmVbdGhpcy5zZXNzaW9uLmdldEtleUF1dGgoKV0gPSBhdXRoXHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IG9wdGlvbnMgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtczogdGhpcy5nZXRIdHRwUGFyYW1zR2V0KHBhcmFtc0Nsb25lKVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2Vzc2lvbi5nZXRCYXNlVXJsKCkucGlwZShcclxuICAgICAgICAgICAgICAgICAgICAgICAgbWVyZ2VNYXAodiA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFQ+KHRoaXMucHJlcGFyZUJhc2VBZGRyZXNzKHYpICsgdXJsLCBvcHRpb25zKS5waXBlKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWtlKDEpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXRjaEVycm9yKGVyciA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRleHRFcnJvci5sZW5ndGggJiYgZXJyLmVycm9yLmVycm9yX2Rlc2NyaXB0aW9uKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dEVycm9yID0gZXJyLmVycm9yLmVycm9yX2Rlc2NyaXB0aW9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zbmFja0Jhci5lcnJvcign0J7RiNC40LHQutCwOiAnICsgdGV4dEVycm9yKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gZXJyKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+ICdnZXQgYmFzZSB1cmwgZXJyb3InKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zbmFja0Jhci5lcnJvcignRXJyb3I6IEF1dGggbm90IGdldCcpXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gJ2F1dGggbm90IGdldCcpXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgKVxyXG4gICAgfVxyXG5cclxuICAgIGdldE5hbWVNZXRob2QoYXJyOiBzdHJpbmdbXSkge1xyXG4gICAgICAgIHJldHVybiBhcnIuam9pbignLicpXHJcbiAgICB9XHJcblxyXG59XHJcbiJdfQ==
|