@veloceapps/api 4.0.21-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 +3 -0
- package/bundles/veloceapps-api.umd.js +2950 -0
- package/bundles/veloceapps-api.umd.js.map +1 -0
- package/esm2015/index.js +25 -0
- package/esm2015/lib/api.module.js +89 -0
- package/esm2015/lib/services/account-api.service.js +50 -0
- package/esm2015/lib/services/catalog-admin-api.service.js +159 -0
- package/esm2015/lib/services/catalog-api.service.js +90 -0
- package/esm2015/lib/services/configuration-api.service.js +73 -0
- package/esm2015/lib/services/configuration-settings-api.service.js +52 -0
- package/esm2015/lib/services/context-api.service.js +26 -0
- package/esm2015/lib/services/delta-api.service.js +27 -0
- package/esm2015/lib/services/document-attachment-api.service.js +66 -0
- package/esm2015/lib/services/document-templates-api.service.js +284 -0
- package/esm2015/lib/services/flows-api.service.js +24 -0
- package/esm2015/lib/services/picklists-api.service.js +38 -0
- package/esm2015/lib/services/price-api.service.js +63 -0
- package/esm2015/lib/services/procedures-api.service.js +93 -0
- package/esm2015/lib/services/product-api.service.js +153 -0
- package/esm2015/lib/services/product-model-api.service.js +232 -0
- package/esm2015/lib/services/quote-api.service.js +48 -0
- package/esm2015/lib/services/ramp-api.service.js +21 -0
- package/esm2015/lib/services/rule-groups-api.service.js +62 -0
- package/esm2015/lib/services/rules-api.service.js +81 -0
- package/esm2015/lib/services/salesforce-api.service.js +40 -0
- package/esm2015/lib/services/scripts-api.service.js +76 -0
- package/esm2015/lib/services/ui-templates-api.service.js +282 -0
- package/esm2015/lib/types/clone-request.types.js +2 -0
- package/esm2015/lib/types/delta-request.types.js +2 -0
- package/esm2015/lib/types/dto/attribute-dto.types.js +21 -0
- package/esm2015/lib/types/dto/charge-group-item-dto.types.js +49 -0
- package/esm2015/lib/types/dto/charge-item-dto.types.js +78 -0
- package/esm2015/lib/types/dto/configuration-dto.types.js +19 -0
- package/esm2015/lib/types/dto/configuration-settings-dto.types.js +22 -0
- package/esm2015/lib/types/dto/domain-type-dto.types.js +27 -0
- package/esm2015/lib/types/dto/line-item-dto.types.js +103 -0
- package/esm2015/lib/types/dto/port-domain-dto.types.js +22 -0
- package/esm2015/lib/types/dto/price-adjustment-dto.types.js +15 -0
- package/esm2015/lib/types/dto/price-dto.types.js +25 -0
- package/esm2015/lib/types/dto/recommended-price-dto.types.js +25 -0
- package/esm2015/lib/types/dto/ui-template-dto.types.js +2 -0
- package/esm2015/lib/types/index.js +5 -0
- package/esm2015/lib/types/price.types.js +2 -0
- package/esm2015/lib/types/ramp-request.types.js +2 -0
- package/esm2015/lib/types/search-request.types.js +2 -0
- package/esm2015/lib/utils/ui-template.utils.js +13 -0
- package/esm2015/veloceapps-api.js +5 -0
- package/fesm2015/veloceapps-api.js +2420 -0
- package/fesm2015/veloceapps-api.js.map +1 -0
- package/index.d.ts +24 -0
- package/lib/api.module.d.ts +7 -0
- package/lib/services/account-api.service.d.ts +22 -0
- package/lib/services/catalog-admin-api.service.d.ts +34 -0
- package/lib/services/catalog-api.service.d.ts +20 -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/delta-api.service.d.ts +12 -0
- package/lib/services/document-attachment-api.service.d.ts +16 -0
- package/lib/services/document-templates-api.service.d.ts +47 -0
- package/lib/services/flows-api.service.d.ts +13 -0
- package/lib/services/picklists-api.service.d.ts +17 -0
- package/lib/services/price-api.service.d.ts +16 -0
- package/lib/services/procedures-api.service.d.ts +27 -0
- package/lib/services/product-api.service.d.ts +31 -0
- package/lib/services/product-model-api.service.d.ts +30 -0
- package/lib/services/quote-api.service.d.ts +25 -0
- package/lib/services/ramp-api.service.d.ts +13 -0
- package/lib/services/rule-groups-api.service.d.ts +18 -0
- package/lib/services/rules-api.service.d.ts +21 -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 +49 -0
- package/lib/types/clone-request.types.d.ts +5 -0
- package/lib/types/delta-request.types.d.ts +5 -0
- package/lib/types/dto/attribute-dto.types.d.ts +11 -0
- package/lib/types/dto/charge-group-item-dto.types.d.ts +26 -0
- package/lib/types/dto/charge-item-dto.types.d.ts +41 -0
- package/lib/types/dto/configuration-dto.types.d.ts +18 -0
- package/lib/types/dto/configuration-settings-dto.types.d.ts +9 -0
- package/lib/types/dto/domain-type-dto.types.d.ts +15 -0
- package/lib/types/dto/line-item-dto.types.d.ts +55 -0
- package/lib/types/dto/port-domain-dto.types.d.ts +13 -0
- package/lib/types/dto/price-adjustment-dto.types.d.ts +8 -0
- package/lib/types/dto/price-dto.types.d.ts +13 -0
- package/lib/types/dto/recommended-price-dto.types.d.ts +14 -0
- package/lib/types/dto/ui-template-dto.types.d.ts +6 -0
- package/lib/types/index.d.ts +4 -0
- package/lib/types/price.types.d.ts +5 -0
- package/lib/types/ramp-request.types.d.ts +13 -0
- package/lib/types/search-request.types.d.ts +8 -0
- package/lib/utils/ui-template.utils.d.ts +3 -0
- package/package.json +37 -0
- package/veloceapps-api.d.ts +5 -0
@@ -0,0 +1,63 @@
|
|
1
|
+
import { Injectable } from '@angular/core';
|
2
|
+
import * as i0 from "@angular/core";
|
3
|
+
import * as i1 from "@veloceapps/core";
|
4
|
+
export class PriceApiService {
|
5
|
+
constructor(httpService) {
|
6
|
+
this.httpService = httpService;
|
7
|
+
this.SERVICE_URL = '/price';
|
8
|
+
}
|
9
|
+
calculate(request) {
|
10
|
+
return this.httpService.api({
|
11
|
+
method: 'post',
|
12
|
+
url: `${this.SERVICE_URL}/calculate`,
|
13
|
+
body: request,
|
14
|
+
skipErrorHandler: true,
|
15
|
+
});
|
16
|
+
}
|
17
|
+
getPriceLists() {
|
18
|
+
return this.httpService.api({
|
19
|
+
method: 'get',
|
20
|
+
url: '/price-lists',
|
21
|
+
});
|
22
|
+
}
|
23
|
+
getPriceList(id) {
|
24
|
+
return this.httpService.api({
|
25
|
+
method: 'get',
|
26
|
+
url: `/price-lists/${id}`,
|
27
|
+
});
|
28
|
+
}
|
29
|
+
getSellingTermByEndDate(planId, offeringId, startDate, endDate, frequencyUnit, frequencyDuration) {
|
30
|
+
return this.httpService.api({
|
31
|
+
method: 'post',
|
32
|
+
url: `${this.SERVICE_URL}/selling-term-by-end-date`,
|
33
|
+
body: {
|
34
|
+
planId: planId,
|
35
|
+
offeringId: offeringId,
|
36
|
+
startDate: startDate,
|
37
|
+
endDate: endDate,
|
38
|
+
frequencyUnit: frequencyUnit,
|
39
|
+
frequencyDuration: frequencyDuration,
|
40
|
+
},
|
41
|
+
});
|
42
|
+
}
|
43
|
+
getSellingTermByTerm(planId, offeringId, startDate, term, frequencyUnit, frequencyDuration) {
|
44
|
+
return this.httpService.api({
|
45
|
+
method: 'post',
|
46
|
+
url: `${this.SERVICE_URL}/selling-term-by-term`,
|
47
|
+
body: {
|
48
|
+
planId: planId,
|
49
|
+
offeringId: offeringId,
|
50
|
+
startDate: startDate,
|
51
|
+
term: term,
|
52
|
+
frequencyUnit: frequencyUnit,
|
53
|
+
frequencyDuration: frequencyDuration,
|
54
|
+
},
|
55
|
+
});
|
56
|
+
}
|
57
|
+
}
|
58
|
+
PriceApiService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: PriceApiService, deps: [{ token: i1.BaseHttpService }], target: i0.ɵɵFactoryTarget.Injectable });
|
59
|
+
PriceApiService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: PriceApiService });
|
60
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: PriceApiService, decorators: [{
|
61
|
+
type: Injectable
|
62
|
+
}], ctorParameters: function () { return [{ type: i1.BaseHttpService }]; } });
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpY2UtYXBpLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwaS9zcmMvbGliL3NlcnZpY2VzL3ByaWNlLWFwaS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQU0zQyxNQUFNLE9BQU8sZUFBZTtJQUcxQixZQUFvQixXQUE0QjtRQUE1QixnQkFBVyxHQUFYLFdBQVcsQ0FBaUI7UUFGL0IsZ0JBQVcsR0FBRyxRQUFRLENBQUM7SUFFVyxDQUFDO0lBRXBELFNBQVMsQ0FBQyxPQUE4QjtRQUN0QyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDO1lBQzFCLE1BQU0sRUFBRSxNQUFNO1lBQ2QsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLFdBQVcsWUFBWTtZQUNwQyxJQUFJLEVBQUUsT0FBTztZQUNiLGdCQUFnQixFQUFFLElBQUk7U0FDdkIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGFBQWE7UUFDWCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDO1lBQzFCLE1BQU0sRUFBRSxLQUFLO1lBQ2IsR0FBRyxFQUFFLGNBQWM7U0FDcEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFlBQVksQ0FBQyxFQUFVO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUM7WUFDMUIsTUFBTSxFQUFFLEtBQUs7WUFDYixHQUFHLEVBQUUsZ0JBQWdCLEVBQUUsRUFBRTtTQUMxQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsdUJBQXVCLENBQ3JCLE1BQWUsRUFDZixVQUFtQixFQUNuQixTQUFrQixFQUNsQixPQUFnQixFQUNoQixhQUFzQixFQUN0QixpQkFBMEI7UUFFMUIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQztZQUMxQixNQUFNLEVBQUUsTUFBTTtZQUNkLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxXQUFXLDJCQUEyQjtZQUNuRCxJQUFJLEVBQUU7Z0JBQ0osTUFBTSxFQUFFLE1BQU07Z0JBQ2QsVUFBVSxFQUFFLFVBQVU7Z0JBQ3RCLFNBQVMsRUFBRSxTQUFTO2dCQUNwQixPQUFPLEVBQUUsT0FBTztnQkFDaEIsYUFBYSxFQUFFLGFBQWE7Z0JBQzVCLGlCQUFpQixFQUFFLGlCQUFpQjthQUNyQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxvQkFBb0IsQ0FDbEIsTUFBZSxFQUNmLFVBQW1CLEVBQ25CLFNBQWtCLEVBQ2xCLElBQWEsRUFDYixhQUFzQixFQUN0QixpQkFBMEI7UUFFMUIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQztZQUMxQixNQUFNLEVBQUUsTUFBTTtZQUNkLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxXQUFXLHVCQUF1QjtZQUMvQyxJQUFJLEVBQUU7Z0JBQ0osTUFBTSxFQUFFLE1BQU07Z0JBQ2QsVUFBVSxFQUFFLFVBQVU7Z0JBQ3RCLFNBQVMsRUFBRSxTQUFTO2dCQUNwQixJQUFJLEVBQUUsSUFBSTtnQkFDVixhQUFhLEVBQUUsYUFBYTtnQkFDNUIsaUJBQWlCLEVBQUUsaUJBQWlCO2FBQ3JDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7NkdBdEVVLGVBQWU7aUhBQWYsZUFBZTs0RkFBZixlQUFlO2tCQUQzQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmFzZUh0dHBTZXJ2aWNlLCBQcmljZUxpc3QsIFByaWNlU3VtbWFyeSB9IGZyb20gJ0B2ZWxvY2VhcHBzL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUHJpY2VDYWxjdWxhdGVSZXF1ZXN0IH0gZnJvbSAnLi4vdHlwZXMvcHJpY2UudHlwZXMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUHJpY2VBcGlTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBTRVJWSUNFX1VSTCA9ICcvcHJpY2UnO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cFNlcnZpY2U6IEJhc2VIdHRwU2VydmljZSkge31cblxuICBjYWxjdWxhdGUocmVxdWVzdDogUHJpY2VDYWxjdWxhdGVSZXF1ZXN0KTogT2JzZXJ2YWJsZTxQcmljZVN1bW1hcnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5hcGkoe1xuICAgICAgbWV0aG9kOiAncG9zdCcsXG4gICAgICB1cmw6IGAke3RoaXMuU0VSVklDRV9VUkx9L2NhbGN1bGF0ZWAsXG4gICAgICBib2R5OiByZXF1ZXN0LFxuICAgICAgc2tpcEVycm9ySGFuZGxlcjogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuXG4gIGdldFByaWNlTGlzdHMoKTogT2JzZXJ2YWJsZTxQcmljZUxpc3RbXT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLmFwaSh7XG4gICAgICBtZXRob2Q6ICdnZXQnLFxuICAgICAgdXJsOiAnL3ByaWNlLWxpc3RzJyxcbiAgICB9KTtcbiAgfVxuXG4gIGdldFByaWNlTGlzdChpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxQcmljZUxpc3Q+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5hcGkoe1xuICAgICAgbWV0aG9kOiAnZ2V0JyxcbiAgICAgIHVybDogYC9wcmljZS1saXN0cy8ke2lkfWAsXG4gICAgfSk7XG4gIH1cblxuICBnZXRTZWxsaW5nVGVybUJ5RW5kRGF0ZShcbiAgICBwbGFuSWQ/OiBzdHJpbmcsXG4gICAgb2ZmZXJpbmdJZD86IHN0cmluZyxcbiAgICBzdGFydERhdGU/OiBzdHJpbmcsXG4gICAgZW5kRGF0ZT86IHN0cmluZyxcbiAgICBmcmVxdWVuY3lVbml0Pzogc3RyaW5nLFxuICAgIGZyZXF1ZW5jeUR1cmF0aW9uPzogc3RyaW5nLFxuICApOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLmFwaSh7XG4gICAgICBtZXRob2Q6ICdwb3N0JyxcbiAgICAgIHVybDogYCR7dGhpcy5TRVJWSUNFX1VSTH0vc2VsbGluZy10ZXJtLWJ5LWVuZC1kYXRlYCxcbiAgICAgIGJvZHk6IHtcbiAgICAgICAgcGxhbklkOiBwbGFuSWQsXG4gICAgICAgIG9mZmVyaW5nSWQ6IG9mZmVyaW5nSWQsXG4gICAgICAgIHN0YXJ0RGF0ZTogc3RhcnREYXRlLFxuICAgICAgICBlbmREYXRlOiBlbmREYXRlLFxuICAgICAgICBmcmVxdWVuY3lVbml0OiBmcmVxdWVuY3lVbml0LFxuICAgICAgICBmcmVxdWVuY3lEdXJhdGlvbjogZnJlcXVlbmN5RHVyYXRpb24sXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgZ2V0U2VsbGluZ1Rlcm1CeVRlcm0oXG4gICAgcGxhbklkPzogc3RyaW5nLFxuICAgIG9mZmVyaW5nSWQ/OiBzdHJpbmcsXG4gICAgc3RhcnREYXRlPzogc3RyaW5nLFxuICAgIHRlcm0/OiBudW1iZXIsXG4gICAgZnJlcXVlbmN5VW5pdD86IHN0cmluZyxcbiAgICBmcmVxdWVuY3lEdXJhdGlvbj86IHN0cmluZyxcbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5hcGkoe1xuICAgICAgbWV0aG9kOiAncG9zdCcsXG4gICAgICB1cmw6IGAke3RoaXMuU0VSVklDRV9VUkx9L3NlbGxpbmctdGVybS1ieS10ZXJtYCxcbiAgICAgIGJvZHk6IHtcbiAgICAgICAgcGxhbklkOiBwbGFuSWQsXG4gICAgICAgIG9mZmVyaW5nSWQ6IG9mZmVyaW5nSWQsXG4gICAgICAgIHN0YXJ0RGF0ZTogc3RhcnREYXRlLFxuICAgICAgICB0ZXJtOiB0ZXJtLFxuICAgICAgICBmcmVxdWVuY3lVbml0OiBmcmVxdWVuY3lVbml0LFxuICAgICAgICBmcmVxdWVuY3lEdXJhdGlvbjogZnJlcXVlbmN5RHVyYXRpb24sXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
@@ -0,0 +1,93 @@
|
|
1
|
+
import { HttpParams } from '@angular/common/http';
|
2
|
+
import { Injectable } from '@angular/core';
|
3
|
+
import { Expression, } from '@veloceapps/core';
|
4
|
+
import { map } from 'rxjs/operators';
|
5
|
+
import * as i0 from "@angular/core";
|
6
|
+
import * as i1 from "@veloceapps/core";
|
7
|
+
export class ProceduresApiService {
|
8
|
+
constructor(baseHttpService) {
|
9
|
+
this.baseHttpService = baseHttpService;
|
10
|
+
this.ADMIN_SERVICE_URL = '/admin/procedures';
|
11
|
+
this.SERVICE_URL = '/procedures';
|
12
|
+
this.fetchProcedures$ = () => {
|
13
|
+
return this.searchProcedures$(new Expression(), 0, 100);
|
14
|
+
};
|
15
|
+
this.searchProcedures$ = (expression, skip, count) => {
|
16
|
+
let params = new HttpParams();
|
17
|
+
params = params.set('skip', '' + skip);
|
18
|
+
params = params.set('count', '' + count);
|
19
|
+
return this.baseHttpService.api({
|
20
|
+
method: 'post',
|
21
|
+
url: `${this.ADMIN_SERVICE_URL}/search`,
|
22
|
+
params,
|
23
|
+
body: expression,
|
24
|
+
});
|
25
|
+
};
|
26
|
+
this.createProcedure$ = (newProcedure) => {
|
27
|
+
return this.baseHttpService.api({
|
28
|
+
url: `${this.ADMIN_SERVICE_URL}`,
|
29
|
+
method: 'post',
|
30
|
+
body: newProcedure,
|
31
|
+
});
|
32
|
+
};
|
33
|
+
this.updateProcedure$ = (procedure) => {
|
34
|
+
return this.baseHttpService.api({
|
35
|
+
url: `${this.ADMIN_SERVICE_URL}/${procedure.id}`,
|
36
|
+
method: 'put',
|
37
|
+
body: procedure,
|
38
|
+
});
|
39
|
+
};
|
40
|
+
this.duplicateProcedure$ = (body) => {
|
41
|
+
return this.baseHttpService
|
42
|
+
.api({
|
43
|
+
url: `${this.ADMIN_SERVICE_URL}/${body.id}/clone`,
|
44
|
+
method: 'post',
|
45
|
+
body,
|
46
|
+
})
|
47
|
+
.pipe(map(response => response.clonedRecordId));
|
48
|
+
};
|
49
|
+
this.removeProcedure$ = (id) => {
|
50
|
+
return this.baseHttpService.api({
|
51
|
+
url: `${this.ADMIN_SERVICE_URL}/${id}`,
|
52
|
+
method: 'delete',
|
53
|
+
});
|
54
|
+
};
|
55
|
+
this.restoreProcedure$ = (id) => {
|
56
|
+
return this.baseHttpService.api({
|
57
|
+
url: `${this.ADMIN_SERVICE_URL}/${id}/restore`,
|
58
|
+
method: 'patch',
|
59
|
+
});
|
60
|
+
};
|
61
|
+
}
|
62
|
+
fetchProcedure$(id) {
|
63
|
+
return this.baseHttpService.api({
|
64
|
+
url: `${this.ADMIN_SERVICE_URL}/${id}`,
|
65
|
+
method: 'get',
|
66
|
+
});
|
67
|
+
}
|
68
|
+
execute$(body) {
|
69
|
+
return this.baseHttpService.api({
|
70
|
+
url: `${this.SERVICE_URL}/execute`,
|
71
|
+
method: 'post',
|
72
|
+
body,
|
73
|
+
});
|
74
|
+
}
|
75
|
+
/**
|
76
|
+
* Run active procedure against QuoteDraft
|
77
|
+
* @param body
|
78
|
+
* @returns
|
79
|
+
*/
|
80
|
+
apply$(body) {
|
81
|
+
return this.baseHttpService.api({
|
82
|
+
url: `${this.SERVICE_URL}/apply`,
|
83
|
+
method: 'post',
|
84
|
+
body,
|
85
|
+
});
|
86
|
+
}
|
87
|
+
}
|
88
|
+
ProceduresApiService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ProceduresApiService, deps: [{ token: i1.BaseHttpService }], target: i0.ɵɵFactoryTarget.Injectable });
|
89
|
+
ProceduresApiService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ProceduresApiService });
|
90
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ProceduresApiService, decorators: [{
|
91
|
+
type: Injectable
|
92
|
+
}], ctorParameters: function () { return [{ type: i1.BaseHttpService }]; } });
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2VkdXJlcy1hcGkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXBpL3NyYy9saWIvc2VydmljZXMvcHJvY2VkdXJlcy1hcGkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBRUwsVUFBVSxHQUtYLE1BQU0sa0JBQWtCLENBQUM7QUFFMUIsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFJckMsTUFBTSxPQUFPLG9CQUFvQjtJQUkvQixZQUFvQixlQUFnQztRQUFoQyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFIbkMsc0JBQWlCLEdBQVcsbUJBQW1CLENBQUM7UUFDaEQsZ0JBQVcsR0FBVyxhQUFhLENBQUM7UUFJckQscUJBQWdCLEdBQUcsR0FBNEIsRUFBRTtZQUMvQyxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLFVBQVUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUMxRCxDQUFDLENBQUM7UUFFRixzQkFBaUIsR0FBRyxDQUFDLFVBQXNCLEVBQUUsSUFBWSxFQUFFLEtBQWEsRUFBMkIsRUFBRTtZQUNuRyxJQUFJLE1BQU0sR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQzlCLE1BQU0sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7WUFDdkMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLEVBQUUsR0FBRyxLQUFLLENBQUMsQ0FBQztZQUN6QyxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDO2dCQUM5QixNQUFNLEVBQUUsTUFBTTtnQkFD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O1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQmFzZUh0dHBTZXJ2aWNlLFxuICBFeHByZXNzaW9uLFxuICBOZXdQcm9jZWR1cmUsXG4gIFByb2NlZHVyZSxcbiAgUHJvY2VkdXJlRXhlY3V0ZVJlcXVlc3QsXG4gIFF1b3RlRHJhZnQsXG59IGZyb20gJ0B2ZWxvY2VhcHBzL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQ2xvbmVSZXF1ZXN0IH0gZnJvbSAnLi4vdHlwZXMvY2xvbmUtcmVxdWVzdC50eXBlcyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBQcm9jZWR1cmVzQXBpU2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgQURNSU5fU0VSVklDRV9VUkw6IHN0cmluZyA9ICcvYWRtaW4vcHJvY2VkdXJlcyc7XG4gIHByaXZhdGUgcmVhZG9ubHkgU0VSVklDRV9VUkw6IHN0cmluZyA9ICcvcHJvY2VkdXJlcyc7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBiYXNlSHR0cFNlcnZpY2U6IEJhc2VIdHRwU2VydmljZSkge31cblxuICBmZXRjaFByb2NlZHVyZXMkID0gKCk6IE9ic2VydmFibGU8UHJvY2VkdXJlW10+ID0+IHtcbiAgICByZXR1cm4gdGhpcy5zZWFyY2hQcm9jZWR1cmVzJChuZXcgRXhwcmVzc2lvbigpLCAwLCAxMDApO1xuICB9O1xuXG4gIHNlYXJjaFByb2NlZHVyZXMkID0gKGV4cHJlc3Npb246IEV4cHJlc3Npb24sIHNraXA6IG51bWJlciwgY291bnQ6IG51bWJlcik6IE9ic2VydmFibGU8UHJvY2VkdXJlW10+ID0+IHtcbiAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKTtcbiAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdza2lwJywgJycgKyBza2lwKTtcbiAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdjb3VudCcsICcnICsgY291bnQpO1xuICAgIHJldHVybiB0aGlzLmJhc2VIdHRwU2VydmljZS5hcGkoe1xuICAgICAgbWV0aG9kOiAncG9zdCcsXG4gICAgICB1cmw6IGAke3RoaXMuQURNSU5fU0VSVklDRV9VUkx9L3NlYXJjaGAsXG4gICAgICBwYXJhbXMsXG4gICAgICBib2R5OiBleHByZXNzaW9uLFxuICAgIH0pO1xuICB9O1xuXG4gIGNyZWF0ZVByb2NlZHVyZSQgPSAobmV3UHJvY2VkdXJlOiBOZXdQcm9jZWR1cmUpOiBPYnNlcnZhYmxlPFByb2NlZHVyZT4gPT4ge1xuICAgIHJldHVybiB0aGlzLmJhc2VIdHRwU2VydmljZS5hcGk8UHJvY2VkdXJlPih7XG4gICAgICB1cmw6IGAke3RoaXMuQURNSU5fU0VSVklDRV9VUkx9YCxcbiAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgYm9keTogbmV3UHJvY2VkdXJlLFxuICAgIH0pO1xuICB9O1xuXG4gIHVwZGF0ZVByb2NlZHVyZSQgPSAocHJvY2VkdXJlOiBQcm9jZWR1cmUpOiBPYnNlcnZhYmxlPFByb2NlZHVyZT4gPT4ge1xuICAgIHJldHVybiB0aGlzLmJhc2VIdHRwU2VydmljZS5hcGk8UHJvY2VkdXJlPih7XG4gICAgICB1cmw6IGAke3RoaXMuQURNSU5fU0VSVklDRV9VUkx9LyR7cHJvY2VkdXJlLmlkfWAsXG4gICAgICBtZXRob2Q6ICdwdXQnLFxuICAgICAgYm9keTogcHJvY2VkdXJlLFxuICAgIH0pO1xuICB9O1xuXG4gIGR1cGxpY2F0ZVByb2NlZHVyZSQgPSAoYm9keTogQ2xvbmVSZXF1ZXN0KTogT2JzZXJ2YWJsZTxzdHJpbmc+ID0+IHtcbiAgICByZXR1cm4gdGhpcy5iYXNlSHR0cFNlcnZpY2VcbiAgICAgIC5hcGkoe1xuICAgICAgICB1cmw6IGAke3RoaXMuQURNSU5fU0VSVklDRV9VUkx9LyR7Ym9keS5pZH0vY2xvbmVgLFxuICAgICAgICBtZXRob2Q6ICdwb3N0JyxcbiAgICAgICAgYm9keSxcbiAgICAgIH0pXG4gICAgICAucGlwZShtYXAocmVzcG9uc2UgPT4gcmVzcG9uc2UuY2xvbmVkUmVjb3JkSWQpKTtcbiAgfTtcblxuICByZW1vdmVQcm9jZWR1cmUkID0gKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHN0cmluZz4gPT4ge1xuICAgIHJldHVybiB0aGlzLmJhc2VIdHRwU2VydmljZS5hcGk8c3RyaW5nPih7XG4gICAgICB1cmw6IGAke3RoaXMuQURNSU5fU0VSVklDRV9VUkx9LyR7aWR9YCxcbiAgICAgIG1ldGhvZDogJ2RlbGV0ZScsXG4gICAgfSk7XG4gIH07XG5cbiAgcmVzdG9yZVByb2NlZHVyZSQgPSAoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8c3RyaW5nPiA9PiB7XG4gICAgcmV0dXJuIHRoaXMuYmFzZUh0dHBTZXJ2aWNlLmFwaTxzdHJpbmc+KHtcbiAgICAgIHVybDogYCR7dGhpcy5BRE1JTl9TRVJWSUNFX1VSTH0vJHtpZH0vcmVzdG9yZWAsXG4gICAgICBtZXRob2Q6ICdwYXRjaCcsXG4gICAgfSk7XG4gIH07XG5cbiAgZmV0Y2hQcm9jZWR1cmUkKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFByb2NlZHVyZT4ge1xuICAgIHJldHVybiB0aGlzLmJhc2VIdHRwU2VydmljZS5hcGk8UHJvY2VkdXJlPih7XG4gICAgICB1cmw6IGAke3RoaXMuQURNSU5fU0VSVklDRV9VUkx9LyR7aWR9YCxcbiAgICAgIG1ldGhvZDogJ2dldCcsXG4gICAgfSk7XG4gIH1cblxuICBleGVjdXRlJChib2R5OiBQcm9jZWR1cmVFeGVjdXRlUmVxdWVzdCkge1xuICAgIHJldHVybiB0aGlzLmJhc2VIdHRwU2VydmljZS5hcGk8c3RyaW5nW10+KHtcbiAgICAgIHVybDogYCR7dGhpcy5TRVJWSUNFX1VSTH0vZXhlY3V0ZWAsXG4gICAgICBtZXRob2Q6ICdwb3N0JyxcbiAgICAgIGJvZHksXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUnVuIGFjdGl2ZSBwcm9jZWR1cmUgYWdhaW5zdCBRdW90ZURyYWZ0XG4gICAqIEBwYXJhbSBib2R5XG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBhcHBseSQoYm9keTogUXVvdGVEcmFmdCk6IE9ic2VydmFibGU8UXVvdGVEcmFmdD4ge1xuICAgIHJldHVybiB0aGlzLmJhc2VIdHRwU2VydmljZS5hcGk8UXVvdGVEcmFmdD4oe1xuICAgICAgdXJsOiBgJHt0aGlzLlNFUlZJQ0VfVVJMfS9hcHBseWAsXG4gICAgICBtZXRob2Q6ICdwb3N0JyxcbiAgICAgIGJvZHksXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
@@ -0,0 +1,153 @@
|
|
1
|
+
import { HttpParams } from '@angular/common/http';
|
2
|
+
import { Injectable } from '@angular/core';
|
3
|
+
import { noop } from 'rxjs';
|
4
|
+
import * as i0 from "@angular/core";
|
5
|
+
import * as i1 from "@veloceapps/core";
|
6
|
+
export class ProductApiService {
|
7
|
+
constructor(baseHttpService) {
|
8
|
+
this.baseHttpService = baseHttpService;
|
9
|
+
this.serviceUrl = '/products';
|
10
|
+
this.fetchProducts$ = (payload) => {
|
11
|
+
let params = new HttpParams();
|
12
|
+
params = params.append('count', payload.count);
|
13
|
+
params = params.append('skip', payload.skip);
|
14
|
+
if (payload.name) {
|
15
|
+
params = params.append('name', payload.name);
|
16
|
+
}
|
17
|
+
return this.baseHttpService.api({ url: `${this.serviceUrl}`, params });
|
18
|
+
};
|
19
|
+
this.searchProducts$ = (expression, skip, count) => {
|
20
|
+
let params = new HttpParams();
|
21
|
+
params = params.set('skip', '' + skip);
|
22
|
+
params = params.set('count', '' + count);
|
23
|
+
return this.baseHttpService.api({
|
24
|
+
method: 'post',
|
25
|
+
url: `${this.serviceUrl}/search`,
|
26
|
+
params: params,
|
27
|
+
body: expression,
|
28
|
+
});
|
29
|
+
};
|
30
|
+
this.fetchProduct$ = (id) => this.baseHttpService.api({ url: `${this.serviceUrl}/${id}` });
|
31
|
+
this.fetchAttributes$ = () => {
|
32
|
+
return this.baseHttpService.api({ url: `${this.serviceUrl}/attributes/definition` });
|
33
|
+
};
|
34
|
+
this.searchAttributes$ = (expression, skip, count) => {
|
35
|
+
let params = new HttpParams();
|
36
|
+
params = params.set('skip', '' + skip);
|
37
|
+
params = params.set('count', '' + count);
|
38
|
+
return this.baseHttpService.api({
|
39
|
+
method: 'post',
|
40
|
+
url: `${this.serviceUrl}/attributes/definition/search`,
|
41
|
+
params: params,
|
42
|
+
body: expression,
|
43
|
+
});
|
44
|
+
};
|
45
|
+
this.fetchAttributesByModel = (modelId) => {
|
46
|
+
return this.baseHttpService.api({ url: `${this.serviceUrl}/attributes/definition/forModel/${modelId}` });
|
47
|
+
};
|
48
|
+
this.createNewProduct$ = (productData) => {
|
49
|
+
return this.baseHttpService.api({
|
50
|
+
url: `${this.serviceUrl}`,
|
51
|
+
method: 'post',
|
52
|
+
body: productData,
|
53
|
+
});
|
54
|
+
};
|
55
|
+
this.updateProduct$ = (body) => {
|
56
|
+
return this.baseHttpService.api({
|
57
|
+
url: `${this.serviceUrl}/${body.id}`,
|
58
|
+
method: 'put',
|
59
|
+
body,
|
60
|
+
});
|
61
|
+
};
|
62
|
+
this.removeProduct$ = (id) => {
|
63
|
+
return this.baseHttpService.api({
|
64
|
+
url: `${this.serviceUrl}/${id}`,
|
65
|
+
method: 'delete',
|
66
|
+
});
|
67
|
+
};
|
68
|
+
this.restoreProduct$ = (id) => {
|
69
|
+
return this.baseHttpService.api({
|
70
|
+
url: `${this.serviceUrl}/${id}/restore`,
|
71
|
+
method: 'patch',
|
72
|
+
});
|
73
|
+
};
|
74
|
+
this.createProductAttribute$ = (attributeData) => {
|
75
|
+
return this.baseHttpService.api({
|
76
|
+
url: `${this.serviceUrl}/attributes`,
|
77
|
+
method: 'post',
|
78
|
+
body: attributeData,
|
79
|
+
});
|
80
|
+
};
|
81
|
+
this.updateProductAttribute$ = (attributeData) => {
|
82
|
+
return this.baseHttpService.api({
|
83
|
+
url: `${this.serviceUrl}/attributes/${attributeData.id}`,
|
84
|
+
method: 'put',
|
85
|
+
body: attributeData,
|
86
|
+
});
|
87
|
+
};
|
88
|
+
this.removeProductAttribute$ = (id) => {
|
89
|
+
return this.baseHttpService.api({
|
90
|
+
url: `${this.serviceUrl}/attributes/${id}`,
|
91
|
+
method: 'delete',
|
92
|
+
});
|
93
|
+
};
|
94
|
+
this.createNewAttribute$ = (attributeData) => {
|
95
|
+
return this.baseHttpService.api({
|
96
|
+
url: `${this.serviceUrl}/attributes/definition`,
|
97
|
+
method: 'post',
|
98
|
+
body: attributeData,
|
99
|
+
});
|
100
|
+
};
|
101
|
+
this.updateAttribute$ = (body) => {
|
102
|
+
return this.baseHttpService.api({
|
103
|
+
url: `${this.serviceUrl}/attributes/definition/${body.id}`,
|
104
|
+
method: 'put',
|
105
|
+
body,
|
106
|
+
});
|
107
|
+
};
|
108
|
+
this.removeAttribute$ = (id) => {
|
109
|
+
return this.baseHttpService.api({
|
110
|
+
url: `${this.serviceUrl}/attributes/definition/${id}`,
|
111
|
+
method: 'delete',
|
112
|
+
});
|
113
|
+
};
|
114
|
+
this.restoreAttribute$ = (id) => {
|
115
|
+
return this.baseHttpService.api({
|
116
|
+
url: `${this.serviceUrl}/attributes/definition/${id}/restore`,
|
117
|
+
method: 'patch',
|
118
|
+
});
|
119
|
+
};
|
120
|
+
}
|
121
|
+
attachImage$(productId, file) {
|
122
|
+
const data = new FormData();
|
123
|
+
data.append('image', file);
|
124
|
+
return this.baseHttpService.upload({
|
125
|
+
method: 'post',
|
126
|
+
url: `${this.serviceUrl}/${productId}/image`,
|
127
|
+
body: data,
|
128
|
+
});
|
129
|
+
}
|
130
|
+
removeImage$(productId) {
|
131
|
+
return this.baseHttpService.api({
|
132
|
+
method: 'delete',
|
133
|
+
url: `${this.serviceUrl}/${productId}/image`,
|
134
|
+
});
|
135
|
+
}
|
136
|
+
fetchImage$(productId) {
|
137
|
+
return this.baseHttpService.api({
|
138
|
+
url: this.getImageUrl(productId),
|
139
|
+
method: 'get',
|
140
|
+
responseType: 'blob',
|
141
|
+
errorHandler: noop,
|
142
|
+
});
|
143
|
+
}
|
144
|
+
getImageUrl(productId) {
|
145
|
+
return `${this.serviceUrl}/${productId}/image`;
|
146
|
+
}
|
147
|
+
}
|
148
|
+
ProductApiService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ProductApiService, deps: [{ token: i1.BaseHttpService }], target: i0.ɵɵFactoryTarget.Injectable });
|
149
|
+
ProductApiService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ProductApiService });
|
150
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ProductApiService, decorators: [{
|
151
|
+
type: Injectable
|
152
|
+
}], ctorParameters: function () { return [{ type: i1.BaseHttpService }]; } });
|
153
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1hcGkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXBpL3NyYy9saWIvc2VydmljZXMvcHJvZHVjdC1hcGkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQVkzQyxPQUFPLEVBQUUsSUFBSSxFQUFjLE1BQU0sTUFBTSxDQUFDOzs7QUFHeEMsTUFBTSxPQUFPLGlCQUFpQjtJQUc1QixZQUFvQixlQUFnQztRQUFoQyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFGbkMsZUFBVSxHQUFXLFdBQVcsQ0FBQztRQUlsRCxtQkFBYyxHQUFHLENBQUMsT0FBeUIsRUFBeUIsRUFBRTtZQUNwRSxJQUFJLE1BQU0sR0FBZSxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQzFDLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDL0MsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM3QyxJQUFJLE9BQU8sQ0FBQyxJQUFJLEVBQUU7Z0JBQ2hCLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDOUM7WUFDRCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDekUsQ0FBQyxDQUFDO1FBRUYsb0JBQWUsR0FBRyxDQUFDLFVBQXNCLEVBQUUsSUFBWSxFQUFFLEtBQWEsRUFBeUIsRUFBRTtZQUMv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QVMsUUFBUTtZQUM1QyxJQUFJLEVBQUUsSUFBSTtTQUNYLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxZQUFZLENBQUMsU0FBaUI7UUFDNUIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQztZQUM5QixNQUFNLEVBQUUsUUFBUTtZQUNoQixHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsVUFBVSxJQUFJLFNBQVMsUUFBUTtTQUM3QyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVyxDQUFDLFNBQWlCO1FBQzNCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUM7WUFDOUIsR0FBRyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDO1lBQ2hDLE1BQU0sRUFBRSxLQUFLO1lBQ2IsWUFBWSxFQUFFLE1BQU07WUFDcEIsWUFBWSxFQUFFLElBQUk7U0FDbkIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVcsQ0FBQyxTQUFpQjtRQUMzQixPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsSUFBSSxTQUFTLFFBQVEsQ0FBQztJQUNqRCxDQUFDOzsrR0FqS1UsaUJBQWlCO21IQUFqQixpQkFBaUI7NEZBQWpCLGlCQUFpQjtrQkFEN0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBdHRyaWJ1dGVEZWZpbml0aW9uLFxuICBCYXNlSHR0cFNlcnZpY2UsXG4gIEV4cHJlc3Npb24sXG4gIExhenlDaHVua1JlcXVlc3QsXG4gIE5ld0F0dHJpYnV0ZURlZmluaXRpb24sXG4gIE5ld1Byb2R1Y3QsXG4gIE5ld1Byb2R1Y3RBdHRyaWJ1dGUsXG4gIFByb2R1Y3QsXG4gIFByb2R1Y3RBdHRyaWJ1dGUsXG59IGZyb20gJ0B2ZWxvY2VhcHBzL2NvcmUnO1xuaW1wb3J0IHsgbm9vcCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUHJvZHVjdEFwaVNlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IHNlcnZpY2VVcmw6IHN0cmluZyA9ICcvcHJvZHVjdHMnO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYmFzZUh0dHBTZXJ2aWNlOiBCYXNlSHR0cFNlcnZpY2UpIHt9XG5cbiAgZmV0Y2hQcm9kdWN0cyQgPSAocGF5bG9hZDogTGF6eUNodW5rUmVxdWVzdCk6IE9ic2VydmFibGU8UHJvZHVjdFtdPiA9PiB7XG4gICAgbGV0IHBhcmFtczogSHR0cFBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCk7XG4gICAgcGFyYW1zID0gcGFyYW1zLmFwcGVuZCgnY291bnQnLCBwYXlsb2FkLmNvdW50KTtcbiAgICBwYXJhbXMgPSBwYXJhbXMuYXBwZW5kKCdza2lwJywgcGF5bG9hZC5za2lwKTtcbiAgICBpZiAocGF5bG9hZC5uYW1lKSB7XG4gICAgICBwYXJhbXMgPSBwYXJhbXMuYXBwZW5kKCduYW1lJywgcGF5bG9hZC5uYW1lKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuYmFzZUh0dHBTZXJ2aWNlLmFwaSh7IHVybDogYCR7dGhpcy5zZXJ2aWNlVXJsfWAsIHBhcmFtcyB9KTtcbiAgfTtcblxuICBzZWFyY2hQcm9kdWN0cyQgPSAoZXhwcmVzc2lvbjogRXhwcmVzc2lvbiwgc2tpcDogbnVtYmVyLCBjb3VudDogbnVtYmVyKTogT2JzZXJ2YWJsZTxQcm9kdWN0W10+ID0+IHtcbiAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKTtcbiAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdza2lwJywgJycgKyBza2lwKTtcbiAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdjb3VudCcsICcnICsgY291bnQpO1xuICAgIHJldHVybiB0aGlzLmJhc2VIdHRwU2VydmljZS5hcGkoe1xuICAgICAgbWV0aG9kOiAncG9zdCcsXG4gICAgICB1cmw6IGAke3RoaXMuc2VydmljZVVybH0vc2VhcmNoYCxcbiAgICAgIHBhcmFtczogcGFyYW1zLFxuICAgICAgYm9keTogZXhwcmVzc2lvbixcbiAgICB9KTtcbiAgfTtcblxuICBmZXRjaFByb2R1Y3QkID0gKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFByb2R1Y3Q+ID0+IHRoaXMuYmFzZUh0dHBTZXJ2aWNlLmFwaSh7IHVybDogYCR7dGhpcy5zZXJ2aWNlVXJsfS8ke2lkfWAgfSk7XG5cbiAgZmV0Y2hBdHRyaWJ1dGVzJCA9ICgpOiBPYnNlcnZhYmxlPEF0dHJpYnV0ZURlZmluaXRpb25bXT4gPT4ge1xuICAgIHJldHVybiB0aGlzLmJhc2VIdHRwU2VydmljZS5hcGkoeyB1cmw6IGAke3RoaXMuc2VydmljZVVybH0vYXR0cmlidXRlcy9kZWZpbml0aW9uYCB9KTtcbiAgfTtcblxuICBzZWFyY2hBdHRyaWJ1dGVzJCA9IChleHByZXNzaW9uOiBFeHByZXNzaW9uLCBza2lwOiBudW1iZXIsIGNvdW50OiBudW1iZXIpOiBPYnNlcnZhYmxlPEF0dHJpYnV0ZURlZmluaXRpb25bXT4gPT4ge1xuICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpO1xuICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ3NraXAnLCAnJyArIHNraXApO1xuICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ2NvdW50JywgJycgKyBjb3VudCk7XG4gICAgcmV0dXJuIHRoaXMuYmFzZUh0dHBTZXJ2aWNlLmFwaSh7XG4gICAgICBtZXRob2Q6ICdwb3N0JyxcbiAgICAgIHVybDogYCR7dGhpcy5zZXJ2aWNlVXJsfS9hdHRyaWJ1dGVzL2RlZmluaXRpb24vc2VhcmNoYCxcbiAgICAgIHBhcmFtczogcGFyYW1zLFxuICAgICAgYm9keTogZXhwcmVzc2lvbixcbiAgICB9KTtcbiAgfTtcblxuICBmZXRjaEF0dHJpYnV0ZXNCeU1vZGVsID0gKG1vZGVsSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8QXR0cmlidXRlRGVmaW5pdGlvbltdPiA9PiB7XG4gICAgcmV0dXJuIHRoaXMuYmFzZUh0dHBTZXJ2aWNlLmFwaSh7IHVybDogYCR7dGhpcy5zZXJ2aWNlVXJsfS9hdHRyaWJ1dGVzL2RlZmluaXRpb24vZm9yTW9kZWwvJHttb2RlbElkfWAgfSk7XG4gIH07XG5cbiAgY3JlYXRlTmV3UHJvZHVjdCQgPSAocHJvZHVjdERhdGE6IE5ld1Byb2R1Y3QpOiBPYnNlcnZhYmxlPFByb2R1Y3Q+ID0+IHtcbiAgICByZXR1cm4gdGhpcy5iYXNlSHR0cFNlcnZpY2UuYXBpKHtcbiAgICAgIHVybDogYCR7dGhpcy5zZXJ2aWNlVXJsfWAsXG4gICAgICBtZXRob2Q6ICdwb3N0JyxcbiAgICAgIGJvZHk6IHByb2R1Y3REYXRhLFxuICAgIH0pO1xuICB9O1xuXG4gIHVwZGF0ZVByb2R1Y3QkID0gKGJvZHk6IFByb2R1Y3QpOiBPYnNlcnZhYmxlPFByb2R1Y3Q+ID0+IHtcbiAgICByZXR1cm4gdGhpcy5iYXNlSHR0cFNlcnZpY2UuYXBpKHtcbiAgICAgIHVybDogYCR7dGhpcy5zZXJ2aWNlVXJsfS8ke2JvZHkuaWR9YCxcbiAgICAgIG1ldGhvZDogJ3B1dCcsXG4gICAgICBib2R5LFxuICAgIH0pO1xuICB9O1xuXG4gIHJlbW92ZVByb2R1Y3QkID0gKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHN0cmluZz4gPT4ge1xuICAgIHJldHVybiB0aGlzLmJhc2VIdHRwU2VydmljZS5hcGkoe1xuICAgICAgdXJsOiBgJHt0aGlzLnNlcnZpY2VVcmx9LyR7aWR9YCxcbiAgICAgIG1ldGhvZDogJ2RlbGV0ZScsXG4gICAgfSk7XG4gIH07XG5cbiAgcmVzdG9yZVByb2R1Y3QkID0gKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHZvaWQ+ID0+IHtcbiAgICByZXR1cm4gdGhpcy5iYXNlSHR0cFNlcnZpY2UuYXBpKHtcbiAgICAgIHVybDogYCR7dGhpcy5zZXJ2aWNlVXJsfS8ke2lkfS9yZXN0b3JlYCxcbiAgICAgIG1ldGhvZDogJ3BhdGNoJyxcbiAgICB9KTtcbiAgfTtcblxuICBjcmVhdGVQcm9kdWN0QXR0cmlidXRlJCA9IChhdHRyaWJ1dGVEYXRhOiBOZXdQcm9kdWN0QXR0cmlidXRlKTogT2JzZXJ2YWJsZTxBdHRyaWJ1dGVEZWZpbml0aW9uPiA9PiB7XG4gICAgcmV0dXJuIHRoaXMuYmFzZUh0dHBTZXJ2aWNlLmFwaSh7XG4gICAgICB1cmw6IGAke3RoaXMuc2VydmljZVVybH0vYXR0cmlidXRlc2AsXG4gICAgICBtZXRob2Q6ICdwb3N0JyxcbiAgICAgIGJvZHk6IGF0dHJpYnV0ZURhdGEsXG4gICAgfSk7XG4gIH07XG5cbiAgdXBkYXRlUHJvZHVjdEF0dHJpYnV0ZSQgPSAoYXR0cmlidXRlRGF0YTogUHJvZHVjdEF0dHJpYnV0ZSk6IE9ic2VydmFibGU8QXR0cmlidXRlRGVmaW5pdGlvbj4gPT4ge1xuICAgIHJldHVybiB0aGlzLmJhc2VIdHRwU2VydmljZS5hcGkoe1xuICAgICAgdXJsOiBgJHt0aGlzLnNlcnZpY2VVcmx9L2F0dHJpYnV0ZXMvJHthdHRyaWJ1dGVEYXRhLmlkfWAsXG4gICAgICBtZXRob2Q6ICdwdXQnLFxuICAgICAgYm9keTogYXR0cmlidXRlRGF0YSxcbiAgICB9KTtcbiAgfTtcblxuICByZW1vdmVQcm9kdWN0QXR0cmlidXRlJCA9IChpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTx2b2lkPiA9PiB7XG4gICAgcmV0dXJuIHRoaXMuYmFzZUh0dHBTZXJ2aWNlLmFwaSh7XG4gICAgICB1cmw6IGAke3RoaXMuc2VydmljZVVybH0vYXR0cmlidXRlcy8ke2lkfWAsXG4gICAgICBtZXRob2Q6ICdkZWxldGUnLFxuICAgIH0pO1xuICB9O1xuXG4gIGNyZWF0ZU5ld0F0dHJpYnV0ZSQgPSAoYXR0cmlidXRlRGF0YTogTmV3QXR0cmlidXRlRGVmaW5pdGlvbik6IE9ic2VydmFibGU8QXR0cmlidXRlRGVmaW5pdGlvbj4gPT4ge1xuICAgIHJldHVybiB0aGlzLmJhc2VIdHRwU2VydmljZS5hcGkoe1xuICAgICAgdXJsOiBgJHt0aGlzLnNlcnZpY2VVcmx9L2F0dHJpYnV0ZXMvZGVmaW5pdGlvbmAsXG4gICAgICBtZXRob2Q6ICdwb3N0JyxcbiAgICAgIGJvZHk6IGF0dHJpYnV0ZURhdGEsXG4gICAgfSk7XG4gIH07XG5cbiAgdXBkYXRlQXR0cmlidXRlJCA9IChib2R5OiBBdHRyaWJ1dGVEZWZpbml0aW9uKTogT2JzZXJ2YWJsZTxBdHRyaWJ1dGVEZWZpbml0aW9uPiA9PiB7XG4gICAgcmV0dXJuIHRoaXMuYmFzZUh0dHBTZXJ2aWNlLmFwaSh7XG4gICAgICB1cmw6IGAke3RoaXMuc2VydmljZVVybH0vYXR0cmlidXRlcy9kZWZpbml0aW9uLyR7Ym9keS5pZH1gLFxuICAgICAgbWV0aG9kOiAncHV0JyxcbiAgICAgIGJvZHksXG4gICAgfSk7XG4gIH07XG5cbiAgcmVtb3ZlQXR0cmlidXRlJCA9IChpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTx2b2lkPiA9PiB7XG4gICAgcmV0dXJuIHRoaXMuYmFzZUh0dHBTZXJ2aWNlLmFwaSh7XG4gICAgICB1cmw6IGAke3RoaXMuc2VydmljZVVybH0vYXR0cmlidXRlcy9kZWZpbml0aW9uLyR7aWR9YCxcbiAgICAgIG1ldGhvZDogJ2RlbGV0ZScsXG4gICAgfSk7XG4gIH07XG5cbiAgcmVzdG9yZUF0dHJpYnV0ZSQgPSAoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8dm9pZD4gPT4ge1xuICAgIHJldHVybiB0aGlzLmJhc2VIdHRwU2VydmljZS5hcGkoe1xuICAgICAgdXJsOiBgJHt0aGlzLnNlcnZpY2VVcmx9L2F0dHJpYnV0ZXMvZGVmaW5pdGlvbi8ke2lkfS9yZXN0b3JlYCxcbiAgICAgIG1ldGhvZDogJ3BhdGNoJyxcbiAgICB9KTtcbiAgfTtcblxuICBhdHRhY2hJbWFnZSQocHJvZHVjdElkOiBzdHJpbmcsIGZpbGU6IEZpbGUpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICBjb25zdCBkYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgZGF0YS5hcHBlbmQoJ2ltYWdlJywgZmlsZSk7XG5cbiAgICByZXR1cm4gdGhpcy5iYXNlSHR0cFNlcnZpY2UudXBsb2FkKHtcbiAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgdXJsOiBgJHt0aGlzLnNlcnZpY2VVcmx9LyR7cHJvZHVjdElkfS9pbWFnZWAsXG4gICAgICBib2R5OiBkYXRhLFxuICAgIH0pO1xuICB9XG5cbiAgcmVtb3ZlSW1hZ2UkKHByb2R1Y3RJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuYmFzZUh0dHBTZXJ2aWNlLmFwaSh7XG4gICAgICBtZXRob2Q6ICdkZWxldGUnLFxuICAgICAgdXJsOiBgJHt0aGlzLnNlcnZpY2VVcmx9LyR7cHJvZHVjdElkfS9pbWFnZWAsXG4gICAgfSk7XG4gIH1cblxuICBmZXRjaEltYWdlJChwcm9kdWN0SWQ6IHN0cmluZyk6IE9ic2VydmFibGU8RmlsZT4ge1xuICAgIHJldHVybiB0aGlzLmJhc2VIdHRwU2VydmljZS5hcGkoe1xuICAgICAgdXJsOiB0aGlzLmdldEltYWdlVXJsKHByb2R1Y3RJZCksXG4gICAgICBtZXRob2Q6ICdnZXQnLFxuICAgICAgcmVzcG9uc2VUeXBlOiAnYmxvYicsXG4gICAgICBlcnJvckhhbmRsZXI6IG5vb3AsXG4gICAgfSk7XG4gIH1cblxuICBnZXRJbWFnZVVybChwcm9kdWN0SWQ6IHN0cmluZykge1xuICAgIHJldHVybiBgJHt0aGlzLnNlcnZpY2VVcmx9LyR7cHJvZHVjdElkfS9pbWFnZWA7XG4gIH1cbn1cbiJdfQ==
|
@@ -0,0 +1,232 @@
|
|
1
|
+
import { Injectable } from '@angular/core';
|
2
|
+
import { EntityUtil, ModelTranslatorUtils, ModelUtils, ProductModelsContainer, } from '@veloceapps/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 "@veloceapps/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.17", ngImport: i0, type: ProductModelApiService, deps: [{ token: i1.BaseHttpService }], target: i0.ɵɵFactoryTarget.Injectable });
|
228
|
+
ProductModelApiService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ProductModelApiService });
|
229
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ProductModelApiService, decorators: [{
|
230
|
+
type: Injectable
|
231
|
+
}], ctorParameters: function () { return [{ type: i1.BaseHttpService }]; } });
|
232
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1tb2RlbC1hcGkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXBpL3NyYy9saWIvc2VydmljZXMvcHJvZHVjdC1tb2RlbC1hcGkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFFTCxVQUFVLEVBRVYsb0JBQW9CLEVBQ3BCLFVBQVUsRUFHVixzQkFBc0IsR0FFdkIsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQUUsUUFBUSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQUdqRCxNQUFNLE9BQU8sc0JBQXNCO0lBS2pDLFlBQW9CLFdBQTRCO1FBQTVCLGdCQUFXLEdBQVgsV0FBVyxDQUFpQjtRQUYvQixnQkFBVyxHQUFHLFNBQVMsQ0FBQztJQUVVLENBQUM7SUFFcEQsUUFBUSxDQUFDLEtBQW1CO1FBQzFCLE9BQU8sSUFBSSxDQUFDLFdBQVc7YUFDcEIsR0FBRyxDQUFDO1lBQ0gsTUFBTSxFQUFFLE1BQU07WUFDZCxHQUFHLEVBQUUsSUFBSSxDQUFDLFdBQVc7WUFDckIsSUFBSSxFQUFFLEtBQUs7WUFDWCxZQUFZLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxxQkFBcUI7U0FDckQsQ0FBQzthQUNELElBQUksQ0FDSCxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDWCxJQUFJLE1BQU0sQ0FBQyxVQUFVLEVBQUU7Z0JBQ3JCLE9BQU8sTUFBTSxDQUFDO2FBQ2Y7aUJBQU07Z0JBQ0wsTUFBTSxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDakM7UUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ04sQ0FBQztJQUVELFlBQVksQ0FBQyxLQUEw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O2dCQUNKLEdBQUc7Z0JBQ0gsUUFBUTtnQkFDUixpQkFBaUI7YUFDbEI7WUFDRCxZQUFZLEVBQUUsTUFBTTtTQUNyQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsYUFBYTtRQUNYLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUM7WUFDMUIsTUFBTSxFQUFFLEtBQUs7WUFDYixHQUFHLEVBQUUsb0NBQW9DO1NBQzFDLENBQUMsQ0FBQztJQUNMLENBQUM7O0FBdFFhLGtDQUFXLEdBQUcsR0FBRyxDQUFDO29IQURyQixzQkFBc0I7d0hBQXRCLHNCQUFzQjs0RkFBdEIsc0JBQXNCO2tCQURsQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQmFzZUh0dHBTZXJ2aWNlLFxuICBFbnRpdHlVdGlsLFxuICBNb2RlbFJlbGVhc2VSZXF1ZXN0LFxuICBNb2RlbFRyYW5zbGF0b3JVdGlscyxcbiAgTW9kZWxVdGlscyxcbiAgUG1sQ29uZmlndXJhdGlvbk1vZGUsXG4gIFByb2R1Y3RNb2RlbCxcbiAgUHJvZHVjdE1vZGVsc0NvbnRhaW5lcixcbiAgUHJvZHVjdE1vZGVsVmVyc2lvbixcbn0gZnJvbSAnQHZlbG9jZWFwcHMvY29yZSc7XG5pbXBvcnQgeyBmb3JrSm9pbiwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUHJvZHVjdE1vZGVsQXBpU2VydmljZSB7XG4gIHB1YmxpYyBzdGF0aWMgTUFYX1JFU1VMVFMgPSAyMDA7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBTRVJWSUNFX1VSTCA9ICcvbW9kZWxzJztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHBTZXJ2aWNlOiBCYXNlSHR0cFNlcnZpY2UpIHt9XG5cbiAgYWRkTW9kZWwobW9kZWw6IFByb2R1Y3RNb2RlbCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2VcbiAgICAgIC5hcGkoe1xuICAgICAgICBtZXRob2Q6ICdwb3N0JyxcbiAgICAgICAgdXJsOiB0aGlzLlNFUlZJQ0VfVVJMLFxuICAgICAgICBib2R5OiBtb2RlbCxcbiAgICAgICAgZXJyb3JIYW5kbGVyOiB0aGlzLmh0dHBTZXJ2aWNlLmhhbmRsZVZhbGlkYXRpb25FcnJvcixcbiAgICAgIH0pXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKHJlc3VsdCA9PiB7XG4gICAgICAgICAgaWYgKHJlc3VsdC5zdWNjZXNzZnVsKSB7XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IocmVzdWx0Lm1lc3NhZ2UpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSksXG4gICAgICApO1xuICB9XG5cbiAgcmVsZWFzZU1vZGVsKG1vZGVsOiBNb2RlbFJlbGVhc2VSZXF1ZXN0KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZVxuICAgICAgLmFwaSh7XG4gICAgICAgIG1ldGhvZDogJ3B1dCcsXG4gICAgICAgIHVybDogYCR7dGhpcy5TRVJWSUNFX1VSTH0vJHttb2RlbC5pZH0vcmVsZWFzZWAsXG4gICAgICAgIGJvZHk6IG1vZGVsLFxuICAgICAgICBlcnJvckhhbmRsZXI6IHRoaXMuaHR0cFNlcnZpY2UuaGFuZGxlVmFsaWRhdGlvbkVycm9yLFxuICAgICAgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAocmVzdWx0ID0+IHtcbiAgICAgICAgICBpZiAocmVzdWx0LnN1Y2Nlc3NmdWwpIHtcbiAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKHJlc3VsdC5tZXNzYWdlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgfVxuXG4gIHJlbW92ZU1vZGVsKG1vZGVsSWQ6IHN0cmluZywgc3VjY2Vzc0ZuPzogYW55LCBmYWlsdXJlRm4/OiBhbnkpOiB2b2lkIHtcbiAgICBjb25zdCBvYnNlcnZhYmxlID0gdGhpcy5odHRwU2VydmljZVxuICAgICAgLmFwaSh7XG4gICAgICAgIG1ldGhvZDogJ2RlbGV0ZScsXG4gICAgICAgIHVybDogYCR7dGhpcy5TRVJWSUNFX1VSTH0vJHttb2RlbElkfWAsXG4gICAgICAgIGVycm9ySGFuZGxlcjogdGhpcy5odHRwU2VydmljZS5oYW5kbGVWYWxpZGF0aW9uRXJyb3IsXG4gICAgICB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcChyZXN1bHQgPT4ge1xuICAgICAgICAgIGlmIChyZXN1bHQuc3VjY2Vzc2Z1bCkge1xuICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IocmVzdWx0Lm1lc3NhZ2UpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSksXG4gICAgICApO1xuXG4gICAgb2JzZXJ2YWJsZS5zdWJzY3JpYmUoXG4gICAgICAoKSA9PiB7XG4gICAgICAgIHN1Y2Nlc3NGbiAmJiBzdWNjZXNzRm4uYXBwbHkoKTtcbiAgICAgIH0sXG4gICAgICAoKSA9PiB7XG4gICAgICAgIGZhaWx1cmVGbiAmJiBmYWlsdXJlRm4uYXBwbHkoKTtcbiAgICAgIH0sXG4gICAgKTtcbiAgfVxuXG4gIGdldE1vZGVsVmVyc2lvbnMobW9kZWxJZDogc3RyaW5nLCBjb3VudDogbnVtYmVyID0gMTAwLCBza2lwOiBudW1iZXIgPSAwKTogT2JzZXJ2YWJsZTxQcm9kdWN0TW9kZWxWZXJzaW9uW10+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5hcGkoe1xuICAgICAgbWV0aG9kOiAncG9zdCcsXG4gICAgICB1cmw6IGAke3RoaXMuU0VSVklDRV9VUkx9LyR7bW9kZWxJZH0vdmVyc2lvbnNgLFxuICAgICAgYm9keToge1xuICAgICAgICBza2lwQ291bnQ6IHNraXAsXG4gICAgICAgIGNvdW50OiBjb3VudCxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBnZXRNb2RlbChpZDogc3RyaW5nLCB2ZXJzaW9uPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxQcm9kdWN0TW9kZWw+IHtcbiAgICBsZXQgdXJsID0gYCR7dGhpcy5TRVJWSUNFX1VSTH0vJHtpZH1gO1xuXG4gICAgaWYgKHZlcnNpb24pIHtcbiAgICAgIHVybCArPSBgL3ZlcnNpb25zLyR7dmVyc2lvbn1gO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLmFwaSh7IHVybCB9KTtcbiAgfVxuXG4gIGdldE1vZGVscyhza2lwQ291bnQ6IG51bWJlciwgc2VhcmNoVGV4dDogc3RyaW5nKTogT2JzZXJ2YWJsZTxQcm9kdWN0TW9kZWxbXT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLmFwaSh7XG4gICAgICBtZXRob2Q6ICdwb3N0JyxcbiAgICAgIHVybDogYCR7dGhpcy5TRVJWSUNFX1VSTH0vc2VhcmNoYCxcbiAgICAgIGJvZHk6IHtcbiAgICAgICAgbmFtZVJlZ2V4OiBzZWFyY2hUZXh0LFxuICAgICAgICBza2lwQ291bnQ6IHNraXBDb3VudC50b1N0cmluZygpLFxuICAgICAgICBjb3VudDogUHJvZHVjdE1vZGVsQXBpU2VydmljZS5NQVhfUkVTVUxUUyxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBnZXRMaW5rZWRNb2RlbHMoaWQ6IHN0cmluZywgdmVyc2lvbj86IHN0cmluZyk6IE9ic2VydmFibGU8UHJvZHVjdE1vZGVsW10+IHtcbiAgICBsZXQgdXJsID0gYCR7dGhpcy5TRVJWSUNFX1VSTH0vJHtpZH1gO1xuXG4gICAgaWYgKHZlcnNpb24pIHtcbiAgICAgIHVybCArPSBgL3ZlcnNpb25zLyR7dmVyc2lvbn1gO1xuICAgIH1cblxuICAgIHVybCArPSAnL2xpbmtlZCc7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5hcGkoeyB1cmwgfSkucGlwZShcbiAgICAgIG1hcCgobGlua2VkTW9kZWxzOiBQcm9kdWN0TW9kZWxbXSkgPT4ge1xuICAgICAgICBpZiAobGlua2VkTW9kZWxzKSB7XG4gICAgICAgICAgbGlua2VkTW9kZWxzLmZvckVhY2gobW9kZWwgPT4gTW9kZWxUcmFuc2xhdG9yVXRpbHMudG9Mb2NhbE1vZGVsKG1vZGVsKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGxpbmtlZE1vZGVscztcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBsb2FkKGlkOiBzdHJpbmcsIHZlcnNpb24/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPFByb2R1Y3RNb2RlbHNDb250YWluZXI+IHtcbiAgICByZXR1cm4gZm9ya0pvaW4oW3RoaXMuZ2V0TW9kZWwoaWQsIHZlcnNpb24pLCB0aGlzLmdldExpbmtlZE1vZGVscyhpZCwgdmVyc2lvbildKS5waXBlKFxuICAgICAgbWFwKChbbW9kZWwsIGxpbmtlZE1vZGVsc10pID0+IHtcbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gbmV3IFByb2R1Y3RNb2RlbHNDb250YWluZXIobW9kZWwsIGxpbmtlZE1vZGVscyA/PyBbXSk7XG5cbiAgICAgICAgTW9kZWxVdGlscy5vdmVycmlkZShjb250YWluZXIubWFpbiwgY29udGFpbmVyLmxpbmtlZCk7XG4gICAgICAgIE1vZGVsVHJhbnNsYXRvclV0aWxzLnRvTG9jYWxNb2RlbChjb250YWluZXIubWFpbiwgY29udGFpbmVyLmxpbmtlZCk7XG5cbiAgICAgICAgcmV0dXJuIGNvbnRhaW5lcjtcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBnZXRQTUwobW9kZWxJZDogc3RyaW5nLCB2ZXJzaW9uPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgdXJsID0gYCR7dGhpcy5TRVJWSUNFX1VSTH0vJHttb2RlbElkfS9wbWwvJHt2ZXJzaW9ufWA7XG5cbiAgICBpZiAodmVyc2lvbikge1xuICAgICAgdXJsICs9IGAvdmVyc2lvbnMvJHt2ZXJzaW9ufWA7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UuYXBpKHtcbiAgICAgIHVybCxcbiAgICAgIHJlc3BvbnNlVHlwZTogJ3RleHQnLFxuICAgIH0pO1xuICB9XG5cbiAgc2F2ZVBNTChtb2RlbElkOiBzdHJpbmcsIHBtbDogc3RyaW5nLCBjb21tZW50OiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlXG4gICAgICAuYXBpKHtcbiAgICAgICAgbWV0aG9kOiAncHV0JyxcbiAgICAgICAgdXJsOiBgJHt0aGlzLlNFUlZJQ0VfVVJMfS8ke21vZGVsSWR9L3BtbGAsXG4gICAgICAgIGJvZHk6IHtcbiAgICAgICAgICBpZDogbW9kZWxJZCxcbiAgICAgICAgICBwbWw6IHBtbCxcbiAgICAgICAgICBjb21tZW50OiBjb21tZW50LFxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAocmVzdWx0ID0+IHtcbiAgICAgICAgICBpZiAocmVzdWx0LnN1Y2Nlc3NmdWwpIHtcbiAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKHJlc3VsdC5tZXNzYWdlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgICBjYXRjaEVycm9yKHRoaXMuaHR0cFNlcnZpY2UuaGFuZGxlVmFsaWRhdGlvbkVycm9yKSxcbiAgICAgICk7XG4gIH1cblxuICBnZW5lcmF0ZVByb2R1Y3RzKG1vZGVsSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8UHJvZHVjdE1vZGVsPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UuYXBpKHtcbiAgICAgIHVybDogYCR7dGhpcy5TRVJWSUNFX1VSTH0vJHttb2RlbElkfS9nZW5lcmF0ZS1wcm9kdWN0c2AsXG4gICAgfSk7XG4gIH1cblxuICBzYXZlTW9kZWwocHJvZHVjdE1vZGVsOiBQcm9kdWN0TW9kZWwsIGNvbW1lbnQ6IHN0cmluZyk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgY29uc3QgbW9kZWwgPSBFbnRpdHlVdGlsLmNsb25lKHByb2R1Y3RNb2RlbCk7XG4gICAgbW9kZWwuY29tbWVudCA9IGNvbW1lbnQ7XG4gICAgTW9kZWxUcmFuc2xhdG9yVXRpbHMudG9TZXJ2ZXJNb2RlbChtb2RlbCk7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZVxuICAgICAgLmFwaSh7XG4gICAgICAgIG1ldGhvZDogJ3B1dCcsXG4gICAgICAgIHVybDogYCR7dGhpcy5TRVJWSUNFX1VSTH0vJHttb2RlbC5pZH1gLFxuICAgICAgICBib2R5OiBtb2RlbCxcbiAgICAgIH0pXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKHJlc3VsdCA9PiB7XG4gICAgICAgICAgaWYgKHJlc3VsdC5zdWNjZXNzZnVsKSB7XG4gICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihyZXN1bHQubWVzc2FnZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KSxcbiAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmh0dHBTZXJ2aWNlLmhhbmRsZVZhbGlkYXRpb25FcnJvciksXG4gICAgICApO1xuICB9XG5cbiAgdmFsaWRhdGVNb2RlbChwcm9kdWN0TW9kZWw6IFByb2R1Y3RNb2RlbCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2VcbiAgICAgIC5hcGkoe1xuICAgICAgICBtZXRob2Q6ICdwb3N0JyxcbiAgICAgICAgdXJsOiBgJHt0aGlzLlNFUlZJQ0VfVVJMfS92YWxpZGF0ZWAsXG4gICAgICAgIGJvZHk6IHByb2R1Y3RNb2RlbCxcbiAgICAgICAgZXJyb3JIYW5kbGVyOiB0aGlzLmh0dHBTZXJ2aWNlLmhhbmRsZVZhbGlkYXRpb25FcnJvcixcbiAgICAgIH0pXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKHJlc3VsdCA9PiB7XG4gICAgICAgICAgaWYgKHJlc3VsdC5zdWNjZXNzZnVsKSB7XG4gICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihyZXN1bHQubWVzc2FnZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KSxcbiAgICAgICk7XG4gIH1cblxuICByZW5hbWVNb2RlbChwcm9kdWN0TW9kZWw6IFByb2R1Y3RNb2RlbCwgbmFtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCBtb2RlbCA9IEVudGl0eVV0aWwuY2xvbmUocHJvZHVjdE1vZGVsKTtcbiAgICBtb2RlbC5uYW1lID0gbmFtZTtcbiAgICBNb2RlbFRyYW5zbGF0b3JVdGlscy50b1NlcnZlck1vZGVsKG1vZGVsKTtcblxuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlXG4gICAgICAuYXBpKHtcbiAgICAgICAgbWV0aG9kOiAncGF0Y2gnLFxuICAgICAgICB1cmw6IGAke3RoaXMuU0VSVklDRV9VUkx9LyR7bW9kZWwuaWR9YCxcbiAgICAgICAgYm9keTogbW9kZWwsXG4gICAgICB9KVxuICAgICAgLnBpcGUoY2F0Y2hFcnJvcih0aGlzLmh0dHBTZXJ2aWNlLmhhbmRsZVZhbGlkYXRpb25FcnJvcikpO1xuICB9XG5cbiAgdXBsb2FkUG1sRmlsZShmaWxlOiBGaWxlLCBtb2RlbElkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IGZvcm1EYXRhOiBGb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgIGZvcm1EYXRhLmFwcGVuZCgnZmlsZScsIGZpbGUsIGZpbGUubmFtZSk7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS51cGxvYWQoe1xuICAgICAgdXJsOiBgJHt0aGlzLlNFUlZJQ0VfVVJMfS8ke21vZGVsSWR9L3BtbC91cGxvYWRgLFxuICAgICAgYm9keTogZm9ybURhdGEsXG4gICAgfSk7XG4gIH1cblxuICBydW5QbWwobW9kZWxJZDogc3RyaW5nLCBwbWw6IHN0cmluZywgcm9vdFR5cGU6IHN0cmluZywgY29uZmlndXJhdGlvbk1vZGU6IFBtbENvbmZpZ3VyYXRpb25Nb2RlKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5hcGkoe1xuICAgICAgbWV0aG9kOiAncG9zdCcsXG4gICAgICB1cmw6IGAke3RoaXMuU0VSVklDRV9VUkx9LyR7bW9kZWxJZH0vcG1sL3J1bmAsXG4gICAgICBib2R5OiB7XG4gICAgICAgIHBtbCxcbiAgICAgICAgcm9vdFR5cGUsXG4gICAgICAgIGNvbmZpZ3VyYXRpb25Nb2RlLFxuICAgICAgfSxcbiAgICAgIHJlc3BvbnNlVHlwZTogJ3RleHQnLFxuICAgIH0pO1xuICB9XG5cbiAgZXZpY3RBbGxDYWNoZSgpOiBPYnNlcnZhYmxlPHsgcmVzdWx0OiBzdHJpbmcgfT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLmFwaSh7XG4gICAgICBtZXRob2Q6ICdnZXQnLFxuICAgICAgdXJsOiAnL2NhY2hlL2V2aWN0L2Vudmlyb25tZW50LXZhcmlhYmxlcycsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|