@springtree/eva-sdk-core-service-extensions 1.1.0-beta.2 → 1.1.0-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -6,12 +6,10 @@ export interface IAddToOrderOperation<SVC extends IEvaServiceDefinition = TAddTo
6
6
  payload: Omit<SVC['request'], 'OrderID' | 'TargetOrderID'>;
7
7
  service: new () => SVC;
8
8
  serviceOptions?: IEvaServiceCallOptions;
9
- skipOrderUpdate?: boolean;
10
9
  }
11
10
  export interface IModifyOrderOperation<SVC extends IEvaServiceDefinition = TModifyOrderServices> {
12
11
  payload: Omit<SVC['request'], 'OrderID' | 'TargetOrderID'>;
13
12
  service: new () => SVC;
14
13
  serviceOptions?: IEvaServiceCallOptions;
15
- skipOrderUpdate?: boolean;
16
14
  }
17
15
  //# sourceMappingURL=order-operations.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"order-operations.d.ts","sourceRoot":"","sources":["../../src/orders/order-operations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,EAAE,qBAAqB,EAAE,0BAA0B,EACxD,2BAA2B,EAC3B,2BAA2B,EAC3B,oBAAoB,EACpB,2BAA2B,EAC3B,gCAAgC,EAChC,wBAAwB,EACxB,0BAA0B,EAC1B,cAAc,EACd,6BAA6B,EAC7B,6BAA6B,EAC7B,2BAA2B,EAC3B,iBAAiB,EACjB,qCAAqC,EACrC,0BAA0B,EAC1B,QAAQ,EACR,uBAAuB,EACvB,wBAAwB,EACxB,aAAa,EACb,0BAA0B,EAC1B,qCAAqC,EACrC,gCAAgC,EAChC,gCAAgC,EAChC,4CAA4C,EAC5C,mBAAmB,EACnB,mBAAmB,EACnB,YAAY,EACZ,iBAAiB,EACjB,4BAA4B,EAC5B,0BAA0B,EAC1B,6BAA6B,EAC7B,6CAA6C,EAC7C,qBAAqB,EACtB,MAAM,+BAA+B,CAAC;AAEvC,MAAM,MAAM,mBAAmB,GAC3B,0BAA0B,GAC1B,2BAA2B,GAC3B,2BAA2B,GAC3B,oBAAoB,GACpB,2BAA2B,GAC3B,gCAAgC,GAChC,wBAAwB,GACxB,gCAAgC,CAAC;AAErC,MAAM,MAAM,oBAAoB,GAC5B,0BAA0B,GAC1B,cAAc,GACd,6BAA6B,GAC7B,6BAA6B,GAC7B,2BAA2B,GAC3B,iBAAiB,GACjB,qCAAqC,GACrC,0BAA0B,GAC1B,aAAa,GACb,QAAQ,GACR,uBAAuB,GACvB,wBAAwB,GACxB,0BAA0B,GAC1B,qCAAqC,GACrC,0BAA0B,GAC1B,gCAAgC,GAChC,4CAA4C,GAC5C,mBAAmB,GACnB,mBAAmB,GACnB,YAAY,GACZ,iBAAiB,GACjB,4BAA4B,GAC5B,0BAA0B,GAC1B,6BAA6B,GAC7B,6CAA6C,GAC7C,qBAAqB,GACrB,gCAAgC,CAAC;AAEnC,MAAM,WAAW,oBAAoB,CAAC,GAAG,SAAS,qBAAqB,GAAG,mBAAmB;IAC3F,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,SAAS,GAAG,eAAe,CAAC,CAAC;IAC3D,OAAO,EAAE,UAAU,GAAG,CAAC;IACvB,cAAc,CAAC,EAAE,sBAAsB,CAAC;IACxC,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,qBAAqB,CAAC,GAAG,SAAS,qBAAqB,GAAG,oBAAoB;IAC7F,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,SAAS,GAAG,eAAe,CAAC,CAAC;IAC3D,OAAO,EAAE,UAAU,GAAG,CAAC;IACvB,cAAc,CAAC,EAAE,sBAAsB,CAAC;IACxC,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B"}
1
+ {"version":3,"file":"order-operations.d.ts","sourceRoot":"","sources":["../../src/orders/order-operations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,EAAE,qBAAqB,EAAE,0BAA0B,EACxD,2BAA2B,EAC3B,2BAA2B,EAC3B,oBAAoB,EACpB,2BAA2B,EAC3B,gCAAgC,EAChC,wBAAwB,EACxB,0BAA0B,EAC1B,cAAc,EACd,6BAA6B,EAC7B,6BAA6B,EAC7B,2BAA2B,EAC3B,iBAAiB,EACjB,qCAAqC,EACrC,0BAA0B,EAC1B,QAAQ,EACR,uBAAuB,EACvB,wBAAwB,EACxB,aAAa,EACb,0BAA0B,EAC1B,qCAAqC,EACrC,gCAAgC,EAChC,gCAAgC,EAChC,4CAA4C,EAC5C,mBAAmB,EACnB,mBAAmB,EACnB,YAAY,EACZ,iBAAiB,EACjB,4BAA4B,EAC5B,0BAA0B,EAC1B,6BAA6B,EAC7B,6CAA6C,EAC7C,qBAAqB,EACtB,MAAM,+BAA+B,CAAC;AAEvC,MAAM,MAAM,mBAAmB,GAC3B,0BAA0B,GAC1B,2BAA2B,GAC3B,2BAA2B,GAC3B,oBAAoB,GACpB,2BAA2B,GAC3B,gCAAgC,GAChC,wBAAwB,GACxB,gCAAgC,CAAC;AAErC,MAAM,MAAM,oBAAoB,GAC5B,0BAA0B,GAC1B,cAAc,GACd,6BAA6B,GAC7B,6BAA6B,GAC7B,2BAA2B,GAC3B,iBAAiB,GACjB,qCAAqC,GACrC,0BAA0B,GAC1B,aAAa,GACb,QAAQ,GACR,uBAAuB,GACvB,wBAAwB,GACxB,0BAA0B,GAC1B,qCAAqC,GACrC,0BAA0B,GAC1B,gCAAgC,GAChC,4CAA4C,GAC5C,mBAAmB,GACnB,mBAAmB,GACnB,YAAY,GACZ,iBAAiB,GACjB,4BAA4B,GAC5B,0BAA0B,GAC1B,6BAA6B,GAC7B,6CAA6C,GAC7C,qBAAqB,GACrB,gCAAgC,CAAC;AAEnC,MAAM,WAAW,oBAAoB,CAAC,GAAG,SAAS,qBAAqB,GAAG,mBAAmB;IAC3F,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,SAAS,GAAG,eAAe,CAAC,CAAC;IAC3D,OAAO,EAAE,UAAU,GAAG,CAAC;IACvB,cAAc,CAAC,EAAE,sBAAsB,CAAC;CACzC;AAED,MAAM,WAAW,qBAAqB,CAAC,GAAG,SAAS,qBAAqB,GAAG,oBAAoB;IAC7F,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,SAAS,GAAG,eAAe,CAAC,CAAC;IAC3D,OAAO,EAAE,UAAU,GAAG,CAAC;IACvB,cAAc,CAAC,EAAE,sBAAsB,CAAC;CACzC"}
@@ -16,11 +16,18 @@ export declare class EvaOrder {
16
16
  get orderData(): IOrderData | undefined;
17
17
  get orderData$(): import("rxjs").Observable<IOrderData | undefined>;
18
18
  private _orderService;
19
+ private _pendingOrderUpdate?;
20
+ private _operationQueue;
21
+ private _completedOperations;
22
+ private _currentJobId?;
19
23
  constructor({ context, newOrderType, orderId }: {
20
24
  context: EvaContext;
21
25
  newOrderType?: DataModelsOrderTypes;
22
26
  orderId?: string;
23
27
  });
28
+ private waitForOperationResponse;
29
+ private processOperationQueue;
30
+ private updateOrderData;
24
31
  updateOrder(params?: {
25
32
  serviceCallOptions?: IEvaServiceCallOptions;
26
33
  }): Promise<IOrderData | undefined>;
@@ -1 +1 @@
1
- {"version":3,"file":"order.d.ts","sourceRoot":"","sources":["../../src/orders/order.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AACtF,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,uBAAuB,EAAmD,MAAM,+BAA+B,CAAA;AACxN,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAKlE,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAE/H,MAAM,WAAW,UAAU;IACzB,mBAAmB,CAAC,EAAE,yBAAyB,CAAC;IAChD,OAAO,CAAC,EAAE,sBAAsB,CAAC;IACjC,QAAQ,CAAC,EAAE,uBAAuB,CAAC;IACnC,KAAK,CAAC,EAAE,iBAAiB,CAAC;CAC3B;AAeD,qBAAa,QAAQ;IAEnB,OAAO,CAAC,OAAO,CAAa;IAC5B,OAAO,CAAC,OAAO,CAAC,CAAS;IACzB,OAAO,CAAC,YAAY,CAAuB;IAE3C,OAAO,CAAC,WAAW,CAA0D;IAC7E,IAAW,SAAS,2BAEnB;IACD,IAAW,UAAU,sDAEpB;IAMD,OAAO,CAAC,aAAa,CAAsC;gBAE/C,EACV,OAAO,EACP,YAAY,EACZ,OAAO,EACR,EAAE;QACD,OAAO,EAAE,UAAU,CAAC;QACpB,YAAY,CAAC,EAAE,oBAAoB,CAAC;QACpC,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB;IAQY,WAAW,CAAC,MAAM,CAAC,EAAE;QAChC,kBAAkB,CAAC,EAAE,sBAAsB,CAAC;KAC7C;IA+CY,UAAU,CAAC,GAAG,SAAS,qBAAqB,GAAG,mBAAmB,EAC7E,MAAM,EAAE,oBAAoB,CAAC,GAAG,CAAC,GAChC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAkDd,WAAW,CAAC,GAAG,SAAS,qBAAqB,GAAG,oBAAoB,EAC/E,MAAM,EAAE,qBAAqB,CAAC,GAAG,CAAC,GACjC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;CA8D5B"}
1
+ {"version":3,"file":"order.d.ts","sourceRoot":"","sources":["../../src/orders/order.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AACtF,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,uBAAuB,EAAmD,MAAM,+BAA+B,CAAA;AACxN,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAKlE,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAE/H,MAAM,WAAW,UAAU;IACzB,mBAAmB,CAAC,EAAE,yBAAyB,CAAC;IAChD,OAAO,CAAC,EAAE,sBAAsB,CAAC;IACjC,QAAQ,CAAC,EAAE,uBAAuB,CAAC;IACnC,KAAK,CAAC,EAAE,iBAAiB,CAAC;CAC3B;AAeD,qBAAa,QAAQ;IAEnB,OAAO,CAAC,OAAO,CAAa;IAC5B,OAAO,CAAC,OAAO,CAAC,CAAS;IACzB,OAAO,CAAC,YAAY,CAAuB;IAE3C,OAAO,CAAC,WAAW,CAA0D;IAC7E,IAAW,SAAS,2BAEnB;IACD,IAAW,UAAU,sDAEpB;IAMD,OAAO,CAAC,aAAa,CAAsC;IAC3D,OAAO,CAAC,mBAAmB,CAAC,CAAkC;IAS9D,OAAO,CAAC,eAAe,CAAsG;IAC7H,OAAO,CAAC,oBAAoB,CAAgI;IAC5J,OAAO,CAAC,aAAa,CAAC,CAAS;gBAEnB,EACV,OAAO,EACP,YAAY,EACZ,OAAO,EACR,EAAE;QACD,OAAO,EAAE,UAAU,CAAC;QACpB,YAAY,CAAC,EAAE,oBAAoB,CAAC;QACpC,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB;YASa,wBAAwB;IA0BtC,OAAO,CAAC,qBAAqB;YAmCf,eAAe;IAkDhB,WAAW,CAAC,MAAM,CAAC,EAAE;QAChC,kBAAkB,CAAC,EAAE,sBAAsB,CAAC;KAC7C;IAaY,UAAU,CAAC,GAAG,SAAS,qBAAqB,GAAG,mBAAmB,EAC7E,MAAM,EAAE,oBAAoB,CAAC,GAAG,CAAC,GAChC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAqEd,WAAW,CAAC,GAAG,SAAS,qBAAqB,GAAG,oBAAoB,EAC/E,MAAM,EAAE,qBAAqB,CAAC,GAAG,CAAC,GACjC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;CA8F5B"}
@@ -2,7 +2,7 @@ import { logger } from '@springtree/eva-sdk-core-logger';
2
2
  import { DataModelsOrderTypes, SvcCreateOrder, SvcGetOrder, SvcGetShoppingCart } from '@springtree/eva-services-core';
3
3
  import { dequal } from 'dequal';
4
4
  import { v4 } from 'uuid';
5
- import { BehaviorSubject } from 'rxjs';
5
+ import { BehaviorSubject, Subject, filter, firstValueFrom, timeout } from 'rxjs';
6
6
  import { getCoreServiceExtensionsSettings } from '../settings.js';
7
7
  // This class ben be used to
8
8
  //
@@ -33,14 +33,83 @@ export class EvaOrder {
33
33
  // If an order is still being actively modified the GetShoppingCart service should be used
34
34
  //
35
35
  _orderService = 'order';
36
+ _pendingOrderUpdate;
37
+ // The order operation queue is a map so we can rely on the insertion order
38
+ // to process the operations in the same order they were added
39
+ // This matters most when the first operation will create a new order
40
+ // Also consecutive operations on the same order will likely lock the order on the backend
41
+ // so there is little to no value in making the calls in parallel.
42
+ // The string key for the map is a unique v4 uuid which functions a a job identifier
43
+ //
44
+ _operationQueue = new Map();
45
+ _completedOperations = new Subject();
46
+ _currentJobId;
36
47
  constructor({ context, newOrderType, orderId }) {
37
48
  this.context = context;
38
49
  this.newOrderType = newOrderType ?? DataModelsOrderTypes.Sales;
39
50
  this.orderId = orderId;
40
51
  }
41
- // Updates the order data
52
+ // Listen for the operation to complete and return the response
53
+ // We will add a fairly long timeout to this to ensure we don't wait forever
42
54
  //
43
- async updateOrder(params) {
55
+ async waitForOperationResponse(jobId) {
56
+ try {
57
+ const operationResponse = await firstValueFrom(this._completedOperations.pipe(filter(({ jobId: completedJobId }) => completedJobId === jobId), timeout(180000)));
58
+ if (operationResponse.error) {
59
+ throw new Error(operationResponse.error);
60
+ }
61
+ return operationResponse.response;
62
+ }
63
+ catch (error) {
64
+ logger.error(`[EVA-ORDER] Failed to complete order operation ${jobId}`, error);
65
+ throw error;
66
+ }
67
+ finally {
68
+ // Processing the operation should have removed it from the queue
69
+ // but to always ensure proper queue cleanup we will remove it here as well.
70
+ // Map.delete(..) will return false if the key was not found.
71
+ //
72
+ this._operationQueue.delete(jobId);
73
+ }
74
+ }
75
+ // This method can be used to start or continue processing the current operation queue
76
+ //
77
+ processOperationQueue() {
78
+ if (this._currentJobId) {
79
+ return;
80
+ }
81
+ const jobId = this._operationQueue.keys().next().value;
82
+ if (jobId) {
83
+ this._currentJobId = jobId;
84
+ const currentJob = this._operationQueue.get(jobId);
85
+ if (currentJob) {
86
+ logger.debug(`[EVA-ORDER] Job ${jobId} starting`);
87
+ currentJob()
88
+ .then((response) => {
89
+ logger.debug(`[EVA-ORDER] Job ${jobId} completed successfully`);
90
+ this._completedOperations.next({ jobId, response });
91
+ })
92
+ .catch((error) => {
93
+ logger.error(`[EVA-ORDER] Job ${jobId} failed`, error);
94
+ this._completedOperations.next({ jobId, error: error.message });
95
+ })
96
+ .finally(() => {
97
+ this._currentJobId = undefined;
98
+ this._operationQueue.delete(jobId);
99
+ this.processOperationQueue();
100
+ });
101
+ }
102
+ else {
103
+ logger.warn(`[EVA-ORDER] Order operation ${jobId} not found in queue`);
104
+ this._currentJobId = undefined;
105
+ this.processOperationQueue();
106
+ }
107
+ }
108
+ }
109
+ // This method will update the order data from the backend and emit
110
+ // an order data update if the order data has changed (deep equal)
111
+ //
112
+ async updateOrderData(params) {
44
113
  if (this.orderId) {
45
114
  const orderId = this.orderId;
46
115
  const settings = getCoreServiceExtensionsSettings();
@@ -72,6 +141,19 @@ export class EvaOrder {
72
141
  return newOrderData;
73
142
  }
74
143
  }
144
+ // Request an update for the order data. Multiple calls to this method
145
+ // will only result in a single request to the backend while a call it
146
+ // pending. The order data will be updated when the request completes
147
+ //
148
+ async updateOrder(params) {
149
+ if (this._pendingOrderUpdate) {
150
+ return this._pendingOrderUpdate;
151
+ }
152
+ this._pendingOrderUpdate = this.updateOrderData(params);
153
+ const response = await this._pendingOrderUpdate;
154
+ this._pendingOrderUpdate = undefined;
155
+ return response;
156
+ }
75
157
  // Perform an operation on the order which will add or set
76
158
  // new details of the order. If no current order exists one will be created
77
159
  //
@@ -81,87 +163,131 @@ export class EvaOrder {
81
163
  if (currentOrderData?.order?.IsCompleted) {
82
164
  throw new Error(`Order ${orderId} is in a completed state and cannot be modified`);
83
165
  }
84
- const { payload, service, serviceOptions } = params;
85
- // Create the new order first if needed
166
+ // Add a new operation to the queue
86
167
  //
87
- if (!orderId) {
88
- const createdOrder = await this.context.callService(SvcCreateOrder, { Type: this.newOrderType, ClientOrderID: v4() }, serviceOptions);
89
- orderId = createdOrder?.OrderID;
90
- // This really should not be possible but throwing an error to be sure
168
+ const jobId = v4();
169
+ this._operationQueue.set(jobId, async () => {
170
+ const { payload, service, serviceOptions } = params;
171
+ // Create the new order first (if needed)
91
172
  //
92
173
  if (!orderId) {
93
- throw new Error(`Failed to create new order`);
174
+ const createdOrder = await this.context.callService(SvcCreateOrder, { Type: this.newOrderType, ClientOrderID: v4() }, serviceOptions);
175
+ orderId = createdOrder?.OrderID;
176
+ // This really should not be possible but throwing an error to be sure
177
+ //
178
+ if (!orderId) {
179
+ throw new Error(`Failed to create new order`);
180
+ }
181
+ logger.debug(`[EVA-ORDER] Created new order ${orderId}`);
182
+ this.orderId = orderId;
183
+ }
184
+ // Ensure we are in shopping cart mode now that we are modifying the order
185
+ //
186
+ this._orderService = 'shopping-cart';
187
+ // Add the order id to the payload
188
+ //
189
+ const requestPayload = {
190
+ ...payload,
191
+ };
192
+ requestPayload.OrderID = orderId;
193
+ const response = await this.context.callService(service, requestPayload, serviceOptions);
194
+ return response;
195
+ });
196
+ this.processOperationQueue();
197
+ try {
198
+ const response = await this.waitForOperationResponse(jobId);
199
+ if (this._operationQueue.size === 0) {
200
+ await this.updateOrder();
94
201
  }
95
- logger.debug(`Created new order ${orderId}`);
96
- this.orderId = orderId;
202
+ return response;
97
203
  }
98
- // Ensure we are in shopping cart mode now that we are modifying the order
99
- //
100
- this._orderService = 'shopping-cart';
101
- // Add the order id to the payload
102
- //
103
- const requestPayload = {
104
- ...payload,
105
- };
106
- requestPayload.OrderID = orderId;
107
- const response = await this.context.callService(service, requestPayload, serviceOptions);
108
- if (params.skipOrderUpdate !== true) {
109
- await this.updateOrder();
204
+ catch (error) {
205
+ logger.error(`[EVA-ORDER] Failed to add to order ${jobId}`, error);
206
+ throw error;
110
207
  }
111
- return response;
112
208
  }
209
+ // Perform an operation on an existing order to modify it
210
+ // This will not create a new order if one does not exist and will throw an error
211
+ //
113
212
  async modifyOrder(params) {
114
213
  const currentOrderData = this._orderData$.getValue();
115
214
  const orderId = currentOrderData?.order?.ID;
116
215
  if (!orderId) {
117
- throw new Error(`There is no current order to modify. Please create one using addToOrder(...) first`);
216
+ throw new Error(`There is no current order to modify`);
118
217
  }
119
218
  if (currentOrderData?.order?.IsCompleted) {
120
- throw new Error(`Order ${orderId} is in a completed state and cannot be modified`);
219
+ throw new Error(`Order is in a completed state and cannot be modified`);
121
220
  }
122
- const { payload, service, serviceOptions } = params;
123
- // Ensure we are in shopping cart mode now that we are modifying the order
124
- //
125
- this._orderService = 'shopping-cart';
126
- // Certain services require the OrderID in their payload
127
- // You have to instantiate the service to get the name value
128
- // Using it static only works before bundling/transpiling
129
- // Learned that the hard way
221
+ // Add a new operation to the queue
130
222
  //
131
- const requestPayload = {
132
- ...payload,
133
- };
134
- const serviceName = new service().name;
135
- const servicesRequiringOrderID = [
136
- 'AttachCustomerToOrder',
137
- 'CancelOrder',
138
- 'ChangeOrderLinesToCarryOut',
139
- 'ChangeOrderLinesToDelivery',
140
- 'ChangeOrderLinesToPickup',
141
- 'CreateCustomer',
142
- 'DetachCustomerFromOrder',
143
- 'PrepareOrderForCheckout',
144
- 'SetGiftWrappingOptionsOnOrder',
145
- 'SetRemarkOnOrder',
146
- 'UpdateOrderBillingAddress',
147
- 'UpdateOrderCustomFields',
148
- 'UpdateOrderCustomFields',
149
- 'UpdateOrderShippingAddress',
150
- 'SetCustomerIdentifiersOnOrder',
151
- // These two are in core admin which is not a peer dependency
152
- // for this package but it doesn't hurt to include them
223
+ const jobId = v4();
224
+ this._operationQueue.set(jobId, async () => {
225
+ const { payload, service, serviceOptions } = params;
226
+ // Ensure we are in shopping cart mode now that we are modifying the order
153
227
  //
154
- 'AttachLoyaltyProgramToOrder',
155
- 'DetachLoyaltyProgramFromOrder',
156
- ];
157
- if (servicesRequiringOrderID.indexOf(serviceName) !== -1) {
158
- requestPayload.OrderID = orderId;
228
+ this._orderService = 'shopping-cart';
229
+ // Certain services require the OrderID in their payload
230
+ // You have to instantiate the service to get the name value
231
+ // Using it static only works before bundling/transpiling
232
+ // Learned that the hard way
233
+ //
234
+ const requestPayload = {
235
+ ...payload,
236
+ };
237
+ const serviceName = new service().name;
238
+ const servicesRequiringOrderID = [
239
+ 'AttachCustomerToOrder',
240
+ 'CancelOrder',
241
+ 'ChangeOrderLinesToCarryOut',
242
+ 'ChangeOrderLinesToDelivery',
243
+ 'ChangeOrderLinesToPickup',
244
+ 'CreateCustomer',
245
+ 'DetachCustomerFromOrder',
246
+ 'PrepareOrderForCheckout',
247
+ 'SetGiftWrappingOptionsOnOrder',
248
+ 'SetRemarkOnOrder',
249
+ 'UpdateOrderBillingAddress',
250
+ 'UpdateOrderCustomFields',
251
+ 'UpdateOrderCustomFields',
252
+ 'UpdateOrderShippingAddress',
253
+ 'SetCustomerIdentifiersOnOrder',
254
+ // These two are in core admin which is not a peer dependency
255
+ // for this package but it doesn't hurt to include them
256
+ //
257
+ 'AttachLoyaltyProgramToOrder',
258
+ 'DetachLoyaltyProgramFromOrder',
259
+ ];
260
+ if (servicesRequiringOrderID.indexOf(serviceName) !== -1) {
261
+ requestPayload.OrderID = orderId;
262
+ }
263
+ const response = await this.context.callService(service, requestPayload, serviceOptions);
264
+ return response;
265
+ });
266
+ this.processOperationQueue();
267
+ try {
268
+ const response = await this.waitForOperationResponse(jobId);
269
+ // Update the order when the queue has drained
270
+ //
271
+ if (this._operationQueue.size === 0) {
272
+ await this.updateOrder();
273
+ }
274
+ return response;
159
275
  }
160
- const response = await this.context.callService(service, requestPayload, serviceOptions);
161
- if (params.skipOrderUpdate !== true) {
162
- await this.updateOrder();
276
+ catch (error) {
277
+ logger.error(`[EVA-ORDER] Failed to add to order ${jobId}`, error);
278
+ // Also update the order when the last operation is a failure
279
+ //
280
+ if (this._operationQueue.size === 0) {
281
+ try {
282
+ await this.updateOrder();
283
+ }
284
+ catch (error) {
285
+ logger.error(`[EVA-ORDER] Failed to update order after failed operation ${jobId}`, error);
286
+ // Do not throw this error but the actual error from the operation
287
+ }
288
+ }
289
+ throw error;
163
290
  }
164
- return response;
165
291
  }
166
292
  }
167
293
  //# sourceMappingURL=order.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"order.js","sourceRoot":"","sources":["../../src/orders/order.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"order.js","sourceRoot":"","sources":["../../src/orders/order.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@springtree/eva-sdk-core-service-extensions",
3
- "version": "1.1.0-beta.2",
3
+ "version": "1.1.0-beta.3",
4
4
  "description": "This package contains various helpers and support classes for working with services from the EVA backend",
5
5
  "keywords": [],
6
6
  "author": "SpringTree <info@springtree.nl>",
@@ -33,10 +33,10 @@
33
33
  "private": false,
34
34
  "dependencies": {
35
35
  "@springtree/eva-sdk-core-logger": "2.1.0-beta.0",
36
- "@springtree/eva-sdk-core-service": "^6.0.0-beta.7",
36
+ "@springtree/eva-sdk-core-service": "^6.0.0-beta.8",
37
37
  "@springtree/eva-services-core": "^3.0.0-beta.53",
38
38
  "dequal": "^2.0.3",
39
39
  "uuid": "^9.0.1"
40
40
  },
41
- "gitHead": "8e0d382c34751520d52c1d6085852bba38d94cd1"
41
+ "gitHead": "7955b7cc05aec4b2f6b0d1781b0050ac0d062658"
42
42
  }