@spartacus/cart
Version:
`@spartacus/cart` is a package that you can include in your application, which allows you to use various cart features.
72 lines • 11.3 kB
JavaScript
import { Injectable } from '@angular/core';
import { CART_NORMALIZER, } from '@spartacus/core';
import { map, pluck } from 'rxjs/operators';
import * as i0 from "@angular/core";
import * as i1 from "@angular/common/http";
import * as i2 from "@spartacus/core";
export class OccSavedCartAdapter {
constructor(http, occEndpoints, converter) {
this.http = http;
this.occEndpoints = occEndpoints;
this.converter = converter;
}
load(userId, cartId) {
return this.http
.get(this.getSavedCartEndpoint(userId, cartId))
.pipe(pluck('savedCartData'), this.converter.pipeable(CART_NORMALIZER));
}
loadList(userId) {
return this.http
.get(this.getSavedCartListEndpoint(userId))
.pipe(pluck('carts'), map((carts) => carts !== null && carts !== void 0 ? carts : []), this.converter.pipeableMany(CART_NORMALIZER));
}
restoreSavedCart(userId, cartId) {
return this.http
.patch(this.getRestoreSavedCartEndpoint(userId, cartId), cartId)
.pipe(pluck('savedCartData'), this.converter.pipeable(CART_NORMALIZER));
}
saveCart(userId, cartId, saveCartName, saveCartDescription) {
return this.http
.patch(this.getSaveCartEndpoint(userId, cartId, saveCartName, saveCartDescription), cartId)
.pipe(pluck('savedCartData'), this.converter.pipeable(CART_NORMALIZER));
}
cloneSavedCart(userId, cartId, saveCartName) {
return this.http
.post(this.getCloneSavedCartEndpoint(userId, cartId, saveCartName), cartId)
.pipe(pluck('savedCartData'), this.converter.pipeable(CART_NORMALIZER));
}
getSavedCartEndpoint(userId, cartId) {
return this.occEndpoints.buildUrl('savedCart', {
urlParams: { userId, cartId },
});
}
getSavedCartListEndpoint(userId) {
return this.occEndpoints.buildUrl('savedCarts', { urlParams: { userId } });
}
getRestoreSavedCartEndpoint(userId, cartId) {
return this.occEndpoints.buildUrl('restoreSavedCart', {
urlParams: { userId, cartId },
});
}
getSaveCartEndpoint(userId, cartId, saveCartName, saveCartDescription) {
return this.occEndpoints.buildUrl('saveCart', {
urlParams: {
userId,
cartId,
saveCartName,
saveCartDescription,
},
});
}
getCloneSavedCartEndpoint(userId, cartId, saveCartName) {
return this.occEndpoints.buildUrl('cloneSavedCart', {
urlParams: { userId, cartId, saveCartName },
});
}
}
OccSavedCartAdapter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: OccSavedCartAdapter, deps: [{ token: i1.HttpClient }, { token: i2.OccEndpointsService }, { token: i2.ConverterService }], target: i0.ɵɵFactoryTarget.Injectable });
OccSavedCartAdapter.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: OccSavedCartAdapter });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: OccSavedCartAdapter, decorators: [{
type: Injectable
}], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.OccEndpointsService }, { type: i2.ConverterService }]; } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2NjLXNhdmVkLWNhcnQuYWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2ZlYXR1cmUtbGlicy9jYXJ0L3NhdmVkLWNhcnQvb2NjL2FkYXB0ZXJzL29jYy1zYXZlZC1jYXJ0LmFkYXB0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBRUwsZUFBZSxHQUloQixNQUFNLGlCQUFpQixDQUFDO0FBRXpCLE9BQU8sRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFHNUMsTUFBTSxPQUFPLG1CQUFtQjtJQUM5QixZQUNZLElBQWdCLEVBQ2hCLFlBQWlDLEVBQ2pDLFNBQTJCO1FBRjNCLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsaUJBQVksR0FBWixZQUFZLENBQXFCO1FBQ2pDLGNBQVMsR0FBVCxTQUFTLENBQWtCO0lBQ3BDLENBQUM7SUFFSixJQUFJLENBQUMsTUFBYyxFQUFFLE1BQWM7UUFDakMsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNiLEdBQUcsQ0FBVyxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO2FBQ3hELElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBRUQsUUFBUSxDQUFDLE1BQWM7UUFDckIsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNiLEdBQUcsQ0FBZSxJQUFJLENBQUMsd0JBQXdCLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDeEQsSUFBSSxDQUNILEtBQUssQ0FBQyxPQUFPLENBQUMsRUFDZCxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssYUFBTCxLQUFLLGNBQUwsS0FBSyxHQUFJLEVBQUUsQ0FBQyxFQUMzQixJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUMsQ0FDN0MsQ0FBQztJQUNOLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxNQUFjLEVBQUUsTUFBYztRQUM3QyxPQUFPLElBQUksQ0FBQyxJQUFJO2FBQ2IsS0FBSyxDQUFXLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDO2FBQ3pFLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBRUQsUUFBUSxDQUNOLE1BQWMsRUFDZCxNQUFjLEVBQ2QsWUFBb0IsRUFDcEIsbUJBQTJCO1FBRTNCLE9BQU8sSUFBSSxDQUFDLElBQUk7YUFDYixLQUFLLENBQ0osSUFBSSxDQUFDLG1CQUFtQixDQUN0QixNQUFNLEVBQ04sTUFBTSxFQUNOLFlBQVksRUFDWixtQkFBbUIsQ0FDcEIsRUFDRCxNQUFNLENBQ1A7YUFDQSxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7SUFDNUUsQ0FBQztJQUVELGNBQWMsQ0FDWixNQUFjLEVBQ2QsTUFBYyxFQUNkLFlBQW9CO1FBRXBCLE9BQU8sSUFBSSxDQUFDLElBQUk7YUFDYixJQUFJLENBQ0gsSUFBSSxDQUFDLHlCQUF5QixDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsWUFBWSxDQUFDLEVBQzVELE1BQU0sQ0FDUDthQUNBLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBRVMsb0JBQW9CLENBQUMsTUFBYyxFQUFFLE1BQWM7UUFDM0QsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUU7WUFDN0MsU0FBUyxFQUFFLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRTtTQUM5QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRVMsd0JBQXdCLENBQUMsTUFBYztRQUMvQyxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztJQUM3RSxDQUFDO0lBRVMsMkJBQTJCLENBQ25DLE1BQWMsRUFDZCxNQUFjO1FBRWQsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsRUFBRTtZQUNwRCxTQUFTLEVBQUUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFO1NBQzlCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFUyxtQkFBbUIsQ0FDM0IsTUFBYyxFQUNkLE1BQWMsRUFDZCxZQUFvQixFQUNwQixtQkFBMkI7UUFFM0IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUU7WUFDNUMsU0FBUyxFQUFFO2dCQUNULE1BQU07Z0JBQ04sTUFBTTtnQkFDTixZQUFZO2dCQUNaLG1CQUFtQjthQUNwQjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFUyx5QkFBeUIsQ0FDakMsTUFBYyxFQUNkLE1BQWMsRUFDZCxZQUFvQjtRQUVwQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLGdCQUFnQixFQUFFO1lBQ2xELFNBQVMsRUFBRSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFO1NBQzVDLENBQUMsQ0FBQztJQUNMLENBQUM7O2dIQXhHVSxtQkFBbUI7b0hBQW5CLG1CQUFtQjsyRkFBbkIsbUJBQW1CO2tCQUQvQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNhdmVkQ2FydEFkYXB0ZXIgfSBmcm9tICdAc3BhcnRhY3VzL2NhcnQvc2F2ZWQtY2FydC9jb3JlJztcbmltcG9ydCB7XG4gIENhcnQsXG4gIENBUlRfTk9STUFMSVpFUixcbiAgQ29udmVydGVyU2VydmljZSxcbiAgT2NjLFxuICBPY2NFbmRwb2ludHNTZXJ2aWNlLFxufSBmcm9tICdAc3BhcnRhY3VzL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwLCBwbHVjayB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE9jY1NhdmVkQ2FydEFkYXB0ZXIgaW1wbGVtZW50cyBTYXZlZENhcnRBZGFwdGVyIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgcHJvdGVjdGVkIG9jY0VuZHBvaW50czogT2NjRW5kcG9pbnRzU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgY29udmVydGVyOiBDb252ZXJ0ZXJTZXJ2aWNlXG4gICkge31cblxuICBsb2FkKHVzZXJJZDogc3RyaW5nLCBjYXJ0SWQ6IHN0cmluZyk6IE9ic2VydmFibGU8Q2FydD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5nZXQ8T2NjLkNhcnQ+KHRoaXMuZ2V0U2F2ZWRDYXJ0RW5kcG9pbnQodXNlcklkLCBjYXJ0SWQpKVxuICAgICAgLnBpcGUocGx1Y2soJ3NhdmVkQ2FydERhdGEnKSwgdGhpcy5jb252ZXJ0ZXIucGlwZWFibGUoQ0FSVF9OT1JNQUxJWkVSKSk7XG4gIH1cblxuICBsb2FkTGlzdCh1c2VySWQ6IHN0cmluZyk6IE9ic2VydmFibGU8Q2FydFtdPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLmdldDxPY2MuQ2FydExpc3Q+KHRoaXMuZ2V0U2F2ZWRDYXJ0TGlzdEVuZHBvaW50KHVzZXJJZCkpXG4gICAgICAucGlwZShcbiAgICAgICAgcGx1Y2soJ2NhcnRzJyksXG4gICAgICAgIG1hcCgoY2FydHMpID0+IGNhcnRzID8/IFtdKSxcbiAgICAgICAgdGhpcy5jb252ZXJ0ZXIucGlwZWFibGVNYW55KENBUlRfTk9STUFMSVpFUilcbiAgICAgICk7XG4gIH1cblxuICByZXN0b3JlU2F2ZWRDYXJ0KHVzZXJJZDogc3RyaW5nLCBjYXJ0SWQ6IHN0cmluZyk6IE9ic2VydmFibGU8Q2FydD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5wYXRjaDxPY2MuQ2FydD4odGhpcy5nZXRSZXN0b3JlU2F2ZWRDYXJ0RW5kcG9pbnQodXNlcklkLCBjYXJ0SWQpLCBjYXJ0SWQpXG4gICAgICAucGlwZShwbHVjaygnc2F2ZWRDYXJ0RGF0YScpLCB0aGlzLmNvbnZlcnRlci5waXBlYWJsZShDQVJUX05PUk1BTElaRVIpKTtcbiAgfVxuXG4gIHNhdmVDYXJ0KFxuICAgIHVzZXJJZDogc3RyaW5nLFxuICAgIGNhcnRJZDogc3RyaW5nLFxuICAgIHNhdmVDYXJ0TmFtZTogc3RyaW5nLFxuICAgIHNhdmVDYXJ0RGVzY3JpcHRpb246IHN0cmluZ1xuICApOiBPYnNlcnZhYmxlPENhcnQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAucGF0Y2g8T2NjLkNhcnQ+KFxuICAgICAgICB0aGlzLmdldFNhdmVDYXJ0RW5kcG9pbnQoXG4gICAgICAgICAgdXNlcklkLFxuICAgICAgICAgIGNhcnRJZCxcbiAgICAgICAgICBzYXZlQ2FydE5hbWUsXG4gICAgICAgICAgc2F2ZUNhcnREZXNjcmlwdGlvblxuICAgICAgICApLFxuICAgICAgICBjYXJ0SWRcbiAgICAgIClcbiAgICAgIC5waXBlKHBsdWNrKCdzYXZlZENhcnREYXRhJyksIHRoaXMuY29udmVydGVyLnBpcGVhYmxlKENBUlRfTk9STUFMSVpFUikpO1xuICB9XG5cbiAgY2xvbmVTYXZlZENhcnQoXG4gICAgdXNlcklkOiBzdHJpbmcsXG4gICAgY2FydElkOiBzdHJpbmcsXG4gICAgc2F2ZUNhcnROYW1lOiBzdHJpbmdcbiAgKTogT2JzZXJ2YWJsZTxDYXJ0PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLnBvc3Q8T2NjLkNhcnQ+KFxuICAgICAgICB0aGlzLmdldENsb25lU2F2ZWRDYXJ0RW5kcG9pbnQodXNlcklkLCBjYXJ0SWQsIHNhdmVDYXJ0TmFtZSksXG4gICAgICAgIGNhcnRJZFxuICAgICAgKVxuICAgICAgLnBpcGUocGx1Y2soJ3NhdmVkQ2FydERhdGEnKSwgdGhpcy5jb252ZXJ0ZXIucGlwZWFibGUoQ0FSVF9OT1JNQUxJWkVSKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0U2F2ZWRDYXJ0RW5kcG9pbnQodXNlcklkOiBzdHJpbmcsIGNhcnRJZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5vY2NFbmRwb2ludHMuYnVpbGRVcmwoJ3NhdmVkQ2FydCcsIHtcbiAgICAgIHVybFBhcmFtczogeyB1c2VySWQsIGNhcnRJZCB9LFxuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldFNhdmVkQ2FydExpc3RFbmRwb2ludCh1c2VySWQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMub2NjRW5kcG9pbnRzLmJ1aWxkVXJsKCdzYXZlZENhcnRzJywgeyB1cmxQYXJhbXM6IHsgdXNlcklkIH0gfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0UmVzdG9yZVNhdmVkQ2FydEVuZHBvaW50KFxuICAgIHVzZXJJZDogc3RyaW5nLFxuICAgIGNhcnRJZDogc3RyaW5nXG4gICk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMub2NjRW5kcG9pbnRzLmJ1aWxkVXJsKCdyZXN0b3JlU2F2ZWRDYXJ0Jywge1xuICAgICAgdXJsUGFyYW1zOiB7IHVzZXJJZCwgY2FydElkIH0sXG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0U2F2ZUNhcnRFbmRwb2ludChcbiAgICB1c2VySWQ6IHN0cmluZyxcbiAgICBjYXJ0SWQ6IHN0cmluZyxcbiAgICBzYXZlQ2FydE5hbWU6IHN0cmluZyxcbiAgICBzYXZlQ2FydERlc2NyaXB0aW9uOiBzdHJpbmdcbiAgKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5vY2NFbmRwb2ludHMuYnVpbGRVcmwoJ3NhdmVDYXJ0Jywge1xuICAgICAgdXJsUGFyYW1zOiB7XG4gICAgICAgIHVzZXJJZCxcbiAgICAgICAgY2FydElkLFxuICAgICAgICBzYXZlQ2FydE5hbWUsXG4gICAgICAgIHNhdmVDYXJ0RGVzY3JpcHRpb24sXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldENsb25lU2F2ZWRDYXJ0RW5kcG9pbnQoXG4gICAgdXNlcklkOiBzdHJpbmcsXG4gICAgY2FydElkOiBzdHJpbmcsXG4gICAgc2F2ZUNhcnROYW1lOiBzdHJpbmdcbiAgKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5vY2NFbmRwb2ludHMuYnVpbGRVcmwoJ2Nsb25lU2F2ZWRDYXJ0Jywge1xuICAgICAgdXJsUGFyYW1zOiB7IHVzZXJJZCwgY2FydElkLCBzYXZlQ2FydE5hbWUgfSxcbiAgICB9KTtcbiAgfVxufVxuIl19