@spartacus/order
Version:
Order feature library for Spartacus
276 lines (267 loc) • 13.4 kB
JavaScript
import * as i0 from '@angular/core';
import { Injectable, NgModule } from '@angular/core';
import * as i2 from '@spartacus/core';
import { PRODUCT_NORMALIZER, OCC_USER_ID_ANONYMOUS, InterceptorUtil, USE_CLIENT_TOKEN, ORDER_NORMALIZER, OCC_USER_ID_CURRENT, REPLENISHMENT_ORDER_NORMALIZER, provideDefaultConfig } from '@spartacus/core';
import * as i1 from '@angular/common/http';
import { HttpHeaders } from '@angular/common/http';
import { ORDER_HISTORY_NORMALIZER, CONSIGNMENT_TRACKING_NORMALIZER, ORDER_RETURN_REQUEST_INPUT_SERIALIZER, ORDER_RETURN_REQUEST_NORMALIZER, ORDER_RETURNS_NORMALIZER, REPLENISHMENT_ORDER_HISTORY_NORMALIZER, OrderAdapter, ReplenishmentOrderAdapter } from '@spartacus/order/core';
import { throwError } from 'rxjs';
import { catchError } from 'rxjs/operators';
import { CommonModule } from '@angular/common';
class OccReturnRequestNormalizer {
constructor(converter) {
this.converter = converter;
}
convert(source, target) {
if (target === undefined) {
target = Object.assign({}, source);
}
if (source.returnEntries) {
target.returnEntries = source.returnEntries.map((entry) => (Object.assign(Object.assign({}, entry), { orderEntry: this.convertOrderEntry(entry.orderEntry) })));
}
return target;
}
convertOrderEntry(source) {
return Object.assign(Object.assign({}, source), { product: this.converter.convert(source === null || source === void 0 ? void 0 : source.product, PRODUCT_NORMALIZER) });
}
}
OccReturnRequestNormalizer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: OccReturnRequestNormalizer, deps: [{ token: i2.ConverterService }], target: i0.ɵɵFactoryTarget.Injectable });
OccReturnRequestNormalizer.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: OccReturnRequestNormalizer, providedIn: 'root' });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: OccReturnRequestNormalizer, decorators: [{
type: Injectable,
args: [{ providedIn: 'root' }]
}], ctorParameters: function () { return [{ type: i2.ConverterService }]; } });
class OccOrderAdapter {
constructor(http, occEndpoints, converter) {
this.http = http;
this.occEndpoints = occEndpoints;
this.converter = converter;
}
load(userId, orderCode) {
const url = this.occEndpoints.buildUrl('orderDetail', {
urlParams: { userId, orderId: orderCode },
});
let headers = new HttpHeaders();
if (userId === OCC_USER_ID_ANONYMOUS) {
headers = InterceptorUtil.createHeader(USE_CLIENT_TOKEN, true, headers);
}
return this.http
.get(url, { headers })
.pipe(this.converter.pipeable(ORDER_NORMALIZER));
}
loadHistory(userId, pageSize, currentPage, sort) {
const params = {};
if (pageSize) {
params['pageSize'] = pageSize.toString();
}
if (currentPage) {
params['currentPage'] = currentPage.toString();
}
if (sort) {
params['sort'] = sort.toString();
}
const url = this.occEndpoints.buildUrl('orderHistory', {
urlParams: { userId },
queryParams: params,
});
return this.http
.get(url)
.pipe(this.converter.pipeable(ORDER_HISTORY_NORMALIZER));
}
getConsignmentTracking(orderCode, consignmentCode, userId = OCC_USER_ID_CURRENT) {
const url = this.occEndpoints.buildUrl('consignmentTracking', {
urlParams: { userId, orderCode, consignmentCode },
});
return this.http
.get(url)
.pipe(this.converter.pipeable(CONSIGNMENT_TRACKING_NORMALIZER));
}
cancel(userId, orderCode, cancelRequestInput) {
const url = this.occEndpoints.buildUrl('cancelOrder', {
urlParams: { userId, orderId: orderCode },
});
const headers = new HttpHeaders({
'Content-Type': 'application/json',
});
return this.http
.post(url, cancelRequestInput, { headers })
.pipe(catchError((error) => throwError(error)));
}
createReturnRequest(userId, returnRequestInput) {
const url = this.occEndpoints.buildUrl('returnOrder', {
urlParams: { userId },
});
const headers = new HttpHeaders({
'Content-Type': 'application/json',
});
returnRequestInput = this.converter.convert(returnRequestInput, ORDER_RETURN_REQUEST_INPUT_SERIALIZER);
return this.http.post(url, returnRequestInput, { headers }).pipe(catchError((error) => throwError(error)), this.converter.pipeable(ORDER_RETURN_REQUEST_NORMALIZER));
}
loadReturnRequestList(userId, pageSize, currentPage, sort) {
const params = {};
if (pageSize) {
params['pageSize'] = pageSize.toString();
}
if (currentPage) {
params['currentPage'] = currentPage.toString();
}
if (sort) {
params['sort'] = sort.toString();
}
const url = this.occEndpoints.buildUrl('orderReturns', {
urlParams: { userId },
queryParams: params,
});
return this.http
.get(url)
.pipe(this.converter.pipeable(ORDER_RETURNS_NORMALIZER));
}
loadReturnRequestDetail(userId, returnRequestCode) {
const url = this.occEndpoints.buildUrl('orderReturnDetail', {
urlParams: { userId, returnRequestCode },
});
return this.http
.get(url)
.pipe(this.converter.pipeable(ORDER_RETURN_REQUEST_NORMALIZER));
}
cancelReturnRequest(userId, returnRequestCode, returnRequestModification) {
const url = this.occEndpoints.buildUrl('cancelReturn', {
urlParams: { userId, returnRequestCode },
});
const headers = new HttpHeaders({
'Content-Type': 'application/json',
});
return this.http
.patch(url, returnRequestModification, { headers })
.pipe(catchError((error) => throwError(error)));
}
}
OccOrderAdapter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: OccOrderAdapter, deps: [{ token: i1.HttpClient }, { token: i2.OccEndpointsService }, { token: i2.ConverterService }], target: i0.ɵɵFactoryTarget.Injectable });
OccOrderAdapter.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: OccOrderAdapter });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: OccOrderAdapter, decorators: [{
type: Injectable
}], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.OccEndpointsService }, { type: i2.ConverterService }]; } });
class OccReplenishmentOrderAdapter {
constructor(http, occEndpoints, converter) {
this.http = http;
this.occEndpoints = occEndpoints;
this.converter = converter;
}
load(userId, replenishmentOrderCode) {
return this.http
.get(this.occEndpoints.buildUrl('replenishmentOrderDetails', {
urlParams: { userId, replenishmentOrderCode },
}))
.pipe(this.converter.pipeable(REPLENISHMENT_ORDER_NORMALIZER));
}
loadReplenishmentDetailsHistory(userId, replenishmentOrderCode, pageSize, currentPage, sort) {
const params = {};
if (pageSize) {
params['pageSize'] = pageSize.toString();
}
if (currentPage) {
params['currentPage'] = currentPage.toString();
}
if (sort) {
params['sort'] = sort.toString();
}
return this.http
.get(this.occEndpoints.buildUrl('replenishmentOrderDetailsHistory', {
urlParams: { userId, replenishmentOrderCode },
queryParams: params,
}))
.pipe(this.converter.pipeable(ORDER_HISTORY_NORMALIZER));
}
cancelReplenishmentOrder(userId, replenishmentOrderCode) {
const headers = new HttpHeaders().set('Content-Type', 'application/json');
return this.http
.patch(this.occEndpoints.buildUrl('cancelReplenishmentOrder', {
urlParams: { userId, replenishmentOrderCode },
}), {}, { headers })
.pipe(this.converter.pipeable(REPLENISHMENT_ORDER_NORMALIZER));
}
loadHistory(userId, pageSize, currentPage, sort) {
const params = {};
if (pageSize) {
params['pageSize'] = pageSize.toString();
}
if (currentPage) {
params['currentPage'] = currentPage.toString();
}
if (sort) {
params['sort'] = sort.toString();
}
const url = this.occEndpoints.buildUrl('replenishmentOrderHistory', {
urlParams: { userId },
queryParams: params,
});
return this.http
.get(url)
.pipe(this.converter.pipeable(REPLENISHMENT_ORDER_HISTORY_NORMALIZER));
}
}
OccReplenishmentOrderAdapter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: OccReplenishmentOrderAdapter, deps: [{ token: i1.HttpClient }, { token: i2.OccEndpointsService }, { token: i2.ConverterService }], target: i0.ɵɵFactoryTarget.Injectable });
OccReplenishmentOrderAdapter.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: OccReplenishmentOrderAdapter });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: OccReplenishmentOrderAdapter, decorators: [{
type: Injectable
}], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.OccEndpointsService }, { type: i2.ConverterService }]; } });
// Imported for side effects (module augmentation)
const defaultOccOrderConfig = {
backend: {
occ: {
endpoints: {
/* eslint-disable max-len */
orderHistory: 'users/${userId}/orders',
orderDetail: 'users/${userId}/orders/${orderId}?fields=FULL',
consignmentTracking: 'users/${userId}/orders/${orderCode}/consignments/${consignmentCode}/tracking',
cancelOrder: 'users/${userId}/orders/${orderId}/cancellation',
returnOrder: 'users/${userId}/orderReturns?fields=BASIC,returnEntries(BASIC,refundAmount(formattedValue),orderEntry(basePrice(formattedValue),product(name,code,baseOptions,images(DEFAULT,galleryIndex)))),deliveryCost(formattedValue),totalPrice(formattedValue),subTotal(formattedValue)',
orderReturns: 'users/${userId}/orderReturns?fields=BASIC',
orderReturnDetail: 'users/${userId}/orderReturns/${returnRequestCode}?fields=BASIC,returnEntries(BASIC,refundAmount(formattedValue),orderEntry(basePrice(formattedValue),product(name,code,baseOptions,images(DEFAULT,galleryIndex)))),deliveryCost(formattedValue),totalPrice(formattedValue),subTotal(formattedValue)',
cancelReturn: 'users/${userId}/orderReturns/${returnRequestCode}',
/* eslint-enable */
},
},
},
};
class OrderOccModule {
}
OrderOccModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: OrderOccModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
OrderOccModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: OrderOccModule, imports: [CommonModule] });
OrderOccModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: OrderOccModule, providers: [
provideDefaultConfig(defaultOccOrderConfig),
{ provide: OrderAdapter, useClass: OccOrderAdapter },
{
provide: ReplenishmentOrderAdapter,
useClass: OccReplenishmentOrderAdapter,
},
{
provide: ORDER_RETURN_REQUEST_NORMALIZER,
useExisting: OccReturnRequestNormalizer,
multi: true,
},
], imports: [[CommonModule]] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: OrderOccModule, decorators: [{
type: NgModule,
args: [{
imports: [CommonModule],
providers: [
provideDefaultConfig(defaultOccOrderConfig),
{ provide: OrderAdapter, useClass: OccOrderAdapter },
{
provide: ReplenishmentOrderAdapter,
useClass: OccReplenishmentOrderAdapter,
},
{
provide: ORDER_RETURN_REQUEST_NORMALIZER,
useExisting: OccReturnRequestNormalizer,
multi: true,
},
],
}]
}] });
/**
* Generated bundle index. Do not edit.
*/
export { OccOrderAdapter, OccReplenishmentOrderAdapter, OccReturnRequestNormalizer, OrderOccModule };
//# sourceMappingURL=spartacus-order-occ.js.map