UNPKG

@spartacus/order

Version:

Order feature library for Spartacus

276 lines (267 loc) 13.4 kB
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