@spartacus/core
Version:
Spartacus - the core framework
58 lines • 8.88 kB
JavaScript
import { HttpHeaders, HttpParams } from '@angular/common/http';
import { Injectable } from '@angular/core';
import { SAVE_CART_NORMALIZER } from '../../../cart/connectors/save-cart/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";
/**
* TODO(#11938): 4.0: use OccSavedCartAdapter instead from saved-cart feature-lib of cart
*
* When the saved cart feature module exist, there exist a race condition between the 'saveCart' key for the default occ config
* Allows wishlist to function when the key value is pulled from the saved-cart feature-lib
*
* Keep in mind that this adapter will be removed in 4.0 as we will delegate this functionality to the saved-cart feature-lib
**/
export class OccSaveCartAdapter {
constructor(http, occEndpointsService, converterService) {
this.http = http;
this.occEndpointsService = occEndpointsService;
this.converterService = converterService;
}
saveCart(userId, cartId, saveCartName, saveCartDescription) {
let httpParams = new HttpParams();
if (Boolean(saveCartName)) {
httpParams = httpParams.set('saveCartName', saveCartName);
}
if (Boolean(saveCartDescription)) {
httpParams = httpParams.set('saveCartDescription', saveCartDescription);
}
const headers = new HttpHeaders({
'Content-Type': 'application/x-www-form-urlencoded',
});
return !this.occEndpointsService
.buildUrl('saveCart', { urlParams: { userId, cartId } })
.includes('saveCartName')
? this.http
.patch(this.occEndpointsService.buildUrl('saveCart', {
urlParams: { userId, cartId },
}), httpParams, { headers })
.pipe(this.converterService.pipeable(SAVE_CART_NORMALIZER))
: this.http
.patch(this.occEndpointsService.buildUrl('saveCart', {
urlParams: {
userId,
cartId,
saveCartName,
saveCartDescription,
},
}), cartId)
.pipe(this.converterService.pipeable(SAVE_CART_NORMALIZER));
}
}
OccSaveCartAdapter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: OccSaveCartAdapter, deps: [{ token: i1.HttpClient }, { token: i2.OccEndpointsService }, { token: i3.ConverterService }], target: i0.ɵɵFactoryTarget.Injectable });
OccSaveCartAdapter.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: OccSaveCartAdapter });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: OccSaveCartAdapter, decorators: [{
type: Injectable
}], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.OccEndpointsService }, { type: i3.ConverterService }]; } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2NjLXNhdmUtY2FydC5hZGFwdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvb2NjL2FkYXB0ZXJzL2NhcnQvb2NjLXNhdmUtY2FydC5hZGFwdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDM0UsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQzs7Ozs7QUFPckY7Ozs7Ozs7SUFPSTtBQUVKLE1BQU0sT0FBTyxrQkFBa0I7SUFDN0IsWUFDWSxJQUFnQixFQUNoQixtQkFBd0MsRUFDeEMsZ0JBQWtDO1FBRmxDLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4QyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO0lBQzNDLENBQUM7SUFFRyxRQUFRLENBQ2IsTUFBYyxFQUNkLE1BQWMsRUFDZCxZQUFxQixFQUNyQixtQkFBNEI7UUFFNUIsSUFBSSxVQUFVLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUVsQyxJQUFJLE9BQU8sQ0FBQyxZQUFZLENBQUMsRUFBRTtZQUN6QixVQUFVLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQyxjQUFjLEVBQUUsWUFBWSxDQUFDLENBQUM7U0FDM0Q7UUFFRCxJQUFJLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFO1lBQ2hDLFVBQVUsR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLHFCQUFxQixFQUFFLG1CQUFtQixDQUFDLENBQUM7U0FDekU7UUFFRCxNQUFNLE9BQU8sR0FBRyxJQUFJLFdBQVcsQ0FBQztZQUM5QixjQUFjLEVBQUUsbUNBQW1DO1NBQ3BELENBQUMsQ0FBQztRQUVILE9BQU8sQ0FBQyxJQUFJLENBQUMsbUJBQW1CO2FBQzdCLFFBQVEsQ0FBQyxVQUFVLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQzthQUN2RCxRQUFRLENBQUMsY0FBYyxDQUFDO1lBQ3pCLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSTtpQkFDTixLQUFLLENBQ0osSUFBSSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUU7Z0JBQzVDLFNBQVMsRUFBRSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUU7YUFDOUIsQ0FBQyxFQUNGLFVBQVUsRUFDVixFQUFFLE9BQU8sRUFBRSxDQUNaO2lCQUNBLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLG9CQUFvQixDQUFDLENBQUM7WUFDL0QsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJO2lCQUNOLEtBQUssQ0FDSixJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRTtnQkFDNUMsU0FBUyxFQUFFO29CQUNULE1BQU07b0JBQ04sTUFBTTtvQkFDTixZQUFZO29CQUNaLG1CQUFtQjtpQkFDcEI7YUFDRixDQUFDLEVBQ0YsTUFBTSxDQUNQO2lCQUNBLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQztJQUNwRSxDQUFDOzsrR0FwRFUsa0JBQWtCO21IQUFsQixrQkFBa0I7MkZBQWxCLGtCQUFrQjtrQkFEOUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzLCBIdHRwUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgU0FWRV9DQVJUX05PUk1BTElaRVIgfSBmcm9tICcuLi8uLi8uLi9jYXJ0L2Nvbm5lY3RvcnMvc2F2ZS1jYXJ0L2NvbnZlcnRlcnMnO1xuaW1wb3J0IHsgU2F2ZUNhcnRBZGFwdGVyIH0gZnJvbSAnLi4vLi4vLi4vY2FydC9jb25uZWN0b3JzL3NhdmUtY2FydC9zYXZlLWNhcnQuYWRhcHRlcic7XG5pbXBvcnQgeyBTYXZlQ2FydFJlc3VsdCB9IGZyb20gJy4uLy4uLy4uL21vZGVsL2NhcnQubW9kZWwnO1xuaW1wb3J0IHsgQ29udmVydGVyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3V0aWwvY29udmVydGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgT2NjIH0gZnJvbSAnLi4vLi4vb2NjLW1vZGVscy9vY2MubW9kZWxzJztcbmltcG9ydCB7IE9jY0VuZHBvaW50c1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9vY2MtZW5kcG9pbnRzLnNlcnZpY2UnO1xuXG4vKipcbiAqIFRPRE8oIzExOTM4KTogNC4wOiB1c2UgT2NjU2F2ZWRDYXJ0QWRhcHRlciBpbnN0ZWFkIGZyb20gc2F2ZWQtY2FydCBmZWF0dXJlLWxpYiBvZiBjYXJ0XG4gKlxuICogV2hlbiB0aGUgc2F2ZWQgY2FydCBmZWF0dXJlIG1vZHVsZSBleGlzdCwgdGhlcmUgZXhpc3QgYSByYWNlIGNvbmRpdGlvbiBiZXR3ZWVuIHRoZSAnc2F2ZUNhcnQnIGtleSBmb3IgdGhlIGRlZmF1bHQgb2NjIGNvbmZpZ1xuICogQWxsb3dzIHdpc2hsaXN0IHRvIGZ1bmN0aW9uIHdoZW4gdGhlIGtleSB2YWx1ZSBpcyBwdWxsZWQgZnJvbSB0aGUgc2F2ZWQtY2FydCBmZWF0dXJlLWxpYlxuICpcbiAqIEtlZXAgaW4gbWluZCB0aGF0IHRoaXMgYWRhcHRlciB3aWxsIGJlIHJlbW92ZWQgaW4gNC4wIGFzIHdlIHdpbGwgZGVsZWdhdGUgdGhpcyBmdW5jdGlvbmFsaXR5IHRvIHRoZSBzYXZlZC1jYXJ0IGZlYXR1cmUtbGliXG4gKiovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgT2NjU2F2ZUNhcnRBZGFwdGVyIGltcGxlbWVudHMgU2F2ZUNhcnRBZGFwdGVyIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgcHJvdGVjdGVkIG9jY0VuZHBvaW50c1NlcnZpY2U6IE9jY0VuZHBvaW50c1NlcnZpY2UsXG4gICAgcHJvdGVjdGVkIGNvbnZlcnRlclNlcnZpY2U6IENvbnZlcnRlclNlcnZpY2VcbiAgKSB7fVxuXG4gIHB1YmxpYyBzYXZlQ2FydChcbiAgICB1c2VySWQ6IHN0cmluZyxcbiAgICBjYXJ0SWQ6IHN0cmluZyxcbiAgICBzYXZlQ2FydE5hbWU/OiBzdHJpbmcsXG4gICAgc2F2ZUNhcnREZXNjcmlwdGlvbj86IHN0cmluZ1xuICApOiBPYnNlcnZhYmxlPFNhdmVDYXJ0UmVzdWx0PiB7XG4gICAgbGV0IGh0dHBQYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpO1xuXG4gICAgaWYgKEJvb2xlYW4oc2F2ZUNhcnROYW1lKSkge1xuICAgICAgaHR0cFBhcmFtcyA9IGh0dHBQYXJhbXMuc2V0KCdzYXZlQ2FydE5hbWUnLCBzYXZlQ2FydE5hbWUpO1xuICAgIH1cblxuICAgIGlmIChCb29sZWFuKHNhdmVDYXJ0RGVzY3JpcHRpb24pKSB7XG4gICAgICBodHRwUGFyYW1zID0gaHR0cFBhcmFtcy5zZXQoJ3NhdmVDYXJ0RGVzY3JpcHRpb24nLCBzYXZlQ2FydERlc2NyaXB0aW9uKTtcbiAgICB9XG5cbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKHtcbiAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJyxcbiAgICB9KTtcblxuICAgIHJldHVybiAhdGhpcy5vY2NFbmRwb2ludHNTZXJ2aWNlXG4gICAgICAuYnVpbGRVcmwoJ3NhdmVDYXJ0JywgeyB1cmxQYXJhbXM6IHsgdXNlcklkLCBjYXJ0SWQgfSB9KVxuICAgICAgLmluY2x1ZGVzKCdzYXZlQ2FydE5hbWUnKVxuICAgICAgPyB0aGlzLmh0dHBcbiAgICAgICAgICAucGF0Y2g8T2NjLlNhdmVDYXJ0UmVzdWx0PihcbiAgICAgICAgICAgIHRoaXMub2NjRW5kcG9pbnRzU2VydmljZS5idWlsZFVybCgnc2F2ZUNhcnQnLCB7XG4gICAgICAgICAgICAgIHVybFBhcmFtczogeyB1c2VySWQsIGNhcnRJZCB9LFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBodHRwUGFyYW1zLFxuICAgICAgICAgICAgeyBoZWFkZXJzIH1cbiAgICAgICAgICApXG4gICAgICAgICAgLnBpcGUodGhpcy5jb252ZXJ0ZXJTZXJ2aWNlLnBpcGVhYmxlKFNBVkVfQ0FSVF9OT1JNQUxJWkVSKSlcbiAgICAgIDogdGhpcy5odHRwXG4gICAgICAgICAgLnBhdGNoPE9jYy5TYXZlQ2FydFJlc3VsdD4oXG4gICAgICAgICAgICB0aGlzLm9jY0VuZHBvaW50c1NlcnZpY2UuYnVpbGRVcmwoJ3NhdmVDYXJ0Jywge1xuICAgICAgICAgICAgICB1cmxQYXJhbXM6IHtcbiAgICAgICAgICAgICAgICB1c2VySWQsXG4gICAgICAgICAgICAgICAgY2FydElkLFxuICAgICAgICAgICAgICAgIHNhdmVDYXJ0TmFtZSxcbiAgICAgICAgICAgICAgICBzYXZlQ2FydERlc2NyaXB0aW9uLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBjYXJ0SWRcbiAgICAgICAgICApXG4gICAgICAgICAgLnBpcGUodGhpcy5jb252ZXJ0ZXJTZXJ2aWNlLnBpcGVhYmxlKFNBVkVfQ0FSVF9OT1JNQUxJWkVSKSk7XG4gIH1cbn1cbiJdfQ==