UNPKG

@spartacus/core

Version:

Spartacus - the core framework

75 lines 9.35 kB
import { HttpHeaders } from '@angular/common/http'; import { Injectable } from '@angular/core'; import { CMS_PAGE_NORMALIZER } from '../../../cms/connectors/page/converters'; import { PageType } from '../../../model/cms.model'; import { HOME_PAGE_CONTEXT, SMART_EDIT_CONTEXT, } from '../../../routing/models/page-context.model'; 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"; export class OccCmsPageAdapter { constructor(http, occEndpoints, converter) { this.http = http; this.occEndpoints = occEndpoints; this.converter = converter; this.headers = new HttpHeaders().set('Content-Type', 'application/json'); } /** * @override returns the OCC CMS page data for the given context and converts * the data by any configured `CMS_PAGE_NORMALIZER`. */ load(pageContext) { const params = this.getPagesRequestParams(pageContext); const endpoint = !pageContext.type ? this.occEndpoints.buildUrl('page', { urlParams: { id: pageContext.id }, }) : this.occEndpoints.buildUrl('pages', { queryParams: params }); return this.http .get(endpoint, { headers: this.headers }) .pipe(this.converter.pipeable(CMS_PAGE_NORMALIZER)); } /** * The OCC CMS API allows to query pages by a combination of pageType, label and code. * * When a `ContentPage` is requested, we use the `pageLabelOrId`: * * ``` * "/pages?pageLabelOrId=/my-page&pageType=ContentPage" * ``` * * Other pages are queried by code: * * ``` * "/pages?code=1234&pageType=ProductPage" * ``` * * The page context is ignored for a home page request or in case of a * `smartedit-preview` request. */ getPagesRequestParams(context) { if (context.id === HOME_PAGE_CONTEXT || context.id === SMART_EDIT_CONTEXT) { return {}; } const httpParams = {}; if (context.type) { httpParams.pageType = context.type; } if (context.type === PageType.CONTENT_PAGE) { httpParams.pageLabelOrId = context.id; } else { httpParams.code = context.id; } return httpParams; } } OccCmsPageAdapter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: OccCmsPageAdapter, deps: [{ token: i1.HttpClient }, { token: i2.OccEndpointsService }, { token: i3.ConverterService }], target: i0.ɵɵFactoryTarget.Injectable }); OccCmsPageAdapter.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: OccCmsPageAdapter, providedIn: 'root' }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: OccCmsPageAdapter, decorators: [{ type: Injectable, args: [{ providedIn: 'root', }] }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.OccEndpointsService }, { type: i3.ConverterService }]; } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2NjLWNtcy1wYWdlLmFkYXB0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9vY2MvYWRhcHRlcnMvY21zL29jYy1jbXMtcGFnZS5hZGFwdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBRTlFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNwRCxPQUFPLEVBQ0wsaUJBQWlCLEVBRWpCLGtCQUFrQixHQUNuQixNQUFNLDRDQUE0QyxDQUFDOzs7OztBQWNwRCxNQUFNLE9BQU8saUJBQWlCO0lBRzVCLFlBQ1ksSUFBZ0IsRUFDaEIsWUFBaUMsRUFDakMsU0FBMkI7UUFGM0IsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFDakMsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFMN0IsWUFBTyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUMsR0FBRyxDQUFDLGNBQWMsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO0lBTTNFLENBQUM7SUFFSjs7O09BR0c7SUFDSCxJQUFJLENBQUMsV0FBd0I7UUFDM0IsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRXZELE1BQU0sUUFBUSxHQUFHLENBQUMsV0FBVyxDQUFDLElBQUk7WUFDaEMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRTtnQkFDakMsU0FBUyxFQUFFLEVBQUUsRUFBRSxFQUFFLFdBQVcsQ0FBQyxFQUFFLEVBQUU7YUFDbEMsQ0FBQztZQUNKLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUVqRSxPQUFPLElBQUksQ0FBQyxJQUFJO2FBQ2IsR0FBRyxDQUFDLFFBQVEsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7YUFDeEMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7O09BaUJHO0lBQ08scUJBQXFCLENBQUMsT0FBb0I7UUFDbEQsSUFBSSxPQUFPLENBQUMsRUFBRSxLQUFLLGlCQUFpQixJQUFJLE9BQU8sQ0FBQyxFQUFFLEtBQUssa0JBQWtCLEVBQUU7WUFDekUsT0FBTyxFQUFFLENBQUM7U0FDWDtRQUVELE1BQU0sVUFBVSxHQUFzQixFQUFFLENBQUM7UUFDekMsSUFBSSxPQUFPLENBQUMsSUFBSSxFQUFFO1lBQ2hCLFVBQVUsQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQztTQUNwQztRQUNELElBQUksT0FBTyxDQUFDLElBQUksS0FBSyxRQUFRLENBQUMsWUFBWSxFQUFFO1lBQzFDLFVBQVUsQ0FBQyxhQUFhLEdBQUcsT0FBTyxDQUFDLEVBQUUsQ0FBQztTQUN2QzthQUFNO1lBQ0wsVUFBVSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsRUFBRSxDQUFDO1NBQzlCO1FBRUQsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQzs7OEdBN0RVLGlCQUFpQjtrSEFBakIsaUJBQWlCLGNBRmhCLE1BQU07MkZBRVAsaUJBQWlCO2tCQUg3QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ21zUGFnZUFkYXB0ZXIgfSBmcm9tICcuLi8uLi8uLi9jbXMvY29ubmVjdG9ycy9wYWdlL2Ntcy1wYWdlLmFkYXB0ZXInO1xuaW1wb3J0IHsgQ01TX1BBR0VfTk9STUFMSVpFUiB9IGZyb20gJy4uLy4uLy4uL2Ntcy9jb25uZWN0b3JzL3BhZ2UvY29udmVydGVycyc7XG5pbXBvcnQgeyBDbXNTdHJ1Y3R1cmVNb2RlbCB9IGZyb20gJy4uLy4uLy4uL2Ntcy9tb2RlbC9wYWdlLm1vZGVsJztcbmltcG9ydCB7IFBhZ2VUeXBlIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWwvY21zLm1vZGVsJztcbmltcG9ydCB7XG4gIEhPTUVfUEFHRV9DT05URVhULFxuICBQYWdlQ29udGV4dCxcbiAgU01BUlRfRURJVF9DT05URVhULFxufSBmcm9tICcuLi8uLi8uLi9yb3V0aW5nL21vZGVscy9wYWdlLWNvbnRleHQubW9kZWwnO1xuaW1wb3J0IHsgQ29udmVydGVyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3V0aWwvY29udmVydGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgT2NjRW5kcG9pbnRzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL29jYy1lbmRwb2ludHMuc2VydmljZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgT2NjQ21zUGFnZVJlcXVlc3Qge1xuICBwYWdlTGFiZWxPcklkPzogc3RyaW5nO1xuICBwYWdlVHlwZT86IFBhZ2VUeXBlO1xuICBjb2RlPzogc3RyaW5nO1xuICBmaWVsZHM/OiBzdHJpbmc7XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBPY2NDbXNQYWdlQWRhcHRlciBpbXBsZW1lbnRzIENtc1BhZ2VBZGFwdGVyIHtcbiAgcHJvdGVjdGVkIGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgcHJvdGVjdGVkIG9jY0VuZHBvaW50czogT2NjRW5kcG9pbnRzU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgY29udmVydGVyOiBDb252ZXJ0ZXJTZXJ2aWNlXG4gICkge31cblxuICAvKipcbiAgICogQG92ZXJyaWRlIHJldHVybnMgdGhlIE9DQyBDTVMgcGFnZSBkYXRhIGZvciB0aGUgZ2l2ZW4gY29udGV4dCBhbmQgY29udmVydHNcbiAgICogdGhlIGRhdGEgYnkgYW55IGNvbmZpZ3VyZWQgYENNU19QQUdFX05PUk1BTElaRVJgLlxuICAgKi9cbiAgbG9hZChwYWdlQ29udGV4dDogUGFnZUNvbnRleHQpOiBPYnNlcnZhYmxlPENtc1N0cnVjdHVyZU1vZGVsPiB7XG4gICAgY29uc3QgcGFyYW1zID0gdGhpcy5nZXRQYWdlc1JlcXVlc3RQYXJhbXMocGFnZUNvbnRleHQpO1xuXG4gICAgY29uc3QgZW5kcG9pbnQgPSAhcGFnZUNvbnRleHQudHlwZVxuICAgICAgPyB0aGlzLm9jY0VuZHBvaW50cy5idWlsZFVybCgncGFnZScsIHtcbiAgICAgICAgICB1cmxQYXJhbXM6IHsgaWQ6IHBhZ2VDb250ZXh0LmlkIH0sXG4gICAgICAgIH0pXG4gICAgICA6IHRoaXMub2NjRW5kcG9pbnRzLmJ1aWxkVXJsKCdwYWdlcycsIHsgcXVlcnlQYXJhbXM6IHBhcmFtcyB9KTtcblxuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5nZXQoZW5kcG9pbnQsIHsgaGVhZGVyczogdGhpcy5oZWFkZXJzIH0pXG4gICAgICAucGlwZSh0aGlzLmNvbnZlcnRlci5waXBlYWJsZShDTVNfUEFHRV9OT1JNQUxJWkVSKSk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIE9DQyBDTVMgQVBJIGFsbG93cyB0byBxdWVyeSBwYWdlcyBieSBhIGNvbWJpbmF0aW9uIG9mIHBhZ2VUeXBlLCBsYWJlbCBhbmQgY29kZS5cbiAgICpcbiAgICogV2hlbiBhIGBDb250ZW50UGFnZWAgaXMgcmVxdWVzdGVkLCB3ZSB1c2UgdGhlIGBwYWdlTGFiZWxPcklkYDpcbiAgICpcbiAgICogYGBgXG4gICAqIFwiL3BhZ2VzP3BhZ2VMYWJlbE9ySWQ9L215LXBhZ2UmcGFnZVR5cGU9Q29udGVudFBhZ2VcIlxuICAgKiBgYGBcbiAgICpcbiAgICogT3RoZXIgcGFnZXMgYXJlIHF1ZXJpZWQgYnkgY29kZTpcbiAgICpcbiAgICogYGBgXG4gICAqIFwiL3BhZ2VzP2NvZGU9MTIzNCZwYWdlVHlwZT1Qcm9kdWN0UGFnZVwiXG4gICAqIGBgYFxuICAgKlxuICAgKiBUaGUgcGFnZSBjb250ZXh0IGlzIGlnbm9yZWQgZm9yIGEgaG9tZSBwYWdlIHJlcXVlc3Qgb3IgaW4gY2FzZSBvZiBhXG4gICAqIGBzbWFydGVkaXQtcHJldmlld2AgcmVxdWVzdC5cbiAgICovXG4gIHByb3RlY3RlZCBnZXRQYWdlc1JlcXVlc3RQYXJhbXMoY29udGV4dDogUGFnZUNvbnRleHQpOiBPY2NDbXNQYWdlUmVxdWVzdCB7XG4gICAgaWYgKGNvbnRleHQuaWQgPT09IEhPTUVfUEFHRV9DT05URVhUIHx8IGNvbnRleHQuaWQgPT09IFNNQVJUX0VESVRfQ09OVEVYVCkge1xuICAgICAgcmV0dXJuIHt9O1xuICAgIH1cblxuICAgIGNvbnN0IGh0dHBQYXJhbXM6IE9jY0Ntc1BhZ2VSZXF1ZXN0ID0ge307XG4gICAgaWYgKGNvbnRleHQudHlwZSkge1xuICAgICAgaHR0cFBhcmFtcy5wYWdlVHlwZSA9IGNvbnRleHQudHlwZTtcbiAgICB9XG4gICAgaWYgKGNvbnRleHQudHlwZSA9PT0gUGFnZVR5cGUuQ09OVEVOVF9QQUdFKSB7XG4gICAgICBodHRwUGFyYW1zLnBhZ2VMYWJlbE9ySWQgPSBjb250ZXh0LmlkO1xuICAgIH0gZWxzZSB7XG4gICAgICBodHRwUGFyYW1zLmNvZGUgPSBjb250ZXh0LmlkO1xuICAgIH1cblxuICAgIHJldHVybiBodHRwUGFyYW1zO1xuICB9XG59XG4iXX0=