@spartacus/core
Version:
Spartacus - the core framework
41 lines • 6.91 kB
JavaScript
import { Injectable } from '@angular/core';
import { PRODUCT_NORMALIZER } from '../../../product/connectors/product/converters';
import * as i0 from "@angular/core";
import * as i1 from "@angular/common/http";
import * as i2 from "../../services/occ-endpoints.service";
import * as i3 from "../../../util/converter.service";
import * as i4 from "../../services/occ-requests-optimizer.service";
export class OccProductAdapter {
constructor(http, occEndpoints, converter, requestsOptimizer) {
this.http = http;
this.occEndpoints = occEndpoints;
this.converter = converter;
this.requestsOptimizer = requestsOptimizer;
}
load(productCode, scope) {
return this.http
.get(this.getEndpoint(productCode, scope))
.pipe(this.converter.pipeable(PRODUCT_NORMALIZER));
}
loadMany(products) {
const scopedDataWithUrls = products.map((model) => ({
scopedData: model,
url: this.getEndpoint(model.code, model.scope),
}));
return this.requestsOptimizer
.scopedDataLoad(scopedDataWithUrls)
.map((scopedProduct) => (Object.assign(Object.assign({}, scopedProduct), { data$: scopedProduct.data$.pipe(this.converter.pipeable(PRODUCT_NORMALIZER)) })));
}
getEndpoint(code, scope) {
return this.occEndpoints.buildUrl('product', {
urlParams: { productCode: code },
scope,
});
}
}
OccProductAdapter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: OccProductAdapter, deps: [{ token: i1.HttpClient }, { token: i2.OccEndpointsService }, { token: i3.ConverterService }, { token: i4.OccRequestsOptimizerService }], target: i0.ɵɵFactoryTarget.Injectable });
OccProductAdapter.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: OccProductAdapter });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: OccProductAdapter, decorators: [{
type: Injectable
}], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.OccEndpointsService }, { type: i3.ConverterService }, { type: i4.OccRequestsOptimizerService }]; } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2NjLXByb2R1Y3QuYWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL29jYy9hZGFwdGVycy9wcm9kdWN0L29jYy1wcm9kdWN0LmFkYXB0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQU0zQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQzs7Ozs7O0FBUXBGLE1BQU0sT0FBTyxpQkFBaUI7SUFDNUIsWUFDWSxJQUFnQixFQUNoQixZQUFpQyxFQUNqQyxTQUEyQixFQUMzQixpQkFBOEM7UUFIOUMsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFDakMsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDM0Isc0JBQWlCLEdBQWpCLGlCQUFpQixDQUE2QjtJQUN2RCxDQUFDO0lBRUosSUFBSSxDQUFDLFdBQW1CLEVBQUUsS0FBYztRQUN0QyxPQUFPLElBQUksQ0FBQyxJQUFJO2FBQ2IsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxDQUFDO2FBQ3pDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELFFBQVEsQ0FBQyxRQUE2QjtRQUNwQyxNQUFNLGtCQUFrQixHQUF3QixRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZFLFVBQVUsRUFBRSxLQUFLO1lBQ2pCLEdBQUcsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQztTQUMvQyxDQUFDLENBQUMsQ0FBQztRQUVKLE9BQU8sSUFBSSxDQUFDLGlCQUFpQjthQUMxQixjQUFjLENBQWMsa0JBQWtCLENBQUM7YUFDL0MsR0FBRyxDQUNGLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FDaEIsQ0FBQyxnQ0FDSSxhQUFhLEtBQ2hCLEtBQUssRUFBRSxhQUFhLENBQUMsS0FBSyxDQUFDLElBQUksQ0FDN0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsQ0FDNUMsR0FDb0IsQ0FBQSxDQUMxQixDQUFDO0lBQ04sQ0FBQztJQUVTLFdBQVcsQ0FBQyxJQUFZLEVBQUUsS0FBYztRQUNoRCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRTtZQUMzQyxTQUFTLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFO1lBQ2hDLEtBQUs7U0FDTixDQUFDLENBQUM7SUFDTCxDQUFDOzs4R0F0Q1UsaUJBQWlCO2tIQUFqQixpQkFBaUI7MkZBQWpCLGlCQUFpQjtrQkFEN0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFByb2R1Y3RBZGFwdGVyIH0gZnJvbSAnLi4vLi4vLi4vcHJvZHVjdC9jb25uZWN0b3JzL3Byb2R1Y3QvcHJvZHVjdC5hZGFwdGVyJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBPY2NFbmRwb2ludHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvb2NjLWVuZHBvaW50cy5zZXJ2aWNlJztcbmltcG9ydCB7IENvbnZlcnRlclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi91dGlsL2NvbnZlcnRlci5zZXJ2aWNlJztcbmltcG9ydCB7IFBST0RVQ1RfTk9STUFMSVpFUiB9IGZyb20gJy4uLy4uLy4uL3Byb2R1Y3QvY29ubmVjdG9ycy9wcm9kdWN0L2NvbnZlcnRlcnMnO1xuaW1wb3J0IHsgUHJvZHVjdCB9IGZyb20gJy4uLy4uLy4uL21vZGVsL3Byb2R1Y3QubW9kZWwnO1xuaW1wb3J0IHsgU2NvcGVkUHJvZHVjdERhdGEgfSBmcm9tICcuLi8uLi8uLi9wcm9kdWN0L2Nvbm5lY3RvcnMvcHJvZHVjdC9zY29wZWQtcHJvZHVjdC1kYXRhJztcbmltcG9ydCB7IFNjb3BlZERhdGFXaXRoVXJsIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvb2NjLWZpZWxkcy5zZXJ2aWNlJztcbmltcG9ydCB7IE9jYyB9IGZyb20gJy4uLy4uL29jYy1tb2RlbHMnO1xuaW1wb3J0IHsgT2NjUmVxdWVzdHNPcHRpbWl6ZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvb2NjLXJlcXVlc3RzLW9wdGltaXplci5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE9jY1Byb2R1Y3RBZGFwdGVyIGltcGxlbWVudHMgUHJvZHVjdEFkYXB0ZXIge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgaHR0cDogSHR0cENsaWVudCxcbiAgICBwcm90ZWN0ZWQgb2NjRW5kcG9pbnRzOiBPY2NFbmRwb2ludHNTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBjb252ZXJ0ZXI6IENvbnZlcnRlclNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIHJlcXVlc3RzT3B0aW1pemVyOiBPY2NSZXF1ZXN0c09wdGltaXplclNlcnZpY2VcbiAgKSB7fVxuXG4gIGxvYWQocHJvZHVjdENvZGU6IHN0cmluZywgc2NvcGU/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPFByb2R1Y3Q+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAuZ2V0KHRoaXMuZ2V0RW5kcG9pbnQocHJvZHVjdENvZGUsIHNjb3BlKSlcbiAgICAgIC5waXBlKHRoaXMuY29udmVydGVyLnBpcGVhYmxlKFBST0RVQ1RfTk9STUFMSVpFUikpO1xuICB9XG5cbiAgbG9hZE1hbnkocHJvZHVjdHM6IFNjb3BlZFByb2R1Y3REYXRhW10pOiBTY29wZWRQcm9kdWN0RGF0YVtdIHtcbiAgICBjb25zdCBzY29wZWREYXRhV2l0aFVybHM6IFNjb3BlZERhdGFXaXRoVXJsW10gPSBwcm9kdWN0cy5tYXAoKG1vZGVsKSA9PiAoe1xuICAgICAgc2NvcGVkRGF0YTogbW9kZWwsXG4gICAgICB1cmw6IHRoaXMuZ2V0RW5kcG9pbnQobW9kZWwuY29kZSwgbW9kZWwuc2NvcGUpLFxuICAgIH0pKTtcblxuICAgIHJldHVybiB0aGlzLnJlcXVlc3RzT3B0aW1pemVyXG4gICAgICAuc2NvcGVkRGF0YUxvYWQ8T2NjLlByb2R1Y3Q+KHNjb3BlZERhdGFXaXRoVXJscylcbiAgICAgIC5tYXAoXG4gICAgICAgIChzY29wZWRQcm9kdWN0KSA9PlxuICAgICAgICAgICh7XG4gICAgICAgICAgICAuLi5zY29wZWRQcm9kdWN0LFxuICAgICAgICAgICAgZGF0YSQ6IHNjb3BlZFByb2R1Y3QuZGF0YSQucGlwZShcbiAgICAgICAgICAgICAgdGhpcy5jb252ZXJ0ZXIucGlwZWFibGUoUFJPRFVDVF9OT1JNQUxJWkVSKVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICB9IGFzIFNjb3BlZFByb2R1Y3REYXRhKVxuICAgICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRFbmRwb2ludChjb2RlOiBzdHJpbmcsIHNjb3BlPzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5vY2NFbmRwb2ludHMuYnVpbGRVcmwoJ3Byb2R1Y3QnLCB7XG4gICAgICB1cmxQYXJhbXM6IHsgcHJvZHVjdENvZGU6IGNvZGUgfSxcbiAgICAgIHNjb3BlLFxuICAgIH0pO1xuICB9XG59XG4iXX0=