@veloceapps/api 1.0.0
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/README.md +7 -0
- package/bundles/veloce-api.umd.js +2117 -0
- package/bundles/veloce-api.umd.js.map +1 -0
- package/esm2015/index.js +14 -0
- package/esm2015/lib/api.module.js +59 -0
- package/esm2015/lib/services/configuration-api.service.js +90 -0
- package/esm2015/lib/services/configuration-settings-api.service.js +69 -0
- package/esm2015/lib/services/context-api.service.js +26 -0
- package/esm2015/lib/services/document-attachment-api.service.js +65 -0
- package/esm2015/lib/services/document-templates-api.service.js +278 -0
- package/esm2015/lib/services/price-api.service.js +86 -0
- package/esm2015/lib/services/product-model-api.service.js +232 -0
- package/esm2015/lib/services/quote-api.service.js +36 -0
- package/esm2015/lib/services/ramp-api.service.js +42 -0
- package/esm2015/lib/services/salesforce-api.service.js +51 -0
- package/esm2015/lib/services/scripts-api.service.js +75 -0
- package/esm2015/lib/services/ui-templates-api.service.js +262 -0
- package/esm2015/lib/types/attribute-dto.types.js +21 -0
- package/esm2015/lib/types/charge-group-item-dto.types.js +45 -0
- package/esm2015/lib/types/charge-item-dto.types.js +74 -0
- package/esm2015/lib/types/clone-request.types.js +2 -0
- package/esm2015/lib/types/configuration-settings-dto.types.js +22 -0
- package/esm2015/lib/types/domain-type-dto.types.js +27 -0
- package/esm2015/lib/types/line-item-dto.types.js +93 -0
- package/esm2015/lib/types/port-domain-dto.types.js +22 -0
- package/esm2015/lib/types/price-adjustment-dto.types.js +15 -0
- package/esm2015/lib/types/price-dto.types.js +25 -0
- package/esm2015/lib/types/recommended-price-dto.types.js +23 -0
- package/esm2015/lib/types/ui-template-dto.types.js +2 -0
- package/esm2015/lib/utils/ui-template.utils.js +17 -0
- package/esm2015/veloce-api.js +5 -0
- package/fesm2015/veloce-api.js +1686 -0
- package/fesm2015/veloce-api.js.map +1 -0
- package/index.d.ts +14 -0
- package/lib/api.module.d.ts +7 -0
- package/lib/services/configuration-api.service.d.ts +18 -0
- package/lib/services/configuration-settings-api.service.d.ts +17 -0
- package/lib/services/context-api.service.d.ts +11 -0
- package/lib/services/document-attachment-api.service.d.ts +15 -0
- package/lib/services/document-templates-api.service.d.ts +39 -0
- package/lib/services/price-api.service.d.ts +16 -0
- package/lib/services/product-model-api.service.d.ts +30 -0
- package/lib/services/quote-api.service.d.ts +14 -0
- package/lib/services/ramp-api.service.d.ts +12 -0
- package/lib/services/salesforce-api.service.d.ts +17 -0
- package/lib/services/scripts-api.service.d.ts +21 -0
- package/lib/services/ui-templates-api.service.d.ts +47 -0
- package/lib/types/attribute-dto.types.d.ts +11 -0
- package/lib/types/charge-group-item-dto.types.d.ts +24 -0
- package/lib/types/charge-item-dto.types.d.ts +39 -0
- package/lib/types/clone-request.types.d.ts +6 -0
- package/lib/types/configuration-settings-dto.types.d.ts +9 -0
- package/lib/types/domain-type-dto.types.d.ts +15 -0
- package/lib/types/line-item-dto.types.d.ts +50 -0
- package/lib/types/port-domain-dto.types.d.ts +13 -0
- package/lib/types/price-adjustment-dto.types.d.ts +8 -0
- package/lib/types/price-dto.types.d.ts +13 -0
- package/lib/types/recommended-price-dto.types.d.ts +12 -0
- package/lib/types/ui-template-dto.types.d.ts +10 -0
- package/lib/utils/ui-template.utils.d.ts +3 -0
- package/package.json +33 -0
- package/veloce-api.d.ts +5 -0
@@ -0,0 +1,232 @@
|
|
1
|
+
import { Injectable } from '@angular/core';
|
2
|
+
import { EntityUtil, ModelTranslatorUtils, ModelUtils, ProductModelsContainer, } from '@veloce/core';
|
3
|
+
import { forkJoin } from 'rxjs';
|
4
|
+
import { catchError, map } from 'rxjs/operators';
|
5
|
+
import * as i0 from "@angular/core";
|
6
|
+
import * as i1 from "@veloce/core";
|
7
|
+
export class ProductModelApiService {
|
8
|
+
constructor(httpService) {
|
9
|
+
this.httpService = httpService;
|
10
|
+
this.SERVICE_URL = '/models';
|
11
|
+
}
|
12
|
+
addModel(model) {
|
13
|
+
return this.httpService
|
14
|
+
.api({
|
15
|
+
method: 'post',
|
16
|
+
url: this.SERVICE_URL,
|
17
|
+
body: model,
|
18
|
+
errorHandler: this.httpService.handleValidationError,
|
19
|
+
})
|
20
|
+
.pipe(map(result => {
|
21
|
+
if (result.successful) {
|
22
|
+
return result;
|
23
|
+
}
|
24
|
+
else {
|
25
|
+
throw new Error(result.message);
|
26
|
+
}
|
27
|
+
}));
|
28
|
+
}
|
29
|
+
releaseModel(model) {
|
30
|
+
return this.httpService
|
31
|
+
.api({
|
32
|
+
method: 'put',
|
33
|
+
url: `${this.SERVICE_URL}/${model.id}/release`,
|
34
|
+
body: model,
|
35
|
+
errorHandler: this.httpService.handleValidationError,
|
36
|
+
})
|
37
|
+
.pipe(map(result => {
|
38
|
+
if (result.successful) {
|
39
|
+
return '';
|
40
|
+
}
|
41
|
+
else {
|
42
|
+
throw new Error(result.message);
|
43
|
+
}
|
44
|
+
}));
|
45
|
+
}
|
46
|
+
removeModel(modelId, successFn, failureFn) {
|
47
|
+
const observable = this.httpService
|
48
|
+
.api({
|
49
|
+
method: 'delete',
|
50
|
+
url: `${this.SERVICE_URL}/${modelId}`,
|
51
|
+
errorHandler: this.httpService.handleValidationError,
|
52
|
+
})
|
53
|
+
.pipe(map(result => {
|
54
|
+
if (result.successful) {
|
55
|
+
return '';
|
56
|
+
}
|
57
|
+
else {
|
58
|
+
throw new Error(result.message);
|
59
|
+
}
|
60
|
+
}));
|
61
|
+
observable.subscribe(() => {
|
62
|
+
successFn && successFn.apply();
|
63
|
+
}, () => {
|
64
|
+
failureFn && failureFn.apply();
|
65
|
+
});
|
66
|
+
}
|
67
|
+
getModelVersions(modelId, count = 100, skip = 0) {
|
68
|
+
return this.httpService.api({
|
69
|
+
method: 'post',
|
70
|
+
url: `${this.SERVICE_URL}/${modelId}/versions`,
|
71
|
+
body: {
|
72
|
+
skipCount: skip,
|
73
|
+
count: count,
|
74
|
+
},
|
75
|
+
});
|
76
|
+
}
|
77
|
+
getModel(id, version) {
|
78
|
+
let url = `${this.SERVICE_URL}/${id}`;
|
79
|
+
if (version) {
|
80
|
+
url += `/versions/${version}`;
|
81
|
+
}
|
82
|
+
return this.httpService.api({ url });
|
83
|
+
}
|
84
|
+
getModels(skipCount, searchText) {
|
85
|
+
return this.httpService.api({
|
86
|
+
method: 'post',
|
87
|
+
url: `${this.SERVICE_URL}/search`,
|
88
|
+
body: {
|
89
|
+
nameRegex: searchText,
|
90
|
+
skipCount: skipCount.toString(),
|
91
|
+
count: ProductModelApiService.MAX_RESULTS,
|
92
|
+
},
|
93
|
+
});
|
94
|
+
}
|
95
|
+
getLinkedModels(id, version) {
|
96
|
+
let url = `${this.SERVICE_URL}/${id}`;
|
97
|
+
if (version) {
|
98
|
+
url += `/versions/${version}`;
|
99
|
+
}
|
100
|
+
url += '/linked';
|
101
|
+
return this.httpService.api({ url }).pipe(map((linkedModels) => {
|
102
|
+
if (linkedModels) {
|
103
|
+
linkedModels.forEach(model => ModelTranslatorUtils.toLocalModel(model));
|
104
|
+
}
|
105
|
+
return linkedModels;
|
106
|
+
}));
|
107
|
+
}
|
108
|
+
load(id, version) {
|
109
|
+
return forkJoin([this.getModel(id, version), this.getLinkedModels(id, version)]).pipe(map(([model, linkedModels]) => {
|
110
|
+
const container = new ProductModelsContainer(model, linkedModels !== null && linkedModels !== void 0 ? linkedModels : []);
|
111
|
+
ModelUtils.override(container.main, container.linked);
|
112
|
+
ModelTranslatorUtils.toLocalModel(container.main, container.linked);
|
113
|
+
return container;
|
114
|
+
}));
|
115
|
+
}
|
116
|
+
getPML(modelId, version) {
|
117
|
+
let url = `${this.SERVICE_URL}/${modelId}/pml/${version}`;
|
118
|
+
if (version) {
|
119
|
+
url += `/versions/${version}`;
|
120
|
+
}
|
121
|
+
return this.httpService.api({
|
122
|
+
url,
|
123
|
+
responseType: 'text',
|
124
|
+
});
|
125
|
+
}
|
126
|
+
savePML(modelId, pml, comment) {
|
127
|
+
return this.httpService
|
128
|
+
.api({
|
129
|
+
method: 'put',
|
130
|
+
url: `${this.SERVICE_URL}/${modelId}/pml`,
|
131
|
+
body: {
|
132
|
+
id: modelId,
|
133
|
+
pml: pml,
|
134
|
+
comment: comment,
|
135
|
+
},
|
136
|
+
})
|
137
|
+
.pipe(map(result => {
|
138
|
+
if (result.successful) {
|
139
|
+
return '';
|
140
|
+
}
|
141
|
+
else {
|
142
|
+
throw new Error(result.message);
|
143
|
+
}
|
144
|
+
}), catchError(this.httpService.handleValidationError));
|
145
|
+
}
|
146
|
+
generateProducts(modelId) {
|
147
|
+
return this.httpService.api({
|
148
|
+
url: `${this.SERVICE_URL}/${modelId}/generate-products`,
|
149
|
+
});
|
150
|
+
}
|
151
|
+
saveModel(productModel, comment) {
|
152
|
+
const model = EntityUtil.clone(productModel);
|
153
|
+
model.comment = comment;
|
154
|
+
ModelTranslatorUtils.toServerModel(model);
|
155
|
+
return this.httpService
|
156
|
+
.api({
|
157
|
+
method: 'put',
|
158
|
+
url: `${this.SERVICE_URL}/${model.id}`,
|
159
|
+
body: model,
|
160
|
+
})
|
161
|
+
.pipe(map(result => {
|
162
|
+
if (result.successful) {
|
163
|
+
return '';
|
164
|
+
}
|
165
|
+
else {
|
166
|
+
throw new Error(result.message);
|
167
|
+
}
|
168
|
+
}), catchError(this.httpService.handleValidationError));
|
169
|
+
}
|
170
|
+
validateModel(productModel) {
|
171
|
+
return this.httpService
|
172
|
+
.api({
|
173
|
+
method: 'post',
|
174
|
+
url: `${this.SERVICE_URL}/validate`,
|
175
|
+
body: productModel,
|
176
|
+
errorHandler: this.httpService.handleValidationError,
|
177
|
+
})
|
178
|
+
.pipe(map(result => {
|
179
|
+
if (result.successful) {
|
180
|
+
return '';
|
181
|
+
}
|
182
|
+
else {
|
183
|
+
throw new Error(result.message);
|
184
|
+
}
|
185
|
+
}));
|
186
|
+
}
|
187
|
+
renameModel(productModel, name) {
|
188
|
+
const model = EntityUtil.clone(productModel);
|
189
|
+
model.name = name;
|
190
|
+
ModelTranslatorUtils.toServerModel(model);
|
191
|
+
return this.httpService
|
192
|
+
.api({
|
193
|
+
method: 'patch',
|
194
|
+
url: `${this.SERVICE_URL}/${model.id}`,
|
195
|
+
body: model,
|
196
|
+
})
|
197
|
+
.pipe(catchError(this.httpService.handleValidationError));
|
198
|
+
}
|
199
|
+
uploadPmlFile(file, modelId) {
|
200
|
+
const formData = new FormData();
|
201
|
+
formData.append('file', file, file.name);
|
202
|
+
return this.httpService.upload({
|
203
|
+
url: `${this.SERVICE_URL}/${modelId}/pml/upload`,
|
204
|
+
body: formData,
|
205
|
+
});
|
206
|
+
}
|
207
|
+
runPml(modelId, pml, rootType, configurationMode) {
|
208
|
+
return this.httpService.api({
|
209
|
+
method: 'post',
|
210
|
+
url: `${this.SERVICE_URL}/${modelId}/pml/run`,
|
211
|
+
body: {
|
212
|
+
pml,
|
213
|
+
rootType,
|
214
|
+
configurationMode,
|
215
|
+
},
|
216
|
+
responseType: 'text',
|
217
|
+
});
|
218
|
+
}
|
219
|
+
evictAllCache() {
|
220
|
+
return this.httpService.api({
|
221
|
+
method: 'get',
|
222
|
+
url: '/cache/evict/environment-variables',
|
223
|
+
});
|
224
|
+
}
|
225
|
+
}
|
226
|
+
ProductModelApiService.MAX_RESULTS = 200;
|
227
|
+
ProductModelApiService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: ProductModelApiService, deps: [{ token: i1.BaseHttpService }], target: i0.ɵɵFactoryTarget.Injectable });
|
228
|
+
ProductModelApiService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: ProductModelApiService });
|
229
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: ProductModelApiService, decorators: [{
|
230
|
+
type: Injectable
|
231
|
+
}], ctorParameters: function () { return [{ type: i1.BaseHttpService }]; } });
|
232
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1tb2RlbC1hcGkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXBpL3NyYy9saWIvc2VydmljZXMvcHJvZHVjdC1tb2RlbC1hcGkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFFTCxVQUFVLEVBRVYsb0JBQW9CLEVBQ3BCLFVBQVUsRUFHVixzQkFBc0IsR0FFdkIsTUFBTSxjQUFjLENBQUM7QUFDdEIsT0FBTyxFQUFFLFFBQVEsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUM1QyxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFHakQsTUFBTSxPQUFPLHNCQUFzQjtJQUtqQyxZQUFvQixXQUE0QjtRQUE1QixnQkFBVyxHQUFYLFdBQVcsQ0FBaUI7UUFGL0IsZ0JBQVcsR0FBRyxTQUFTLENBQUM7SUFFVSxDQUFDO0lBRXBELFFBQVEsQ0FBQyxLQUFtQjtRQUMxQixPQUFPLElBQUksQ0FBQyxXQUFXO2FBQ3BCLEdBQUcsQ0FBQztZQUNILE1BQU0sRUFBRSxNQUFNO1lBQ2QsR0FBRyxFQUFFLElBQUksQ0FBQyxXQUFXO1lBQ3JCLElBQUksRUFBRSxLQUFLO1lBQ1gsWUFBWSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMscUJBQXFCO1NBQ3JELENBQUM7YUFDRCxJQUFJLENBQ0gsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ1gsSUFBSSxNQUFNLENBQUMsVUFBVSxFQUFFO2dCQUNyQixPQUFPLE1BQU0sQ0FBQzthQUNmO2lCQUFNO2dCQUNMLE1BQU0sSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQ2pDO1FBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNOLENBQUM7SUFFRCxZQUFZLENBQUMsS0FBMEI7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QkFDSixHQUFHO2dCQUNILFFBQVE7Z0JBQ1IsaUJBQWlCO2FBQ2xCO1lBQ0QsWUFBWSxFQUFFLE1BQU07U0FDckIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGFBQWE7UUFDWCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDO1lBQzFCLE1BQU0sRUFBRSxLQUFLO1lBQ2IsR0FBRyxFQUFFLG9DQUFvQztTQUMxQyxDQUFDLENBQUM7SUFDTCxDQUFDOztBQXRRYSxrQ0FBVyxHQUFHLEdBQUcsQ0FBQztvSEFEckIsc0JBQXNCO3dIQUF0QixzQkFBc0I7NEZBQXRCLHNCQUFzQjtrQkFEbEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEJhc2VIdHRwU2VydmljZSxcbiAgRW50aXR5VXRpbCxcbiAgTW9kZWxSZWxlYXNlUmVxdWVzdCxcbiAgTW9kZWxUcmFuc2xhdG9yVXRpbHMsXG4gIE1vZGVsVXRpbHMsXG4gIFBtbENvbmZpZ3VyYXRpb25Nb2RlLFxuICBQcm9kdWN0TW9kZWwsXG4gIFByb2R1Y3RNb2RlbHNDb250YWluZXIsXG4gIFByb2R1Y3RNb2RlbFZlcnNpb24sXG59IGZyb20gJ0B2ZWxvY2UvY29yZSc7XG5pbXBvcnQgeyBmb3JrSm9pbiwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUHJvZHVjdE1vZGVsQXBpU2VydmljZSB7XG4gIHB1YmxpYyBzdGF0aWMgTUFYX1JFU1VMVFMgPSAyMDA7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBTRVJWSUNFX1VSTCA9ICcvbW9kZWxzJztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHBTZXJ2aWNlOiBCYXNlSHR0cFNlcnZpY2UpIHt9XG5cbiAgYWRkTW9kZWwobW9kZWw6IFByb2R1Y3RNb2RlbCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2VcbiAgICAgIC5hcGkoe1xuICAgICAgICBtZXRob2Q6ICdwb3N0JyxcbiAgICAgICAgdXJsOiB0aGlzLlNFUlZJQ0VfVVJMLFxuICAgICAgICBib2R5OiBtb2RlbCxcbiAgICAgICAgZXJyb3JIYW5kbGVyOiB0aGlzLmh0dHBTZXJ2aWNlLmhhbmRsZVZhbGlkYXRpb25FcnJvcixcbiAgICAgIH0pXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKHJlc3VsdCA9PiB7XG4gICAgICAgICAgaWYgKHJlc3VsdC5zdWNjZXNzZnVsKSB7XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IocmVzdWx0Lm1lc3NhZ2UpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSksXG4gICAgICApO1xuICB9XG5cbiAgcmVsZWFzZU1vZGVsKG1vZGVsOiBNb2RlbFJlbGVhc2VSZXF1ZXN0KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZVxuICAgICAgLmFwaSh7XG4gICAgICAgIG1ldGhvZDogJ3B1dCcsXG4gICAgICAgIHVybDogYCR7dGhpcy5TRVJWSUNFX1VSTH0vJHttb2RlbC5pZH0vcmVsZWFzZWAsXG4gICAgICAgIGJvZHk6IG1vZGVsLFxuICAgICAgICBlcnJvckhhbmRsZXI6IHRoaXMuaHR0cFNlcnZpY2UuaGFuZGxlVmFsaWRhdGlvbkVycm9yLFxuICAgICAgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAocmVzdWx0ID0+IHtcbiAgICAgICAgICBpZiAocmVzdWx0LnN1Y2Nlc3NmdWwpIHtcbiAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKHJlc3VsdC5tZXNzYWdlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgfVxuXG4gIHJlbW92ZU1vZGVsKG1vZGVsSWQ6IHN0cmluZywgc3VjY2Vzc0ZuPzogYW55LCBmYWlsdXJlRm4/OiBhbnkpOiB2b2lkIHtcbiAgICBjb25zdCBvYnNlcnZhYmxlID0gdGhpcy5odHRwU2VydmljZVxuICAgICAgLmFwaSh7XG4gICAgICAgIG1ldGhvZDogJ2RlbGV0ZScsXG4gICAgICAgIHVybDogYCR7dGhpcy5TRVJWSUNFX1VSTH0vJHttb2RlbElkfWAsXG4gICAgICAgIGVycm9ySGFuZGxlcjogdGhpcy5odHRwU2VydmljZS5oYW5kbGVWYWxpZGF0aW9uRXJyb3IsXG4gICAgICB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcChyZXN1bHQgPT4ge1xuICAgICAgICAgIGlmIChyZXN1bHQuc3VjY2Vzc2Z1bCkge1xuICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IocmVzdWx0Lm1lc3NhZ2UpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSksXG4gICAgICApO1xuXG4gICAgb2JzZXJ2YWJsZS5zdWJzY3JpYmUoXG4gICAgICAoKSA9PiB7XG4gICAgICAgIHN1Y2Nlc3NGbiAmJiBzdWNjZXNzRm4uYXBwbHkoKTtcbiAgICAgIH0sXG4gICAgICAoKSA9PiB7XG4gICAgICAgIGZhaWx1cmVGbiAmJiBmYWlsdXJlRm4uYXBwbHkoKTtcbiAgICAgIH0sXG4gICAgKTtcbiAgfVxuXG4gIGdldE1vZGVsVmVyc2lvbnMobW9kZWxJZDogc3RyaW5nLCBjb3VudDogbnVtYmVyID0gMTAwLCBza2lwOiBudW1iZXIgPSAwKTogT2JzZXJ2YWJsZTxQcm9kdWN0TW9kZWxWZXJzaW9uW10+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5hcGkoe1xuICAgICAgbWV0aG9kOiAncG9zdCcsXG4gICAgICB1cmw6IGAke3RoaXMuU0VSVklDRV9VUkx9LyR7bW9kZWxJZH0vdmVyc2lvbnNgLFxuICAgICAgYm9keToge1xuICAgICAgICBza2lwQ291bnQ6IHNraXAsXG4gICAgICAgIGNvdW50OiBjb3VudCxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBnZXRNb2RlbChpZDogc3RyaW5nLCB2ZXJzaW9uPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxQcm9kdWN0TW9kZWw+IHtcbiAgICBsZXQgdXJsID0gYCR7dGhpcy5TRVJWSUNFX1VSTH0vJHtpZH1gO1xuXG4gICAgaWYgKHZlcnNpb24pIHtcbiAgICAgIHVybCArPSBgL3ZlcnNpb25zLyR7dmVyc2lvbn1gO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLmFwaSh7IHVybCB9KTtcbiAgfVxuXG4gIGdldE1vZGVscyhza2lwQ291bnQ6IG51bWJlciwgc2VhcmNoVGV4dDogc3RyaW5nKTogT2JzZXJ2YWJsZTxQcm9kdWN0TW9kZWxbXT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLmFwaSh7XG4gICAgICBtZXRob2Q6ICdwb3N0JyxcbiAgICAgIHVybDogYCR7dGhpcy5TRVJWSUNFX1VSTH0vc2VhcmNoYCxcbiAgICAgIGJvZHk6IHtcbiAgICAgICAgbmFtZVJlZ2V4OiBzZWFyY2hUZXh0LFxuICAgICAgICBza2lwQ291bnQ6IHNraXBDb3VudC50b1N0cmluZygpLFxuICAgICAgICBjb3VudDogUHJvZHVjdE1vZGVsQXBpU2VydmljZS5NQVhfUkVTVUxUUyxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBnZXRMaW5rZWRNb2RlbHMoaWQ6IHN0cmluZywgdmVyc2lvbj86IHN0cmluZyk6IE9ic2VydmFibGU8UHJvZHVjdE1vZGVsW10+IHtcbiAgICBsZXQgdXJsID0gYCR7dGhpcy5TRVJWSUNFX1VSTH0vJHtpZH1gO1xuXG4gICAgaWYgKHZlcnNpb24pIHtcbiAgICAgIHVybCArPSBgL3ZlcnNpb25zLyR7dmVyc2lvbn1gO1xuICAgIH1cblxuICAgIHVybCArPSAnL2xpbmtlZCc7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5hcGkoeyB1cmwgfSkucGlwZShcbiAgICAgIG1hcCgobGlua2VkTW9kZWxzOiBQcm9kdWN0TW9kZWxbXSkgPT4ge1xuICAgICAgICBpZiAobGlua2VkTW9kZWxzKSB7XG4gICAgICAgICAgbGlua2VkTW9kZWxzLmZvckVhY2gobW9kZWwgPT4gTW9kZWxUcmFuc2xhdG9yVXRpbHMudG9Mb2NhbE1vZGVsKG1vZGVsKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGxpbmtlZE1vZGVscztcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBsb2FkKGlkOiBzdHJpbmcsIHZlcnNpb24/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPFByb2R1Y3RNb2RlbHNDb250YWluZXI+IHtcbiAgICByZXR1cm4gZm9ya0pvaW4oW3RoaXMuZ2V0TW9kZWwoaWQsIHZlcnNpb24pLCB0aGlzLmdldExpbmtlZE1vZGVscyhpZCwgdmVyc2lvbildKS5waXBlKFxuICAgICAgbWFwKChbbW9kZWwsIGxpbmtlZE1vZGVsc10pID0+IHtcbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gbmV3IFByb2R1Y3RNb2RlbHNDb250YWluZXIobW9kZWwsIGxpbmtlZE1vZGVscyA/PyBbXSk7XG5cbiAgICAgICAgTW9kZWxVdGlscy5vdmVycmlkZShjb250YWluZXIubWFpbiwgY29udGFpbmVyLmxpbmtlZCk7XG4gICAgICAgIE1vZGVsVHJhbnNsYXRvclV0aWxzLnRvTG9jYWxNb2RlbChjb250YWluZXIubWFpbiwgY29udGFpbmVyLmxpbmtlZCk7XG5cbiAgICAgICAgcmV0dXJuIGNvbnRhaW5lcjtcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBnZXRQTUwobW9kZWxJZDogc3RyaW5nLCB2ZXJzaW9uPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgdXJsID0gYCR7dGhpcy5TRVJWSUNFX1VSTH0vJHttb2RlbElkfS9wbWwvJHt2ZXJzaW9ufWA7XG5cbiAgICBpZiAodmVyc2lvbikge1xuICAgICAgdXJsICs9IGAvdmVyc2lvbnMvJHt2ZXJzaW9ufWA7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UuYXBpKHtcbiAgICAgIHVybCxcbiAgICAgIHJlc3BvbnNlVHlwZTogJ3RleHQnLFxuICAgIH0pO1xuICB9XG5cbiAgc2F2ZVBNTChtb2RlbElkOiBzdHJpbmcsIHBtbDogc3RyaW5nLCBjb21tZW50OiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlXG4gICAgICAuYXBpKHtcbiAgICAgICAgbWV0aG9kOiAncHV0JyxcbiAgICAgICAgdXJsOiBgJHt0aGlzLlNFUlZJQ0VfVVJMfS8ke21vZGVsSWR9L3BtbGAsXG4gICAgICAgIGJvZHk6IHtcbiAgICAgICAgICBpZDogbW9kZWxJZCxcbiAgICAgICAgICBwbWw6IHBtbCxcbiAgICAgICAgICBjb21tZW50OiBjb21tZW50LFxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAocmVzdWx0ID0+IHtcbiAgICAgICAgICBpZiAocmVzdWx0LnN1Y2Nlc3NmdWwpIHtcbiAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKHJlc3VsdC5tZXNzYWdlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgICBjYXRjaEVycm9yKHRoaXMuaHR0cFNlcnZpY2UuaGFuZGxlVmFsaWRhdGlvbkVycm9yKSxcbiAgICAgICk7XG4gIH1cblxuICBnZW5lcmF0ZVByb2R1Y3RzKG1vZGVsSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8UHJvZHVjdE1vZGVsPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UuYXBpKHtcbiAgICAgIHVybDogYCR7dGhpcy5TRVJWSUNFX1VSTH0vJHttb2RlbElkfS9nZW5lcmF0ZS1wcm9kdWN0c2AsXG4gICAgfSk7XG4gIH1cblxuICBzYXZlTW9kZWwocHJvZHVjdE1vZGVsOiBQcm9kdWN0TW9kZWwsIGNvbW1lbnQ6IHN0cmluZyk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgY29uc3QgbW9kZWwgPSBFbnRpdHlVdGlsLmNsb25lKHByb2R1Y3RNb2RlbCk7XG4gICAgbW9kZWwuY29tbWVudCA9IGNvbW1lbnQ7XG4gICAgTW9kZWxUcmFuc2xhdG9yVXRpbHMudG9TZXJ2ZXJNb2RlbChtb2RlbCk7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZVxuICAgICAgLmFwaSh7XG4gICAgICAgIG1ldGhvZDogJ3B1dCcsXG4gICAgICAgIHVybDogYCR7dGhpcy5TRVJWSUNFX1VSTH0vJHttb2RlbC5pZH1gLFxuICAgICAgICBib2R5OiBtb2RlbCxcbiAgICAgIH0pXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKHJlc3VsdCA9PiB7XG4gICAgICAgICAgaWYgKHJlc3VsdC5zdWNjZXNzZnVsKSB7XG4gICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihyZXN1bHQubWVzc2FnZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KSxcbiAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmh0dHBTZXJ2aWNlLmhhbmRsZVZhbGlkYXRpb25FcnJvciksXG4gICAgICApO1xuICB9XG5cbiAgdmFsaWRhdGVNb2RlbChwcm9kdWN0TW9kZWw6IFByb2R1Y3RNb2RlbCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2VcbiAgICAgIC5hcGkoe1xuICAgICAgICBtZXRob2Q6ICdwb3N0JyxcbiAgICAgICAgdXJsOiBgJHt0aGlzLlNFUlZJQ0VfVVJMfS92YWxpZGF0ZWAsXG4gICAgICAgIGJvZHk6IHByb2R1Y3RNb2RlbCxcbiAgICAgICAgZXJyb3JIYW5kbGVyOiB0aGlzLmh0dHBTZXJ2aWNlLmhhbmRsZVZhbGlkYXRpb25FcnJvcixcbiAgICAgIH0pXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKHJlc3VsdCA9PiB7XG4gICAgICAgICAgaWYgKHJlc3VsdC5zdWNjZXNzZnVsKSB7XG4gICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihyZXN1bHQubWVzc2FnZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KSxcbiAgICAgICk7XG4gIH1cblxuICByZW5hbWVNb2RlbChwcm9kdWN0TW9kZWw6IFByb2R1Y3RNb2RlbCwgbmFtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCBtb2RlbCA9IEVudGl0eVV0aWwuY2xvbmUocHJvZHVjdE1vZGVsKTtcbiAgICBtb2RlbC5uYW1lID0gbmFtZTtcbiAgICBNb2RlbFRyYW5zbGF0b3JVdGlscy50b1NlcnZlck1vZGVsKG1vZGVsKTtcblxuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlXG4gICAgICAuYXBpKHtcbiAgICAgICAgbWV0aG9kOiAncGF0Y2gnLFxuICAgICAgICB1cmw6IGAke3RoaXMuU0VSVklDRV9VUkx9LyR7bW9kZWwuaWR9YCxcbiAgICAgICAgYm9keTogbW9kZWwsXG4gICAgICB9KVxuICAgICAgLnBpcGUoY2F0Y2hFcnJvcih0aGlzLmh0dHBTZXJ2aWNlLmhhbmRsZVZhbGlkYXRpb25FcnJvcikpO1xuICB9XG5cbiAgdXBsb2FkUG1sRmlsZShmaWxlOiBGaWxlLCBtb2RlbElkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IGZvcm1EYXRhOiBGb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgIGZvcm1EYXRhLmFwcGVuZCgnZmlsZScsIGZpbGUsIGZpbGUubmFtZSk7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS51cGxvYWQoe1xuICAgICAgdXJsOiBgJHt0aGlzLlNFUlZJQ0VfVVJMfS8ke21vZGVsSWR9L3BtbC91cGxvYWRgLFxuICAgICAgYm9keTogZm9ybURhdGEsXG4gICAgfSk7XG4gIH1cblxuICBydW5QbWwobW9kZWxJZDogc3RyaW5nLCBwbWw6IHN0cmluZywgcm9vdFR5cGU6IHN0cmluZywgY29uZmlndXJhdGlvbk1vZGU6IFBtbENvbmZpZ3VyYXRpb25Nb2RlKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5hcGkoe1xuICAgICAgbWV0aG9kOiAncG9zdCcsXG4gICAgICB1cmw6IGAke3RoaXMuU0VSVklDRV9VUkx9LyR7bW9kZWxJZH0vcG1sL3J1bmAsXG4gICAgICBib2R5OiB7XG4gICAgICAgIHBtbCxcbiAgICAgICAgcm9vdFR5cGUsXG4gICAgICAgIGNvbmZpZ3VyYXRpb25Nb2RlLFxuICAgICAgfSxcbiAgICAgIHJlc3BvbnNlVHlwZTogJ3RleHQnLFxuICAgIH0pO1xuICB9XG5cbiAgZXZpY3RBbGxDYWNoZSgpOiBPYnNlcnZhYmxlPHsgcmVzdWx0OiBzdHJpbmcgfT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLmFwaSh7XG4gICAgICBtZXRob2Q6ICdnZXQnLFxuICAgICAgdXJsOiAnL2NhY2hlL2V2aWN0L2Vudmlyb25tZW50LXZhcmlhYmxlcycsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
@@ -0,0 +1,36 @@
|
|
1
|
+
import { Injectable } from '@angular/core';
|
2
|
+
import * as i0 from "@angular/core";
|
3
|
+
import * as i1 from "@veloce/core";
|
4
|
+
export class QuoteApiService {
|
5
|
+
constructor(httpService) {
|
6
|
+
this.httpService = httpService;
|
7
|
+
this.SERVICE_URL = '/quotes';
|
8
|
+
}
|
9
|
+
getQuote(quoteId, params) {
|
10
|
+
return this.httpService.api({
|
11
|
+
method: 'get',
|
12
|
+
url: `${this.SERVICE_URL}/${quoteId}`,
|
13
|
+
params,
|
14
|
+
});
|
15
|
+
}
|
16
|
+
upsertQuote(request) {
|
17
|
+
return this.httpService.api({
|
18
|
+
method: 'post',
|
19
|
+
url: `${this.SERVICE_URL}`,
|
20
|
+
body: request,
|
21
|
+
});
|
22
|
+
}
|
23
|
+
submitQuote(request) {
|
24
|
+
return this.httpService.api({
|
25
|
+
method: 'post',
|
26
|
+
url: `${this.SERVICE_URL}/submit`,
|
27
|
+
body: request,
|
28
|
+
});
|
29
|
+
}
|
30
|
+
}
|
31
|
+
QuoteApiService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: QuoteApiService, deps: [{ token: i1.BaseHttpService }], target: i0.ɵɵFactoryTarget.Injectable });
|
32
|
+
QuoteApiService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: QuoteApiService });
|
33
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: QuoteApiService, decorators: [{
|
34
|
+
type: Injectable
|
35
|
+
}], ctorParameters: function () { return [{ type: i1.BaseHttpService }]; } });
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVvdGUtYXBpLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwaS9zcmMvbGliL3NlcnZpY2VzL3F1b3RlLWFwaS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQU0zQyxNQUFNLE9BQU8sZUFBZTtJQUcxQixZQUFvQixXQUE0QjtRQUE1QixnQkFBVyxHQUFYLFdBQVcsQ0FBaUI7UUFGL0IsZ0JBQVcsR0FBRyxTQUFTLENBQUM7SUFFVSxDQUFDO0lBRXBELFFBQVEsQ0FBQyxPQUFlLEVBQUUsTUFBMkI7UUFDbkQsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQztZQUMxQixNQUFNLEVBQUUsS0FBSztZQUNiLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxXQUFXLElBQUksT0FBTyxFQUFFO1lBQ3JDLE1BQU07U0FDUCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQW1CO1FBQzdCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUM7WUFDMUIsTUFBTSxFQUFFLE1BQU07WUFDZCxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQzFCLElBQUksRUFBRSxPQUFPO1NBQ2QsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFtQjtRQUM3QixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDO1lBQzFCLE1BQU0sRUFBRSxNQUFNO1lBQ2QsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLFdBQVcsU0FBUztZQUNqQyxJQUFJLEVBQUUsT0FBTztTQUNkLENBQUMsQ0FBQztJQUNMLENBQUM7OzZHQTNCVSxlQUFlO2lIQUFmLGVBQWU7NEZBQWYsZUFBZTtrQkFEM0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJhc2VIdHRwU2VydmljZSwgUXVvdGVEcmFmdCB9IGZyb20gJ0B2ZWxvY2UvY29yZSc7XG5pbXBvcnQgeyBEaWN0aW9uYXJ5IH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFF1b3RlQXBpU2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgU0VSVklDRV9VUkwgPSAnL3F1b3Rlcyc7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwU2VydmljZTogQmFzZUh0dHBTZXJ2aWNlKSB7fVxuXG4gIGdldFF1b3RlKHF1b3RlSWQ6IHN0cmluZywgcGFyYW1zPzogRGljdGlvbmFyeTxzdHJpbmc+KTogT2JzZXJ2YWJsZTxRdW90ZURyYWZ0PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UuYXBpKHtcbiAgICAgIG1ldGhvZDogJ2dldCcsXG4gICAgICB1cmw6IGAke3RoaXMuU0VSVklDRV9VUkx9LyR7cXVvdGVJZH1gLFxuICAgICAgcGFyYW1zLFxuICAgIH0pO1xuICB9XG5cbiAgdXBzZXJ0UXVvdGUocmVxdWVzdDogUXVvdGVEcmFmdCk6IE9ic2VydmFibGU8UXVvdGVEcmFmdD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLmFwaSh7XG4gICAgICBtZXRob2Q6ICdwb3N0JyxcbiAgICAgIHVybDogYCR7dGhpcy5TRVJWSUNFX1VSTH1gLFxuICAgICAgYm9keTogcmVxdWVzdCxcbiAgICB9KTtcbiAgfVxuXG4gIHN1Ym1pdFF1b3RlKHJlcXVlc3Q6IFF1b3RlRHJhZnQpOiBPYnNlcnZhYmxlPFF1b3RlRHJhZnQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5hcGkoe1xuICAgICAgbWV0aG9kOiAncG9zdCcsXG4gICAgICB1cmw6IGAke3RoaXMuU0VSVklDRV9VUkx9L3N1Ym1pdGAsXG4gICAgICBib2R5OiByZXF1ZXN0LFxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
@@ -0,0 +1,42 @@
|
|
1
|
+
import { Injectable } from '@angular/core';
|
2
|
+
import * as i0 from "@angular/core";
|
3
|
+
import * as i1 from "@veloce/core";
|
4
|
+
export class RampApiService {
|
5
|
+
constructor(httpService) {
|
6
|
+
this.httpService = httpService;
|
7
|
+
this.SERVICE_URL = '/ramp';
|
8
|
+
}
|
9
|
+
next(request) {
|
10
|
+
return this.httpService.api({
|
11
|
+
method: 'post',
|
12
|
+
url: `${this.SERVICE_URL}/next`,
|
13
|
+
body: request,
|
14
|
+
});
|
15
|
+
}
|
16
|
+
renew(request) {
|
17
|
+
return this.httpService.api({
|
18
|
+
method: 'post',
|
19
|
+
url: `${this.SERVICE_URL}/renew`,
|
20
|
+
body: request,
|
21
|
+
});
|
22
|
+
// TODO: move out of API service
|
23
|
+
// .pipe(
|
24
|
+
// map(data => {
|
25
|
+
// if (data.context) {
|
26
|
+
// const context = this.contextService.resolveOrCreate();
|
27
|
+
// Object.keys(data.context.properties).forEach(function (key) {
|
28
|
+
// context.properties[key] = data.context.properties[key];
|
29
|
+
// });
|
30
|
+
// this.contextService.update(context);
|
31
|
+
// }
|
32
|
+
// return data;
|
33
|
+
// }),
|
34
|
+
// );
|
35
|
+
}
|
36
|
+
}
|
37
|
+
RampApiService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: RampApiService, deps: [{ token: i1.BaseHttpService }], target: i0.ɵɵFactoryTarget.Injectable });
|
38
|
+
RampApiService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: RampApiService });
|
39
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: RampApiService, decorators: [{
|
40
|
+
type: Injectable
|
41
|
+
}], ctorParameters: function () { return [{ type: i1.BaseHttpService }]; } });
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFtcC1hcGkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXBpL3NyYy9saWIvc2VydmljZXMvcmFtcC1hcGkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFLM0MsTUFBTSxPQUFPLGNBQWM7SUFHekIsWUFBb0IsV0FBNEI7UUFBNUIsZ0JBQVcsR0FBWCxXQUFXLENBQWlCO1FBRi9CLGdCQUFXLEdBQUcsT0FBTyxDQUFDO0lBRVksQ0FBQztJQUVwRCxJQUFJLENBQUMsT0FBWTtRQUNmLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUM7WUFDMUIsTUFBTSxFQUFFLE1BQU07WUFDZCxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsV0FBVyxPQUFPO1lBQy9CLElBQUksRUFBRSxPQUFPO1NBQ2QsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELEtBQUssQ0FBQyxPQUFZO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUM7WUFDMUIsTUFBTSxFQUFFLE1BQU07WUFDZCxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsV0FBVyxRQUFRO1lBQ2hDLElBQUksRUFBRSxPQUFPO1NBQ2QsQ0FBQyxDQUFDO1FBQ0gsZ0NBQWdDO1FBQ2hDLFNBQVM7UUFDVCxrQkFBa0I7UUFDbEIsMEJBQTBCO1FBQzFCLCtEQUErRDtRQUUvRCxzRUFBc0U7UUFDdEUsa0VBQWtFO1FBQ2xFLFlBQVk7UUFFWiw2Q0FBNkM7UUFDN0MsUUFBUTtRQUVSLG1CQUFtQjtRQUNuQixRQUFRO1FBQ1IsS0FBSztJQUNQLENBQUM7OzRHQW5DVSxjQUFjO2dIQUFkLGNBQWM7NEZBQWQsY0FBYztrQkFEMUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJhc2VIdHRwU2VydmljZSwgUHJpY2VTdW1tYXJ5IH0gZnJvbSAnQHZlbG9jZS9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFJhbXBBcGlTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBTRVJWSUNFX1VSTCA9ICcvcmFtcCc7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwU2VydmljZTogQmFzZUh0dHBTZXJ2aWNlKSB7fVxuXG4gIG5leHQocmVxdWVzdDogYW55KTogT2JzZXJ2YWJsZTxQcmljZVN1bW1hcnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5hcGkoe1xuICAgICAgbWV0aG9kOiAncG9zdCcsXG4gICAgICB1cmw6IGAke3RoaXMuU0VSVklDRV9VUkx9L25leHRgLFxuICAgICAgYm9keTogcmVxdWVzdCxcbiAgICB9KTtcbiAgfVxuXG4gIHJlbmV3KHJlcXVlc3Q6IGFueSk6IE9ic2VydmFibGU8UHJpY2VTdW1tYXJ5PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UuYXBpKHtcbiAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgdXJsOiBgJHt0aGlzLlNFUlZJQ0VfVVJMfS9yZW5ld2AsXG4gICAgICBib2R5OiByZXF1ZXN0LFxuICAgIH0pO1xuICAgIC8vIFRPRE86IG1vdmUgb3V0IG9mIEFQSSBzZXJ2aWNlXG4gICAgLy8gLnBpcGUoXG4gICAgLy8gICBtYXAoZGF0YSA9PiB7XG4gICAgLy8gICAgIGlmIChkYXRhLmNvbnRleHQpIHtcbiAgICAvLyAgICAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5jb250ZXh0U2VydmljZS5yZXNvbHZlT3JDcmVhdGUoKTtcblxuICAgIC8vICAgICAgIE9iamVjdC5rZXlzKGRhdGEuY29udGV4dC5wcm9wZXJ0aWVzKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICAvLyAgICAgICAgIGNvbnRleHQucHJvcGVydGllc1trZXldID0gZGF0YS5jb250ZXh0LnByb3BlcnRpZXNba2V5XTtcbiAgICAvLyAgICAgICB9KTtcblxuICAgIC8vICAgICAgIHRoaXMuY29udGV4dFNlcnZpY2UudXBkYXRlKGNvbnRleHQpO1xuICAgIC8vICAgICB9XG5cbiAgICAvLyAgICAgcmV0dXJuIGRhdGE7XG4gICAgLy8gICB9KSxcbiAgICAvLyApO1xuICB9XG59XG4iXX0=
|
@@ -0,0 +1,51 @@
|
|
1
|
+
import { HttpParams } from '@angular/common/http';
|
2
|
+
import { Injectable } from '@angular/core';
|
3
|
+
import * as i0 from "@angular/core";
|
4
|
+
import * as i1 from "@veloce/core";
|
5
|
+
export class SalesforceApiService {
|
6
|
+
constructor(httpService) {
|
7
|
+
this.httpService = httpService;
|
8
|
+
this.SERVICE_URL = '/proxy';
|
9
|
+
}
|
10
|
+
query(searchRequest, objectName) {
|
11
|
+
return this.httpService.api({
|
12
|
+
method: 'post',
|
13
|
+
body: Object.assign(Object.assign({}, searchRequest), { count: searchRequest.count || 100 }),
|
14
|
+
url: `${this.SERVICE_URL}/query/${objectName}`,
|
15
|
+
});
|
16
|
+
}
|
17
|
+
queryObjects(search) {
|
18
|
+
const params = new HttpParams();
|
19
|
+
if (search) {
|
20
|
+
params.append('search', search);
|
21
|
+
}
|
22
|
+
return this.httpService.api({
|
23
|
+
url: `${this.SERVICE_URL}/query`,
|
24
|
+
params,
|
25
|
+
});
|
26
|
+
}
|
27
|
+
describe(objectName, fieldName) {
|
28
|
+
const methodUrl = `${this.SERVICE_URL}/describe/${objectName}/fields` + (fieldName ? `/${fieldName}` : '');
|
29
|
+
return this.httpService.api({ url: methodUrl });
|
30
|
+
}
|
31
|
+
describe2(objectName, fields) {
|
32
|
+
const methodUrl = `${this.SERVICE_URL}/describe/${objectName}/fields`;
|
33
|
+
return this.httpService.api({ method: 'post', url: methodUrl, body: fields });
|
34
|
+
}
|
35
|
+
apexGetRequest(path, params) {
|
36
|
+
return this.httpService.api({ url: `${this.SERVICE_URL}/apex${path}`, params });
|
37
|
+
}
|
38
|
+
apexPostRequest(path, body) {
|
39
|
+
return this.httpService.api({
|
40
|
+
method: 'post',
|
41
|
+
body,
|
42
|
+
url: `${this.SERVICE_URL}/apex${path}`,
|
43
|
+
});
|
44
|
+
}
|
45
|
+
}
|
46
|
+
SalesforceApiService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: SalesforceApiService, deps: [{ token: i1.BaseHttpService }], target: i0.ɵɵFactoryTarget.Injectable });
|
47
|
+
SalesforceApiService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: SalesforceApiService });
|
48
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: SalesforceApiService, decorators: [{
|
49
|
+
type: Injectable
|
50
|
+
}], ctorParameters: function () { return [{ type: i1.BaseHttpService }]; } });
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FsZXNmb3JjZS1hcGkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXBpL3NyYy9saWIvc2VydmljZXMvc2FsZXNmb3JjZS1hcGkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBSzNDLE1BQU0sT0FBTyxvQkFBb0I7SUFHL0IsWUFBb0IsV0FBNEI7UUFBNUIsZ0JBQVcsR0FBWCxXQUFXLENBQWlCO1FBRi9CLGdCQUFXLEdBQUcsUUFBUSxDQUFDO0lBRVcsQ0FBQztJQUVwRCxLQUFLLENBQUksYUFBNEIsRUFBRSxVQUFrQjtRQUN2RCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDO1lBQzFCLE1BQU0sRUFBRSxNQUFNO1lBQ2QsSUFBSSxrQ0FBTyxhQUFhLEtBQUUsS0FBSyxFQUFFLGFBQWEsQ0FBQyxLQUFLLElBQUksR0FBRyxHQUFFO1lBQzdELEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxXQUFXLFVBQVUsVUFBVSxFQUFFO1NBQy9DLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxZQUFZLENBQUMsTUFBZTtRQUMxQixNQUFNLE1BQU0sR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ2hDLElBQUksTUFBTSxFQUFFO1lBQ1YsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7U0FDakM7UUFFRCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDO1lBQzFCLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxXQUFXLFFBQVE7WUFDaEMsTUFBTTtTQUNQLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxRQUFRLENBQUMsVUFBa0IsRUFBRSxTQUFrQjtRQUM3QyxNQUFNLFNBQVMsR0FBRyxHQUFHLElBQUksQ0FBQyxXQUFXLGFBQWEsVUFBVSxTQUFTLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRTNHLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsU0FBUyxDQUFJLFVBQWtCLEVBQUUsTUFBZ0I7UUFDL0MsTUFBTSxTQUFTLEdBQUcsR0FBRyxJQUFJLENBQUMsV0FBVyxhQUFhLFVBQVUsU0FBUyxDQUFDO1FBRXRFLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDaEYsQ0FBQztJQUVELGNBQWMsQ0FBSSxJQUFZLEVBQUUsTUFBa0I7UUFDaEQsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxXQUFXLFFBQVEsSUFBSSxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUNsRixDQUFDO0lBRUQsZUFBZSxDQUFPLElBQVksRUFBRSxJQUFPO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUM7WUFDMUIsTUFBTSxFQUFFLE1BQU07WUFDZCxJQUFJO1lBQ0osR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLFdBQVcsUUFBUSxJQUFJLEVBQUU7U0FDdkMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7a0hBL0NVLG9CQUFvQjtzSEFBcEIsb0JBQW9COzRGQUFwQixvQkFBb0I7a0JBRGhDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmFzZUh0dHBTZXJ2aWNlLCBTYWxlc2ZvcmNlRmllbGQsIFNhbGVzZm9yY2VPYmplY3QsIFNlYXJjaFJlcXVlc3QgfSBmcm9tICdAdmVsb2NlL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU2FsZXNmb3JjZUFwaVNlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IFNFUlZJQ0VfVVJMID0gJy9wcm94eSc7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwU2VydmljZTogQmFzZUh0dHBTZXJ2aWNlKSB7fVxuXG4gIHF1ZXJ5PFQ+KHNlYXJjaFJlcXVlc3Q6IFNlYXJjaFJlcXVlc3QsIG9iamVjdE5hbWU6IHN0cmluZyk6IE9ic2VydmFibGU8VFtdPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UuYXBpKHtcbiAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgYm9keTogeyAuLi5zZWFyY2hSZXF1ZXN0LCBjb3VudDogc2VhcmNoUmVxdWVzdC5jb3VudCB8fCAxMDAgfSxcbiAgICAgIHVybDogYCR7dGhpcy5TRVJWSUNFX1VSTH0vcXVlcnkvJHtvYmplY3ROYW1lfWAsXG4gICAgfSk7XG4gIH1cblxuICBxdWVyeU9iamVjdHMoc2VhcmNoPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxTYWxlc2ZvcmNlT2JqZWN0W10+IHtcbiAgICBjb25zdCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpO1xuICAgIGlmIChzZWFyY2gpIHtcbiAgICAgIHBhcmFtcy5hcHBlbmQoJ3NlYXJjaCcsIHNlYXJjaCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UuYXBpKHtcbiAgICAgIHVybDogYCR7dGhpcy5TRVJWSUNFX1VSTH0vcXVlcnlgLFxuICAgICAgcGFyYW1zLFxuICAgIH0pO1xuICB9XG5cbiAgZGVzY3JpYmUob2JqZWN0TmFtZTogc3RyaW5nLCBmaWVsZE5hbWU/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPFNhbGVzZm9yY2VGaWVsZFtdPiB7XG4gICAgY29uc3QgbWV0aG9kVXJsID0gYCR7dGhpcy5TRVJWSUNFX1VSTH0vZGVzY3JpYmUvJHtvYmplY3ROYW1lfS9maWVsZHNgICsgKGZpZWxkTmFtZSA/IGAvJHtmaWVsZE5hbWV9YCA6ICcnKTtcblxuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLmFwaSh7IHVybDogbWV0aG9kVXJsIH0pO1xuICB9XG5cbiAgZGVzY3JpYmUyPFQ+KG9iamVjdE5hbWU6IHN0cmluZywgZmllbGRzOiBzdHJpbmdbXSk6IE9ic2VydmFibGU8VD4ge1xuICAgIGNvbnN0IG1ldGhvZFVybCA9IGAke3RoaXMuU0VSVklDRV9VUkx9L2Rlc2NyaWJlLyR7b2JqZWN0TmFtZX0vZmllbGRzYDtcblxuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLmFwaSh7IG1ldGhvZDogJ3Bvc3QnLCB1cmw6IG1ldGhvZFVybCwgYm9keTogZmllbGRzIH0pO1xuICB9XG5cbiAgYXBleEdldFJlcXVlc3Q8VD4ocGF0aDogc3RyaW5nLCBwYXJhbXM6IEh0dHBQYXJhbXMpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5hcGkoeyB1cmw6IGAke3RoaXMuU0VSVklDRV9VUkx9L2FwZXgke3BhdGh9YCwgcGFyYW1zIH0pO1xuICB9XG5cbiAgYXBleFBvc3RSZXF1ZXN0PFQsIFM+KHBhdGg6IHN0cmluZywgYm9keTogUyk6IE9ic2VydmFibGU8VD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLmFwaSh7XG4gICAgICBtZXRob2Q6ICdwb3N0JyxcbiAgICAgIGJvZHksXG4gICAgICB1cmw6IGAke3RoaXMuU0VSVklDRV9VUkx9L2FwZXgke3BhdGh9YCxcbiAgICB9KTtcbiAgfVxufVxuIl19
|
@@ -0,0 +1,75 @@
|
|
1
|
+
import { Injectable } from '@angular/core';
|
2
|
+
import { HttpParams } from '@angular/common/http';
|
3
|
+
import * as i0 from "@angular/core";
|
4
|
+
import * as i1 from "@veloce/core";
|
5
|
+
export class ScriptsApiService {
|
6
|
+
constructor(baseHttpService) {
|
7
|
+
this.baseHttpService = baseHttpService;
|
8
|
+
this.serviceUrl = '/admin/scripts';
|
9
|
+
this.fetchScripts$ = () => {
|
10
|
+
return this.baseHttpService.api({ url: `${this.serviceUrl}` });
|
11
|
+
};
|
12
|
+
this.searchScripts$ = (expression, skip, count) => {
|
13
|
+
let params = new HttpParams();
|
14
|
+
params = params.set('skip', '' + skip);
|
15
|
+
params = params.set('count', '' + count);
|
16
|
+
return this.baseHttpService.api({ method: 'post', url: `${this.serviceUrl}/search`, params, body: expression });
|
17
|
+
};
|
18
|
+
this.fetchScript$ = (id) => {
|
19
|
+
return this.baseHttpService.api({ url: `${this.serviceUrl}/${id}` });
|
20
|
+
};
|
21
|
+
this.createScript$ = (script) => {
|
22
|
+
return this.baseHttpService.api({
|
23
|
+
url: `${this.serviceUrl}`,
|
24
|
+
method: 'post',
|
25
|
+
body: script,
|
26
|
+
});
|
27
|
+
};
|
28
|
+
this.updateScriptMeta$ = (script) => {
|
29
|
+
return this.baseHttpService.api({
|
30
|
+
url: `${this.serviceUrl}/${script.id}`,
|
31
|
+
method: 'post',
|
32
|
+
body: script,
|
33
|
+
});
|
34
|
+
};
|
35
|
+
this.updateScriptDetails$ = (script) => {
|
36
|
+
return this.baseHttpService.api({
|
37
|
+
url: `${this.serviceUrl}/${script.id}`,
|
38
|
+
method: 'put',
|
39
|
+
body: script,
|
40
|
+
});
|
41
|
+
};
|
42
|
+
this.cloneScript$ = (cloneRequest) => {
|
43
|
+
return this.baseHttpService.api({
|
44
|
+
url: `${this.serviceUrl}/${cloneRequest.id}/clone`,
|
45
|
+
method: 'post',
|
46
|
+
body: cloneRequest
|
47
|
+
});
|
48
|
+
};
|
49
|
+
this.removeScript$ = (id) => {
|
50
|
+
return this.baseHttpService.api({
|
51
|
+
url: `${this.serviceUrl}/${id}`,
|
52
|
+
method: 'delete',
|
53
|
+
});
|
54
|
+
};
|
55
|
+
this.restoreScript$ = (id) => {
|
56
|
+
return this.baseHttpService.api({
|
57
|
+
url: `${this.serviceUrl}/${id}/restore`,
|
58
|
+
method: 'patch',
|
59
|
+
});
|
60
|
+
};
|
61
|
+
this.execute$ = (body) => {
|
62
|
+
return this.baseHttpService.api({
|
63
|
+
url: `/scripts/execute`,
|
64
|
+
method: 'post',
|
65
|
+
body,
|
66
|
+
});
|
67
|
+
};
|
68
|
+
}
|
69
|
+
}
|
70
|
+
ScriptsApiService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: ScriptsApiService, deps: [{ token: i1.BaseHttpService }], target: i0.ɵɵFactoryTarget.Injectable });
|
71
|
+
ScriptsApiService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: ScriptsApiService });
|
72
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: ScriptsApiService, decorators: [{
|
73
|
+
type: Injectable
|
74
|
+
}], ctorParameters: function () { return [{ type: i1.BaseHttpService }]; } });
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NyaXB0cy1hcGkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXBpL3NyYy9saWIvc2VydmljZXMvc2NyaXB0cy1hcGkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7O0FBSWxELE1BQU0sT0FBTyxpQkFBaUI7SUFHNUIsWUFBb0IsZUFBZ0M7UUFBaEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBRm5DLGVBQVUsR0FBVyxnQkFBZ0IsQ0FBQztRQUl2RCxrQkFBYSxHQUFHLEdBQXlCLEVBQUU7WUFDekMsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBVyxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDM0UsQ0FBQyxDQUFDO1FBRUYsbUJBQWMsR0FBRyxDQUFDLFVBQXNCLEVBQUUsSUFBWSxFQUFFLEtBQWEsRUFBd0IsRUFBRTtZQUM3RixJQUFJLE1BQU0sR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQzlCLE1BQU0sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7WUFDdkMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLEVBQUUsR0FBRyxLQUFLLENBQUMsQ0FBQztZQUN6QyxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsVUFBVSxTQUFTLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO1FBQ2xILENBQUMsQ0FBQztRQUVGLGlCQUFZLEdBQUcsQ0FBQyxFQUFVLEVBQTZCLEVBQUU7WUFDdkQsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBZ0IsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsVUFBVSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN0RixDQUFDLENBQUM7UUFFRixrQkFBYSxHQUFHLENBQUMsTUFBaUIsRUFBc0IsRUFBRTtZQUN4RCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFTO2dCQUN0QyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUN6QixNQUFNLEVBQUUsTUFBTTtnQkFDZCxJQUFJLEVBQUUsTUFBTTthQUNiLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQztRQUVGLHNCQUFpQixHQUFHLENBQUMsTUFBYyxFQUFzQixFQUFFO1lBQ3pELE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQVM7Z0JBQ3RDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxVQUFVLElBQUksTUFBTSxDQUFDLEVBQUUsRUFBRTtnQkFDdEMsTUFBTSxFQUFFLE1BQU07Z0JBQ2QsSUFBSSxFQUFFLE1BQU07YUFDYixDQUFDLENBQUM7UUFDTCxDQUFDLENBQUM7UUFFRix5QkFBb0IsR0FBRyxDQUFDLE1BQXFCLEVBQTZCLEVBQUU7WUFDMUUsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBZ0I7Z0JBQzdDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxVQUFVLElBQUksTUFBTSxDQUFDLEVBQUUsRUFBRTtnQkFDdEMsTUFBTSxFQUFFLEtBQUs7Z0JBQ2IsSUFBSSxFQUFFLE1BQU07YUFDYixDQUFDLENBQUM7UUFDTCxDQUFDLENBQUM7UUFFRixpQkFBWSxHQUFHLENBQUMsWUFBMEIsRUFBc0IsRUFBRTtZQUNoRSxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFTO2dCQUN0QyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsVUFBVSxJQUFJLFlBQVksQ0FBQyxFQUFFLFFBQVE7Z0JBQ2xELE1BQU0sRUFBRSxNQUFNO2dCQUNkLElBQUksRUFBRSxZQUFZO2FBQ25CLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQztRQUVGLGtCQUFhLEdBQUcsQ0FBQyxFQUFVLEVBQXNCLEVBQUU7WUFDakQsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBUztnQkFDdEMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLFVBQVUsSUFBSSxFQUFFLEVBQUU7Z0JBQy9CLE1BQU0sRUFBRSxRQUFRO2FBQ2pCLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQztRQUVGLG1CQUFjLEdBQUcsQ0FBQyxFQUFVLEVBQXNCLEVBQUU7WUFDbEQsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBUztnQkFDdEMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLFVBQVUsSUFBSSxFQUFFLFVBQVU7Z0JBQ3ZDLE1BQU0sRUFBRSxPQUFPO2FBQ2hCLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQztRQUVGLGFBQVEsR0FBRyxDQUFDLElBQTBCLEVBQW1CLEVBQUU7WUFDekQsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQztnQkFDOUIsR0FBRyxFQUFFLGtCQUFrQjtnQkFDdkIsTUFBTSxFQUFFLE1BQU07Z0JBQ2QsSUFBSTthQUNMLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQztJQXJFcUQsQ0FBQzs7K0dBSDdDLGlCQUFpQjttSEFBakIsaUJBQWlCOzRGQUFqQixpQkFBaUI7a0JBRDdCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCYXNlSHR0cFNlcnZpY2UsIEV4cHJlc3Npb24sIE5ld1NjcmlwdCwgU2NyaXB0LCBTY3JpcHREZXRhaWxzLCBTY3JpcHRFeGVjdXRlUmVxdWVzdCB9IGZyb20gJ0B2ZWxvY2UvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBIdHRwUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgQ2xvbmVSZXF1ZXN0IH0gZnJvbSAnLi4vdHlwZXMvY2xvbmUtcmVxdWVzdC50eXBlcyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTY3JpcHRzQXBpU2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgc2VydmljZVVybDogc3RyaW5nID0gJy9hZG1pbi9zY3JpcHRzJztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGJhc2VIdHRwU2VydmljZTogQmFzZUh0dHBTZXJ2aWNlKSB7fVxuXG4gIGZldGNoU2NyaXB0cyQgPSAoKTogT2JzZXJ2YWJsZTxTY3JpcHRbXT4gPT4ge1xuICAgIHJldHVybiB0aGlzLmJhc2VIdHRwU2VydmljZS5hcGk8U2NyaXB0W10+KHsgdXJsOiBgJHt0aGlzLnNlcnZpY2VVcmx9YCB9KTtcbiAgfTtcblxuICBzZWFyY2hTY3JpcHRzJCA9IChleHByZXNzaW9uOiBFeHByZXNzaW9uLCBza2lwOiBudW1iZXIsIGNvdW50OiBudW1iZXIpOiBPYnNlcnZhYmxlPFNjcmlwdFtdPiA9PiB7XG4gICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCk7XG4gICAgcGFyYW1zID0gcGFyYW1zLnNldCgnc2tpcCcsICcnICsgc2tpcCk7XG4gICAgcGFyYW1zID0gcGFyYW1zLnNldCgnY291bnQnLCAnJyArIGNvdW50KTtcbiAgICByZXR1cm4gdGhpcy5iYXNlSHR0cFNlcnZpY2UuYXBpKHsgbWV0aG9kOiAncG9zdCcsIHVybDogYCR7dGhpcy5zZXJ2aWNlVXJsfS9zZWFyY2hgLCBwYXJhbXMsIGJvZHk6IGV4cHJlc3Npb24gfSk7XG4gIH07XG5cbiAgZmV0Y2hTY3JpcHQkID0gKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFNjcmlwdERldGFpbHM+ID0+IHtcbiAgICByZXR1cm4gdGhpcy5iYXNlSHR0cFNlcnZpY2UuYXBpPFNjcmlwdERldGFpbHM+KHsgdXJsOiBgJHt0aGlzLnNlcnZpY2VVcmx9LyR7aWR9YCB9KTtcbiAgfTtcblxuICBjcmVhdGVTY3JpcHQkID0gKHNjcmlwdDogTmV3U2NyaXB0KTogT2JzZXJ2YWJsZTxTY3JpcHQ+ID0+IHtcbiAgICByZXR1cm4gdGhpcy5iYXNlSHR0cFNlcnZpY2UuYXBpPFNjcmlwdD4oe1xuICAgICAgdXJsOiBgJHt0aGlzLnNlcnZpY2VVcmx9YCxcbiAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgYm9keTogc2NyaXB0LFxuICAgIH0pO1xuICB9O1xuXG4gIHVwZGF0ZVNjcmlwdE1ldGEkID0gKHNjcmlwdDogU2NyaXB0KTogT2JzZXJ2YWJsZTxTY3JpcHQ+ID0+IHtcbiAgICByZXR1cm4gdGhpcy5iYXNlSHR0cFNlcnZpY2UuYXBpPFNjcmlwdD4oe1xuICAgICAgdXJsOiBgJHt0aGlzLnNlcnZpY2VVcmx9LyR7c2NyaXB0LmlkfWAsXG4gICAgICBtZXRob2Q6ICdwb3N0JyxcbiAgICAgIGJvZHk6IHNjcmlwdCxcbiAgICB9KTtcbiAgfTtcblxuICB1cGRhdGVTY3JpcHREZXRhaWxzJCA9IChzY3JpcHQ6IFNjcmlwdERldGFpbHMpOiBPYnNlcnZhYmxlPFNjcmlwdERldGFpbHM+ID0+IHtcbiAgICByZXR1cm4gdGhpcy5iYXNlSHR0cFNlcnZpY2UuYXBpPFNjcmlwdERldGFpbHM+KHtcbiAgICAgIHVybDogYCR7dGhpcy5zZXJ2aWNlVXJsfS8ke3NjcmlwdC5pZH1gLFxuICAgICAgbWV0aG9kOiAncHV0JyxcbiAgICAgIGJvZHk6IHNjcmlwdCxcbiAgICB9KTtcbiAgfTtcblxuICBjbG9uZVNjcmlwdCQgPSAoY2xvbmVSZXF1ZXN0OiBDbG9uZVJlcXVlc3QpOiBPYnNlcnZhYmxlPHN0cmluZz4gPT4ge1xuICAgIHJldHVybiB0aGlzLmJhc2VIdHRwU2VydmljZS5hcGk8c3RyaW5nPih7XG4gICAgICB1cmw6IGAke3RoaXMuc2VydmljZVVybH0vJHtjbG9uZVJlcXVlc3QuaWR9L2Nsb25lYCxcbiAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgYm9keTogY2xvbmVSZXF1ZXN0XG4gICAgfSk7XG4gIH07XG5cbiAgcmVtb3ZlU2NyaXB0JCA9IChpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxzdHJpbmc+ID0+IHtcbiAgICByZXR1cm4gdGhpcy5iYXNlSHR0cFNlcnZpY2UuYXBpPHN0cmluZz4oe1xuICAgICAgdXJsOiBgJHt0aGlzLnNlcnZpY2VVcmx9LyR7aWR9YCxcbiAgICAgIG1ldGhvZDogJ2RlbGV0ZScsXG4gICAgfSk7XG4gIH07XG5cbiAgcmVzdG9yZVNjcmlwdCQgPSAoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8c3RyaW5nPiA9PiB7XG4gICAgcmV0dXJuIHRoaXMuYmFzZUh0dHBTZXJ2aWNlLmFwaTxzdHJpbmc+KHtcbiAgICAgIHVybDogYCR7dGhpcy5zZXJ2aWNlVXJsfS8ke2lkfS9yZXN0b3JlYCxcbiAgICAgIG1ldGhvZDogJ3BhdGNoJyxcbiAgICB9KTtcbiAgfTtcblxuICBleGVjdXRlJCA9IChib2R5OiBTY3JpcHRFeGVjdXRlUmVxdWVzdCk6IE9ic2VydmFibGU8YW55PiA9PiB7XG4gICAgcmV0dXJuIHRoaXMuYmFzZUh0dHBTZXJ2aWNlLmFwaSh7XG4gICAgICB1cmw6IGAvc2NyaXB0cy9leGVjdXRlYCxcbiAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgYm9keSxcbiAgICB9KTtcbiAgfTtcbn1cbiJdfQ==
|