@labdigital/commercetools-mock 2.46.0 → 2.47.1
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.
- package/dist/index.cjs +589 -267
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +782 -58
- package/dist/index.d.ts +782 -58
- package/dist/index.js +574 -252
- package/dist/index.js.map +1 -1
- package/package.json +45 -53
- package/src/ctMock.ts +16 -15
- package/src/index.test.ts +5 -5
- package/src/lib/predicateParser.test.ts +62 -62
- package/src/lib/predicateParser.ts +32 -42
- package/src/lib/productSearchFilter.test.ts +18 -0
- package/src/lib/productSearchFilter.ts +7 -0
- package/src/lib/projectionSearchFilter.test.ts +17 -17
- package/src/lib/projectionSearchFilter.ts +2 -3
- package/src/oauth/server.test.ts +9 -1
- package/src/oauth/server.ts +26 -22
- package/src/priceSelector.ts +1 -1
- package/src/product-projection-search.ts +18 -19
- package/src/repositories/business-unit.ts +17 -16
- package/src/repositories/cart/actions.ts +32 -32
- package/src/repositories/cart/helpers.ts +1 -1
- package/src/repositories/cart/index.ts +8 -8
- package/src/repositories/cart-discount/actions.ts +1 -4
- package/src/repositories/category/actions.ts +2 -6
- package/src/repositories/custom-object.ts +20 -21
- package/src/repositories/customer/actions.ts +4 -4
- package/src/repositories/errors.ts +1 -1
- package/src/repositories/extension.ts +2 -1
- package/src/repositories/helpers.ts +27 -27
- package/src/repositories/index.ts +17 -17
- package/src/repositories/my-customer.ts +1 -1
- package/src/repositories/my-order.ts +2 -2
- package/src/repositories/order/index.ts +1 -1
- package/src/repositories/product/actions.ts +1 -1
- package/src/repositories/quote/actions.ts +83 -0
- package/src/repositories/quote/index.ts +54 -0
- package/src/repositories/quote-request/actions.ts +84 -0
- package/src/repositories/quote-request/index.test.ts +167 -0
- package/src/repositories/quote-request/index.ts +67 -0
- package/src/repositories/quote-staged/actions.ts +84 -0
- package/src/repositories/quote-staged/index.ts +47 -0
- package/src/repositories/review.ts +4 -4
- package/src/repositories/shipping-method/actions.ts +17 -17
- package/src/repositories/shipping-method/index.ts +6 -6
- package/src/repositories/shopping-list/actions.ts +1 -1
- package/src/repositories/shopping-list/index.ts +9 -1
- package/src/repositories/subscription.ts +2 -4
- package/src/server.ts +3 -2
- package/src/services/abstract.ts +32 -22
- package/src/services/as-associate-order.test.ts +1 -1
- package/src/services/cart-discount.test.ts +1 -1
- package/src/services/cart.test.ts +15 -15
- package/src/services/cart.ts +3 -2
- package/src/services/category.test.ts +1 -1
- package/src/services/custom-object.ts +8 -6
- package/src/services/customer.test.ts +4 -4
- package/src/services/customer.ts +5 -5
- package/src/services/index.ts +20 -14
- package/src/services/inventory-entry.test.ts +5 -5
- package/src/services/my-cart.test.ts +2 -2
- package/src/services/my-cart.ts +3 -2
- package/src/services/my-customer.test.ts +2 -2
- package/src/services/my-customer.ts +16 -12
- package/src/services/order.test.ts +8 -8
- package/src/services/order.ts +4 -3
- package/src/services/product-projection.test.ts +5 -5
- package/src/services/product-projection.ts +14 -16
- package/src/services/product.test.ts +1 -1
- package/src/services/product.ts +1 -1
- package/src/services/project.ts +4 -3
- package/src/services/quote-request.test.ts +59 -0
- package/src/services/quote-request.ts +16 -0
- package/src/services/quote-staged.ts +16 -0
- package/src/services/quote.ts +16 -0
- package/src/services/shipping-method.ts +4 -2
- package/src/services/standalone-price.test.ts +4 -4
- package/src/services/state.test.ts +1 -1
- package/src/services/store.test.ts +2 -2
- package/src/services/tax-category.test.ts +1 -1
- package/src/shipping.ts +3 -3
- package/src/storage/in-memory.ts +55 -63
- package/src/testing/customer.ts +1 -1
- package/src/types.ts +51 -31
- package/src/repositories/quote-request.ts +0 -17
- package/src/repositories/quote.ts +0 -14
- package/src/repositories/staged-quote.ts +0 -17
package/dist/index.cjs
CHANGED
|
@@ -28,12 +28,12 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
28
28
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
29
|
|
|
30
30
|
// src/index.ts
|
|
31
|
-
var
|
|
32
|
-
__export(
|
|
31
|
+
var index_exports = {};
|
|
32
|
+
__export(index_exports, {
|
|
33
33
|
CommercetoolsMock: () => CommercetoolsMock,
|
|
34
34
|
getBaseResourceProperties: () => getBaseResourceProperties
|
|
35
35
|
});
|
|
36
|
-
module.exports = __toCommonJS(
|
|
36
|
+
module.exports = __toCommonJS(index_exports);
|
|
37
37
|
|
|
38
38
|
// src/ctMock.ts
|
|
39
39
|
var import_express10 = __toESM(require("express"), 1);
|
|
@@ -361,7 +361,7 @@ var OAuth2Server = class {
|
|
|
361
361
|
)
|
|
362
362
|
);
|
|
363
363
|
}
|
|
364
|
-
const grantType = request.query.grant_type || request.body
|
|
364
|
+
const grantType = request.query.grant_type || request.body?.grant_type;
|
|
365
365
|
if (!grantType) {
|
|
366
366
|
return next(
|
|
367
367
|
new CommercetoolsError(
|
|
@@ -379,9 +379,11 @@ var OAuth2Server = class {
|
|
|
379
379
|
request.credentials.clientSecret,
|
|
380
380
|
request.query.scope?.toString()
|
|
381
381
|
);
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
382
|
+
response.status(200).send(token);
|
|
383
|
+
return;
|
|
384
|
+
}
|
|
385
|
+
if (grantType === "refresh_token") {
|
|
386
|
+
const refreshToken = request.query.refresh_token?.toString() || request.body?.refresh_token;
|
|
385
387
|
if (!refreshToken) {
|
|
386
388
|
return next(
|
|
387
389
|
new CommercetoolsError(
|
|
@@ -411,22 +413,22 @@ var OAuth2Server = class {
|
|
|
411
413
|
)
|
|
412
414
|
);
|
|
413
415
|
}
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
return next(
|
|
417
|
-
new CommercetoolsError(
|
|
418
|
-
{
|
|
419
|
-
code: "unsupported_grant_type",
|
|
420
|
-
message: `Invalid parameter: grant_type: Invalid grant type: ${grantType}`
|
|
421
|
-
},
|
|
422
|
-
400
|
|
423
|
-
)
|
|
424
|
-
);
|
|
416
|
+
response.status(200).send(token);
|
|
417
|
+
return;
|
|
425
418
|
}
|
|
419
|
+
return next(
|
|
420
|
+
new CommercetoolsError(
|
|
421
|
+
{
|
|
422
|
+
code: "unsupported_grant_type",
|
|
423
|
+
message: `Invalid parameter: grant_type: Invalid grant type: ${grantType}`
|
|
424
|
+
},
|
|
425
|
+
400
|
|
426
|
+
)
|
|
427
|
+
);
|
|
426
428
|
}
|
|
427
429
|
async customerTokenHandler(request, response, next) {
|
|
428
430
|
const projectKey = request.params.projectKey;
|
|
429
|
-
const grantType = request.query.grant_type || request.body
|
|
431
|
+
const grantType = request.query.grant_type || request.body?.grant_type;
|
|
430
432
|
if (!grantType) {
|
|
431
433
|
return next(
|
|
432
434
|
new CommercetoolsError(
|
|
@@ -439,11 +441,11 @@ var OAuth2Server = class {
|
|
|
439
441
|
);
|
|
440
442
|
}
|
|
441
443
|
if (grantType === "password") {
|
|
442
|
-
const username = request.query.username || request.body
|
|
444
|
+
const username = request.query.username || request.body?.username;
|
|
443
445
|
const password = hashPassword(
|
|
444
446
|
request.query.password || request.body.password
|
|
445
447
|
);
|
|
446
|
-
const scope = request.query.scope?.toString() || request.body
|
|
448
|
+
const scope = request.query.scope?.toString() || request.body?.scope?.toString();
|
|
447
449
|
const result = this.customerRepository.query(
|
|
448
450
|
{ projectKey: request.params.projectKey },
|
|
449
451
|
{
|
|
@@ -463,7 +465,7 @@ var OAuth2Server = class {
|
|
|
463
465
|
}
|
|
464
466
|
const customer = result.results[0];
|
|
465
467
|
const token = this.store.getCustomerToken(projectKey, customer.id, scope);
|
|
466
|
-
|
|
468
|
+
response.status(200).send(token);
|
|
467
469
|
}
|
|
468
470
|
}
|
|
469
471
|
async inStoreCustomerTokenHandler(request, response, next) {
|
|
@@ -506,7 +508,8 @@ var OAuth2Server = class {
|
|
|
506
508
|
}
|
|
507
509
|
const customer = result.results[0];
|
|
508
510
|
const token = this.store.getCustomerToken(projectKey, customer.id, scope);
|
|
509
|
-
|
|
511
|
+
response.status(200).send(token);
|
|
512
|
+
return;
|
|
510
513
|
}
|
|
511
514
|
}
|
|
512
515
|
async anonymousTokenHandler(request, response, next) {
|
|
@@ -524,14 +527,15 @@ var OAuth2Server = class {
|
|
|
524
527
|
);
|
|
525
528
|
}
|
|
526
529
|
if (grantType === "client_credentials") {
|
|
527
|
-
const scope = request.query.scope?.toString() || request.body
|
|
530
|
+
const scope = request.query.scope?.toString() || request.body?.scope?.toString();
|
|
528
531
|
const anonymous_id = void 0;
|
|
529
532
|
const token = this.store.getAnonymousToken(
|
|
530
533
|
projectKey,
|
|
531
534
|
anonymous_id,
|
|
532
535
|
scope
|
|
533
536
|
);
|
|
534
|
-
|
|
537
|
+
response.status(200).send(token);
|
|
538
|
+
return;
|
|
535
539
|
}
|
|
536
540
|
}
|
|
537
541
|
};
|
|
@@ -1069,12 +1073,12 @@ var getShippingMethodsMatchingCart = (context, storage, cart, params = {}) => {
|
|
|
1069
1073
|
context.projectKey,
|
|
1070
1074
|
"shipping-method",
|
|
1071
1075
|
{
|
|
1072
|
-
|
|
1073
|
-
|
|
1076
|
+
where: [
|
|
1077
|
+
"zoneRates(zone(id in (:zoneIds)))",
|
|
1074
1078
|
`zoneRates(shippingRates(price(currencyCode="${cart.totalPrice.currencyCode}")))`
|
|
1075
1079
|
],
|
|
1076
1080
|
"var.zoneIds": zoneIds,
|
|
1077
|
-
|
|
1081
|
+
expand: params.expand
|
|
1078
1082
|
}
|
|
1079
1083
|
);
|
|
1080
1084
|
const results = shippingMethods.results.map((shippingMethod) => {
|
|
@@ -1110,7 +1114,7 @@ var selectPrice = ({
|
|
|
1110
1114
|
return countryMatch && currencyMatch;
|
|
1111
1115
|
});
|
|
1112
1116
|
};
|
|
1113
|
-
var calculateLineItemTotalPrice = (lineItem) => lineItem.price
|
|
1117
|
+
var calculateLineItemTotalPrice = (lineItem) => lineItem.price?.value.centAmount * lineItem.quantity;
|
|
1114
1118
|
var calculateCartTotalPrice = (cart) => cart.lineItems.reduce((cur, item) => cur + item.totalPrice.centAmount, 0);
|
|
1115
1119
|
|
|
1116
1120
|
// src/repositories/cart/actions.ts
|
|
@@ -1244,7 +1248,7 @@ var CartUpdateHandler = class extends AbstractUpdateHandler {
|
|
|
1244
1248
|
} else {
|
|
1245
1249
|
throw new CommercetoolsError({
|
|
1246
1250
|
code: "General",
|
|
1247
|
-
message:
|
|
1251
|
+
message: "Either lineItemid or lineItemKey needs to be provided."
|
|
1248
1252
|
});
|
|
1249
1253
|
}
|
|
1250
1254
|
if (quantity === 0) {
|
|
@@ -1511,7 +1515,7 @@ var CartUpdateHandler = class extends AbstractUpdateHandler {
|
|
|
1511
1515
|
});
|
|
1512
1516
|
}
|
|
1513
1517
|
const zoneRate = method.zoneRates.find(
|
|
1514
|
-
(rate) => rate.zone.obj
|
|
1518
|
+
(rate) => rate.zone.obj?.locations.some((loc) => loc.country === country)
|
|
1515
1519
|
);
|
|
1516
1520
|
if (!zoneRate) {
|
|
1517
1521
|
throw new Error("Zone rate not found");
|
|
@@ -1729,7 +1733,7 @@ var CartRepository = class extends AbstractResourceRepository {
|
|
|
1729
1733
|
};
|
|
1730
1734
|
|
|
1731
1735
|
// src/repositories/order/index.ts
|
|
1732
|
-
var
|
|
1736
|
+
var import_node_assert = __toESM(require("assert"), 1);
|
|
1733
1737
|
|
|
1734
1738
|
// src/repositories/order/actions.ts
|
|
1735
1739
|
var OrderUpdateHandler = class extends AbstractUpdateHandler {
|
|
@@ -1934,7 +1938,7 @@ var OrderRepository = class extends AbstractResourceRepository {
|
|
|
1934
1938
|
this.actions = new OrderUpdateHandler(config.storage);
|
|
1935
1939
|
}
|
|
1936
1940
|
create(context, draft) {
|
|
1937
|
-
(0,
|
|
1941
|
+
(0, import_node_assert.default)(draft.cart, "draft.cart is missing");
|
|
1938
1942
|
return this.createFromCart(
|
|
1939
1943
|
context,
|
|
1940
1944
|
{
|
|
@@ -1989,7 +1993,7 @@ var OrderRepository = class extends AbstractResourceRepository {
|
|
|
1989
1993
|
return this.saveNew(context, resource);
|
|
1990
1994
|
}
|
|
1991
1995
|
import(context, draft) {
|
|
1992
|
-
(0,
|
|
1996
|
+
(0, import_node_assert.default)(this, "OrderRepository not valid");
|
|
1993
1997
|
const resource = {
|
|
1994
1998
|
...getBaseResourceProperties(),
|
|
1995
1999
|
billingAddress: createAddress(
|
|
@@ -2296,7 +2300,8 @@ var BusinessUnitRepository = class extends AbstractResourceRepository {
|
|
|
2296
2300
|
};
|
|
2297
2301
|
this.saveNew(context, division);
|
|
2298
2302
|
return division;
|
|
2299
|
-
}
|
|
2303
|
+
}
|
|
2304
|
+
if (this._isCompanyDraft(draft)) {
|
|
2300
2305
|
const company = resource;
|
|
2301
2306
|
this.saveNew(context, company);
|
|
2302
2307
|
return company;
|
|
@@ -2418,7 +2423,7 @@ var CartDiscountUpdateHandler = class extends AbstractUpdateHandler {
|
|
|
2418
2423
|
throw new CommercetoolsError(
|
|
2419
2424
|
{
|
|
2420
2425
|
code: "InvalidOperation",
|
|
2421
|
-
message:
|
|
2426
|
+
message: `Cannot remove custom field ${name} because it does not exist.`
|
|
2422
2427
|
},
|
|
2423
2428
|
400
|
|
2424
2429
|
);
|
|
@@ -2598,15 +2603,11 @@ var CategoryUpdateHandler = class extends AbstractUpdateHandler {
|
|
|
2598
2603
|
return;
|
|
2599
2604
|
}
|
|
2600
2605
|
if (assetId) {
|
|
2601
|
-
resource.assets = resource.assets.filter(
|
|
2602
|
-
return obj.id !== assetId;
|
|
2603
|
-
});
|
|
2606
|
+
resource.assets = resource.assets.filter((obj) => obj.id !== assetId);
|
|
2604
2607
|
return;
|
|
2605
2608
|
}
|
|
2606
2609
|
if (assetKey) {
|
|
2607
|
-
resource.assets = resource.assets.filter(
|
|
2608
|
-
return obj.key !== assetKey;
|
|
2609
|
-
});
|
|
2610
|
+
resource.assets = resource.assets.filter((obj) => obj.key !== assetKey);
|
|
2610
2611
|
return;
|
|
2611
2612
|
}
|
|
2612
2613
|
}
|
|
@@ -2829,26 +2830,25 @@ var CustomObjectRepository = class extends AbstractResourceRepository {
|
|
|
2829
2830
|
return updated;
|
|
2830
2831
|
}
|
|
2831
2832
|
return current;
|
|
2832
|
-
} else {
|
|
2833
|
-
if (draft.version) {
|
|
2834
|
-
throw new CommercetoolsError(
|
|
2835
|
-
{
|
|
2836
|
-
code: "InvalidOperation",
|
|
2837
|
-
message: "version on create must be 0"
|
|
2838
|
-
},
|
|
2839
|
-
400
|
|
2840
|
-
);
|
|
2841
|
-
}
|
|
2842
|
-
const baseProperties = getBaseResourceProperties();
|
|
2843
|
-
const resource = {
|
|
2844
|
-
...baseProperties,
|
|
2845
|
-
container: draft.container,
|
|
2846
|
-
key: draft.key,
|
|
2847
|
-
value: draft.value
|
|
2848
|
-
};
|
|
2849
|
-
this.saveNew(context, resource);
|
|
2850
|
-
return resource;
|
|
2851
2833
|
}
|
|
2834
|
+
if (draft.version) {
|
|
2835
|
+
throw new CommercetoolsError(
|
|
2836
|
+
{
|
|
2837
|
+
code: "InvalidOperation",
|
|
2838
|
+
message: "version on create must be 0"
|
|
2839
|
+
},
|
|
2840
|
+
400
|
|
2841
|
+
);
|
|
2842
|
+
}
|
|
2843
|
+
const baseProperties = getBaseResourceProperties();
|
|
2844
|
+
const resource = {
|
|
2845
|
+
...baseProperties,
|
|
2846
|
+
container: draft.container,
|
|
2847
|
+
key: draft.key,
|
|
2848
|
+
value: draft.value
|
|
2849
|
+
};
|
|
2850
|
+
this.saveNew(context, resource);
|
|
2851
|
+
return resource;
|
|
2852
2852
|
}
|
|
2853
2853
|
getWithContainerAndKey(context, container, key) {
|
|
2854
2854
|
const items = this._storage.all(context.projectKey, this.getTypeId());
|
|
@@ -2873,7 +2873,7 @@ var CustomObjectRepository = class extends AbstractResourceRepository {
|
|
|
2873
2873
|
};
|
|
2874
2874
|
|
|
2875
2875
|
// src/repositories/customer/actions.ts
|
|
2876
|
-
var
|
|
2876
|
+
var import_node_assert2 = __toESM(require("assert"), 1);
|
|
2877
2877
|
var CustomerUpdateHandler = class extends AbstractUpdateHandler {
|
|
2878
2878
|
addAddress(_context, resource, { address }) {
|
|
2879
2879
|
resource.addresses.push({
|
|
@@ -2883,7 +2883,7 @@ var CustomerUpdateHandler = class extends AbstractUpdateHandler {
|
|
|
2883
2883
|
}
|
|
2884
2884
|
addBillingAddressId(_context, resource, { addressId, addressKey }) {
|
|
2885
2885
|
const address = this._findAddress(resource, addressId, addressKey, true);
|
|
2886
|
-
(0,
|
|
2886
|
+
(0, import_node_assert2.default)(address?.id);
|
|
2887
2887
|
if (resource.billingAddressIds === void 0) {
|
|
2888
2888
|
resource.billingAddressIds = [];
|
|
2889
2889
|
}
|
|
@@ -2893,7 +2893,7 @@ var CustomerUpdateHandler = class extends AbstractUpdateHandler {
|
|
|
2893
2893
|
}
|
|
2894
2894
|
addShippingAddressId(_context, resource, { addressId, addressKey }) {
|
|
2895
2895
|
const address = this._findAddress(resource, addressId, addressKey, true);
|
|
2896
|
-
(0,
|
|
2896
|
+
(0, import_node_assert2.default)(address?.id);
|
|
2897
2897
|
if (resource.shippingAddressIds === void 0) {
|
|
2898
2898
|
resource.shippingAddressIds = [];
|
|
2899
2899
|
}
|
|
@@ -2907,7 +2907,7 @@ var CustomerUpdateHandler = class extends AbstractUpdateHandler {
|
|
|
2907
2907
|
}
|
|
2908
2908
|
changeAddress(context, resource, { addressId, addressKey, address }) {
|
|
2909
2909
|
const current = this._findAddress(resource, addressId, addressKey, true);
|
|
2910
|
-
(0,
|
|
2910
|
+
(0, import_node_assert2.default)(current?.id);
|
|
2911
2911
|
const oldAddressIndex = resource.addresses.findIndex(
|
|
2912
2912
|
(a) => a.id === current.id
|
|
2913
2913
|
);
|
|
@@ -2933,7 +2933,7 @@ var CustomerUpdateHandler = class extends AbstractUpdateHandler {
|
|
|
2933
2933
|
action.addressKey,
|
|
2934
2934
|
true
|
|
2935
2935
|
);
|
|
2936
|
-
(0,
|
|
2936
|
+
(0, import_node_assert2.default)(address?.id);
|
|
2937
2937
|
resource.addresses = resource.addresses.filter((a) => a.id !== address.id);
|
|
2938
2938
|
}
|
|
2939
2939
|
removeBillingAddressId(context, resource, action) {
|
|
@@ -2943,7 +2943,7 @@ var CustomerUpdateHandler = class extends AbstractUpdateHandler {
|
|
|
2943
2943
|
action.addressKey,
|
|
2944
2944
|
true
|
|
2945
2945
|
);
|
|
2946
|
-
(0,
|
|
2946
|
+
(0, import_node_assert2.default)(address?.id);
|
|
2947
2947
|
resource.billingAddressIds = resource.billingAddressIds?.filter(
|
|
2948
2948
|
(id) => id !== address.id
|
|
2949
2949
|
);
|
|
@@ -2958,7 +2958,7 @@ var CustomerUpdateHandler = class extends AbstractUpdateHandler {
|
|
|
2958
2958
|
action.addressKey,
|
|
2959
2959
|
true
|
|
2960
2960
|
);
|
|
2961
|
-
(0,
|
|
2961
|
+
(0, import_node_assert2.default)(address?.id);
|
|
2962
2962
|
resource.shippingAddressIds = resource.shippingAddressIds?.filter(
|
|
2963
2963
|
(id) => id !== address.id
|
|
2964
2964
|
);
|
|
@@ -2987,7 +2987,7 @@ var CustomerUpdateHandler = class extends AbstractUpdateHandler {
|
|
|
2987
2987
|
}
|
|
2988
2988
|
resource.authenticationMode = authMode;
|
|
2989
2989
|
if (authMode === "ExternalAuth") {
|
|
2990
|
-
|
|
2990
|
+
resource.password = void 0;
|
|
2991
2991
|
return;
|
|
2992
2992
|
}
|
|
2993
2993
|
if (authMode === "Password") {
|
|
@@ -3060,7 +3060,7 @@ var CustomerUpdateHandler = class extends AbstractUpdateHandler {
|
|
|
3060
3060
|
action.addressKey,
|
|
3061
3061
|
true
|
|
3062
3062
|
);
|
|
3063
|
-
(0,
|
|
3063
|
+
(0, import_node_assert2.default)(address?.id);
|
|
3064
3064
|
resource.defaultBillingAddressId = address.id;
|
|
3065
3065
|
if (resource.billingAddressIds === void 0) {
|
|
3066
3066
|
resource.billingAddressIds = [];
|
|
@@ -3076,7 +3076,7 @@ var CustomerUpdateHandler = class extends AbstractUpdateHandler {
|
|
|
3076
3076
|
action.addressKey,
|
|
3077
3077
|
true
|
|
3078
3078
|
);
|
|
3079
|
-
(0,
|
|
3079
|
+
(0, import_node_assert2.default)(address?.id);
|
|
3080
3080
|
resource.defaultShippingAddressId = address.id;
|
|
3081
3081
|
if (resource.shippingAddressIds === void 0) {
|
|
3082
3082
|
resource.shippingAddressIds = [];
|
|
@@ -3541,7 +3541,8 @@ var ExtensionRepository = class extends AbstractResourceRepository {
|
|
|
3541
3541
|
extension,
|
|
3542
3542
|
"destination.authentication.headerValue"
|
|
3543
3543
|
);
|
|
3544
|
-
}
|
|
3544
|
+
}
|
|
3545
|
+
if (extension.destination.type === "AWSLambda") {
|
|
3545
3546
|
return maskSecretValue(resource, "destination.accessSecret");
|
|
3546
3547
|
}
|
|
3547
3548
|
}
|
|
@@ -3708,10 +3709,10 @@ var MyCustomerRepository = class extends CustomerRepository {
|
|
|
3708
3709
|
};
|
|
3709
3710
|
|
|
3710
3711
|
// src/repositories/my-order.ts
|
|
3711
|
-
var
|
|
3712
|
+
var import_node_assert3 = __toESM(require("assert"), 1);
|
|
3712
3713
|
var MyOrderRepository = class extends OrderRepository {
|
|
3713
3714
|
create(context, draft) {
|
|
3714
|
-
(0,
|
|
3715
|
+
(0, import_node_assert3.default)(draft.id, "draft.id is missing");
|
|
3715
3716
|
const cartIdentifier = {
|
|
3716
3717
|
id: draft.id,
|
|
3717
3718
|
typeId: "cart"
|
|
@@ -4521,7 +4522,7 @@ var parseFilter = (filter) => {
|
|
|
4521
4522
|
(t) => ({
|
|
4522
4523
|
type: "Symbol",
|
|
4523
4524
|
kind: "int",
|
|
4524
|
-
value: parseInt(t.token.match, 10)
|
|
4525
|
+
value: Number.parseInt(t.token.match, 10)
|
|
4525
4526
|
})
|
|
4526
4527
|
).nud("STAR", 5, (_) => ({
|
|
4527
4528
|
type: "Symbol",
|
|
@@ -4545,9 +4546,8 @@ var parseFilter = (filter) => {
|
|
|
4545
4546
|
const expr = parser.parse({ terminals: [bp - 1] });
|
|
4546
4547
|
if (Array.isArray(expr)) {
|
|
4547
4548
|
return [left, ...expr];
|
|
4548
|
-
} else {
|
|
4549
|
-
return [left, expr];
|
|
4550
4549
|
}
|
|
4550
|
+
return [left, expr];
|
|
4551
4551
|
}).nud("(", 100, (t) => {
|
|
4552
4552
|
const expr = parser.parse({ terminals: [")"] });
|
|
4553
4553
|
lexer.expect(")");
|
|
@@ -4699,6 +4699,12 @@ var parseSearchQuery = (searchQuery) => {
|
|
|
4699
4699
|
return generateFieldMatchFunc(generateRangeMatchFunc, searchQuery.range);
|
|
4700
4700
|
}
|
|
4701
4701
|
if (isSearchExactExpression(searchQuery)) {
|
|
4702
|
+
if (Array.isArray(searchQuery.exact.values)) {
|
|
4703
|
+
return generateFieldMatchFunc(
|
|
4704
|
+
(value) => (searchQuery.exact.values ?? []).includes(value),
|
|
4705
|
+
searchQuery.exact
|
|
4706
|
+
);
|
|
4707
|
+
}
|
|
4702
4708
|
return generateFieldMatchFunc(
|
|
4703
4709
|
(value) => value === searchQuery.exact.value,
|
|
4704
4710
|
searchQuery.exact
|
|
@@ -5317,7 +5323,7 @@ var ProductUpdateHandler = class extends AbstractUpdateHandler {
|
|
|
5317
5323
|
}
|
|
5318
5324
|
if (position >= variantImages.length) {
|
|
5319
5325
|
throw new Error(
|
|
5320
|
-
|
|
5326
|
+
"Invalid position given. Position in images where the image should be moved. Must be between 0 and the total number of images minus 1."
|
|
5321
5327
|
);
|
|
5322
5328
|
}
|
|
5323
5329
|
variant.images = variantImages.filter((image) => image.url !== imageUrl);
|
|
@@ -5950,9 +5956,8 @@ var parseQueryExpression = (predicate) => {
|
|
|
5950
5956
|
if (Array.isArray(predicate)) {
|
|
5951
5957
|
const callbacks = predicate.map((item) => generateMatchFunc2(item));
|
|
5952
5958
|
return (target, variables) => callbacks.every((callback) => callback(target, variables));
|
|
5953
|
-
} else {
|
|
5954
|
-
return generateMatchFunc2(predicate);
|
|
5955
5959
|
}
|
|
5960
|
+
return generateMatchFunc2(predicate);
|
|
5956
5961
|
};
|
|
5957
5962
|
var validateSymbol = (val) => {
|
|
5958
5963
|
if (!val.type) {
|
|
@@ -6007,7 +6012,7 @@ var generateMatchFunc2 = (predicate) => {
|
|
|
6007
6012
|
1,
|
|
6008
6013
|
(t) => ({
|
|
6009
6014
|
type: "boolean",
|
|
6010
|
-
value: t.token.match === "true"
|
|
6015
|
+
value: t.token.match === "true",
|
|
6011
6016
|
pos: t.token.strpos()
|
|
6012
6017
|
})
|
|
6013
6018
|
).nud(
|
|
@@ -6033,7 +6038,7 @@ var generateMatchFunc2 = (predicate) => {
|
|
|
6033
6038
|
1,
|
|
6034
6039
|
(t) => ({
|
|
6035
6040
|
type: "int",
|
|
6036
|
-
value: parseInt(t.token.match, 10),
|
|
6041
|
+
value: Number.parseInt(t.token.match, 10),
|
|
6037
6042
|
pos: t.token.strpos()
|
|
6038
6043
|
})
|
|
6039
6044
|
).nud(
|
|
@@ -6041,7 +6046,7 @@ var generateMatchFunc2 = (predicate) => {
|
|
|
6041
6046
|
1,
|
|
6042
6047
|
(t) => ({
|
|
6043
6048
|
type: "float",
|
|
6044
|
-
value: parseFloat(t.token.match),
|
|
6049
|
+
value: Number.parseFloat(t.token.match),
|
|
6045
6050
|
pos: t.token.strpos()
|
|
6046
6051
|
})
|
|
6047
6052
|
).nud("NOT", 100, ({ bp }) => {
|
|
@@ -6057,9 +6062,8 @@ var generateMatchFunc2 = (predicate) => {
|
|
|
6057
6062
|
const expr = parser.parse({ terminals: [bp - 1] });
|
|
6058
6063
|
if (Array.isArray(expr)) {
|
|
6059
6064
|
return [left, ...expr];
|
|
6060
|
-
} else {
|
|
6061
|
-
return [left, expr];
|
|
6062
6065
|
}
|
|
6066
|
+
return [left, expr];
|
|
6063
6067
|
}).nud("(", 100, (t) => {
|
|
6064
6068
|
const expr = parser.parse({ terminals: [")"] });
|
|
6065
6069
|
return expr;
|
|
@@ -6069,22 +6073,21 @@ var generateMatchFunc2 = (predicate) => {
|
|
|
6069
6073
|
return (obj, vars) => {
|
|
6070
6074
|
if (Array.isArray(obj)) {
|
|
6071
6075
|
return obj.some((item) => {
|
|
6072
|
-
const
|
|
6073
|
-
if (
|
|
6074
|
-
return expr(
|
|
6076
|
+
const value2 = resolveValue(item, left);
|
|
6077
|
+
if (value2) {
|
|
6078
|
+
return expr(value2, vars);
|
|
6075
6079
|
}
|
|
6076
6080
|
return false;
|
|
6077
6081
|
});
|
|
6078
|
-
}
|
|
6079
|
-
|
|
6080
|
-
|
|
6081
|
-
|
|
6082
|
-
|
|
6083
|
-
}
|
|
6084
|
-
return expr(value, vars);
|
|
6082
|
+
}
|
|
6083
|
+
const value = resolveValue(obj, left);
|
|
6084
|
+
if (value) {
|
|
6085
|
+
if (Array.isArray(value)) {
|
|
6086
|
+
return value.some((item) => expr(item, vars));
|
|
6085
6087
|
}
|
|
6086
|
-
return
|
|
6088
|
+
return expr(value, vars);
|
|
6087
6089
|
}
|
|
6090
|
+
return false;
|
|
6088
6091
|
};
|
|
6089
6092
|
}).bp(")", 0).led("=", 20, ({ left, bp }) => {
|
|
6090
6093
|
const expr = parser.parse({ terminals: [bp - 1] });
|
|
@@ -6099,14 +6102,13 @@ var generateMatchFunc2 = (predicate) => {
|
|
|
6099
6102
|
}
|
|
6100
6103
|
return value === other;
|
|
6101
6104
|
});
|
|
6102
|
-
} else {
|
|
6103
|
-
const resolvedValue = resolveValue(obj, left);
|
|
6104
|
-
const resolvedSymbol = resolveSymbol(expr, vars);
|
|
6105
|
-
if (Array.isArray(resolvedValue)) {
|
|
6106
|
-
return !!resolvedValue.some((elem) => elem === resolvedSymbol);
|
|
6107
|
-
}
|
|
6108
|
-
return resolvedValue === resolvedSymbol;
|
|
6109
6105
|
}
|
|
6106
|
+
const resolvedValue = resolveValue(obj, left);
|
|
6107
|
+
const resolvedSymbol = resolveSymbol(expr, vars);
|
|
6108
|
+
if (Array.isArray(resolvedValue)) {
|
|
6109
|
+
return !!resolvedValue.some((elem) => elem === resolvedSymbol);
|
|
6110
|
+
}
|
|
6111
|
+
return resolvedValue === resolvedSymbol;
|
|
6110
6112
|
};
|
|
6111
6113
|
}).led("!=", 20, ({ left, bp }) => {
|
|
6112
6114
|
const expr = parser.parse({ terminals: [bp - 1] });
|
|
@@ -6143,12 +6145,11 @@ var generateMatchFunc2 = (predicate) => {
|
|
|
6143
6145
|
const val = resolveValue(obj, left);
|
|
6144
6146
|
return val.length === 0;
|
|
6145
6147
|
};
|
|
6146
|
-
} else {
|
|
6147
|
-
return (obj, vars) => {
|
|
6148
|
-
const val = resolveValue(obj, left);
|
|
6149
|
-
return val.length !== 0;
|
|
6150
|
-
};
|
|
6151
6148
|
}
|
|
6149
|
+
return (obj, vars) => {
|
|
6150
|
+
const val = resolveValue(obj, left);
|
|
6151
|
+
return val.length !== 0;
|
|
6152
|
+
};
|
|
6152
6153
|
}
|
|
6153
6154
|
case "defined": {
|
|
6154
6155
|
if (!invert) {
|
|
@@ -6156,12 +6157,11 @@ var generateMatchFunc2 = (predicate) => {
|
|
|
6156
6157
|
const val = resolveValue(obj, left);
|
|
6157
6158
|
return val !== void 0;
|
|
6158
6159
|
};
|
|
6159
|
-
} else {
|
|
6160
|
-
return (obj, vars) => {
|
|
6161
|
-
const val = resolveValue(obj, left);
|
|
6162
|
-
return val === void 0;
|
|
6163
|
-
};
|
|
6164
6160
|
}
|
|
6161
|
+
return (obj, vars) => {
|
|
6162
|
+
const val = resolveValue(obj, left);
|
|
6163
|
+
return val === void 0;
|
|
6164
|
+
};
|
|
6165
6165
|
}
|
|
6166
6166
|
default: {
|
|
6167
6167
|
throw new Error("Unexpected");
|
|
@@ -6234,9 +6234,8 @@ var generateMatchFunc2 = (predicate) => {
|
|
|
6234
6234
|
const array = expr.map((item) => resolveSymbol(item, vars));
|
|
6235
6235
|
if (keyword.type === "ALL") {
|
|
6236
6236
|
return array.every((item) => value.includes(item));
|
|
6237
|
-
} else {
|
|
6238
|
-
return array.some((item) => value.includes(item));
|
|
6239
6237
|
}
|
|
6238
|
+
return array.some((item) => value.includes(item));
|
|
6240
6239
|
};
|
|
6241
6240
|
}).build();
|
|
6242
6241
|
const result = parser.parse();
|
|
@@ -6477,9 +6476,8 @@ var ProductProjectionSearch = class {
|
|
|
6477
6476
|
max: numValues > 0 ? Math.max(...values) : 0,
|
|
6478
6477
|
mean: numValues > 0 ? mean(values) : 0
|
|
6479
6478
|
};
|
|
6480
|
-
} else {
|
|
6481
|
-
throw new Error("not supported");
|
|
6482
6479
|
}
|
|
6480
|
+
throw new Error("not supported");
|
|
6483
6481
|
}) || [];
|
|
6484
6482
|
const data = {
|
|
6485
6483
|
type: "range",
|
|
@@ -6826,23 +6824,289 @@ var ProjectUpdateHandler = class extends AbstractUpdateHandler {
|
|
|
6826
6824
|
}
|
|
6827
6825
|
};
|
|
6828
6826
|
|
|
6829
|
-
// src/repositories/quote.ts
|
|
6827
|
+
// src/repositories/quote/actions.ts
|
|
6828
|
+
var QuoteUpdateHandler = class extends AbstractUpdateHandler {
|
|
6829
|
+
setCustomField(context, resource, { name, value }) {
|
|
6830
|
+
if (!resource.custom) {
|
|
6831
|
+
throw new Error("Resource has no custom field");
|
|
6832
|
+
}
|
|
6833
|
+
resource.custom.fields[name] = value;
|
|
6834
|
+
}
|
|
6835
|
+
setCustomType(context, resource, { type, fields }) {
|
|
6836
|
+
if (!type) {
|
|
6837
|
+
resource.custom = void 0;
|
|
6838
|
+
} else {
|
|
6839
|
+
const resolvedType = this._storage.getByResourceIdentifier(
|
|
6840
|
+
context.projectKey,
|
|
6841
|
+
type
|
|
6842
|
+
);
|
|
6843
|
+
if (!resolvedType) {
|
|
6844
|
+
throw new Error(`Type ${type} not found`);
|
|
6845
|
+
}
|
|
6846
|
+
resource.custom = {
|
|
6847
|
+
type: {
|
|
6848
|
+
typeId: "type",
|
|
6849
|
+
id: resolvedType.id
|
|
6850
|
+
},
|
|
6851
|
+
fields: fields || {}
|
|
6852
|
+
};
|
|
6853
|
+
}
|
|
6854
|
+
}
|
|
6855
|
+
transitionState(context, resource, { state, force }) {
|
|
6856
|
+
let stateReference = void 0;
|
|
6857
|
+
if (state) {
|
|
6858
|
+
stateReference = getReferenceFromResourceIdentifier(
|
|
6859
|
+
state,
|
|
6860
|
+
context.projectKey,
|
|
6861
|
+
this._storage
|
|
6862
|
+
);
|
|
6863
|
+
resource.state = stateReference;
|
|
6864
|
+
} else {
|
|
6865
|
+
throw new CommercetoolsError(
|
|
6866
|
+
{
|
|
6867
|
+
code: "InvalidJsonInput",
|
|
6868
|
+
message: "Request body does not contain valid JSON.",
|
|
6869
|
+
detailedErrorMessage: "actions -> state: Missing required value"
|
|
6870
|
+
},
|
|
6871
|
+
400
|
|
6872
|
+
);
|
|
6873
|
+
}
|
|
6874
|
+
return resource;
|
|
6875
|
+
}
|
|
6876
|
+
};
|
|
6877
|
+
|
|
6878
|
+
// src/repositories/quote/index.ts
|
|
6830
6879
|
var QuoteRepository = class extends AbstractResourceRepository {
|
|
6831
6880
|
constructor(config) {
|
|
6832
6881
|
super("quote", config);
|
|
6882
|
+
this.actions = new QuoteUpdateHandler(config.storage);
|
|
6833
6883
|
}
|
|
6834
6884
|
create(context, draft) {
|
|
6835
|
-
|
|
6885
|
+
const staged = this._storage.getByResourceIdentifier(
|
|
6886
|
+
context.projectKey,
|
|
6887
|
+
draft.stagedQuote
|
|
6888
|
+
);
|
|
6889
|
+
const cart = this._storage.getByResourceIdentifier(
|
|
6890
|
+
context.projectKey,
|
|
6891
|
+
staged.quotationCart
|
|
6892
|
+
);
|
|
6893
|
+
if (!cart.customerId) {
|
|
6894
|
+
throw new Error("Cart does not have a customer");
|
|
6895
|
+
}
|
|
6896
|
+
const resource = {
|
|
6897
|
+
...getBaseResourceProperties(),
|
|
6898
|
+
quoteState: "Accepted",
|
|
6899
|
+
quoteRequest: staged.quoteRequest,
|
|
6900
|
+
lineItems: cart.lineItems,
|
|
6901
|
+
customLineItems: cart.customLineItems,
|
|
6902
|
+
customer: {
|
|
6903
|
+
typeId: "customer",
|
|
6904
|
+
id: cart.customerId
|
|
6905
|
+
},
|
|
6906
|
+
stagedQuote: {
|
|
6907
|
+
typeId: "staged-quote",
|
|
6908
|
+
id: staged.id
|
|
6909
|
+
},
|
|
6910
|
+
totalPrice: cart.totalPrice,
|
|
6911
|
+
taxedPrice: cart.taxedPrice,
|
|
6912
|
+
taxMode: cart.taxMode,
|
|
6913
|
+
taxRoundingMode: cart.taxRoundingMode,
|
|
6914
|
+
taxCalculationMode: cart.taxCalculationMode,
|
|
6915
|
+
billingAddress: cart.billingAddress,
|
|
6916
|
+
shippingAddress: cart.shippingAddress
|
|
6917
|
+
};
|
|
6918
|
+
return resource;
|
|
6919
|
+
}
|
|
6920
|
+
};
|
|
6921
|
+
|
|
6922
|
+
// src/repositories/quote-request/index.ts
|
|
6923
|
+
var import_node_assert4 = __toESM(require("assert"), 1);
|
|
6924
|
+
|
|
6925
|
+
// src/repositories/quote-request/actions.ts
|
|
6926
|
+
var QuoteRequestUpdateHandler = class extends AbstractUpdateHandler {
|
|
6927
|
+
setCustomField(context, resource, { name, value }) {
|
|
6928
|
+
if (!resource.custom) {
|
|
6929
|
+
throw new Error("Resource has no custom field");
|
|
6930
|
+
}
|
|
6931
|
+
resource.custom.fields[name] = value;
|
|
6932
|
+
}
|
|
6933
|
+
setCustomType(context, resource, { type, fields }) {
|
|
6934
|
+
if (!type) {
|
|
6935
|
+
resource.custom = void 0;
|
|
6936
|
+
} else {
|
|
6937
|
+
const resolvedType = this._storage.getByResourceIdentifier(
|
|
6938
|
+
context.projectKey,
|
|
6939
|
+
type
|
|
6940
|
+
);
|
|
6941
|
+
if (!resolvedType) {
|
|
6942
|
+
throw new Error(`Type ${type} not found`);
|
|
6943
|
+
}
|
|
6944
|
+
resource.custom = {
|
|
6945
|
+
type: {
|
|
6946
|
+
typeId: "type",
|
|
6947
|
+
id: resolvedType.id
|
|
6948
|
+
},
|
|
6949
|
+
fields: fields || {}
|
|
6950
|
+
};
|
|
6951
|
+
}
|
|
6952
|
+
}
|
|
6953
|
+
transitionState(context, resource, { state, force }) {
|
|
6954
|
+
let stateReference = void 0;
|
|
6955
|
+
if (state) {
|
|
6956
|
+
stateReference = getReferenceFromResourceIdentifier(
|
|
6957
|
+
state,
|
|
6958
|
+
context.projectKey,
|
|
6959
|
+
this._storage
|
|
6960
|
+
);
|
|
6961
|
+
resource.state = stateReference;
|
|
6962
|
+
} else {
|
|
6963
|
+
throw new CommercetoolsError(
|
|
6964
|
+
{
|
|
6965
|
+
code: "InvalidJsonInput",
|
|
6966
|
+
message: "Request body does not contain valid JSON.",
|
|
6967
|
+
detailedErrorMessage: "actions -> state: Missing required value"
|
|
6968
|
+
},
|
|
6969
|
+
400
|
|
6970
|
+
);
|
|
6971
|
+
}
|
|
6972
|
+
return resource;
|
|
6836
6973
|
}
|
|
6837
6974
|
};
|
|
6838
6975
|
|
|
6839
|
-
// src/repositories/quote-request.ts
|
|
6976
|
+
// src/repositories/quote-request/index.ts
|
|
6840
6977
|
var QuoteRequestRepository = class extends AbstractResourceRepository {
|
|
6841
6978
|
constructor(config) {
|
|
6842
6979
|
super("quote-request", config);
|
|
6980
|
+
this.actions = new QuoteRequestUpdateHandler(config.storage);
|
|
6981
|
+
}
|
|
6982
|
+
create(context, draft) {
|
|
6983
|
+
(0, import_node_assert4.default)(draft.cart, "draft.cart is missing");
|
|
6984
|
+
return this.createFromCart(context, {
|
|
6985
|
+
id: draft.cart.id,
|
|
6986
|
+
typeId: "cart"
|
|
6987
|
+
});
|
|
6988
|
+
}
|
|
6989
|
+
createFromCart(context, cartReference) {
|
|
6990
|
+
const cart = this._storage.getByResourceIdentifier(
|
|
6991
|
+
context.projectKey,
|
|
6992
|
+
cartReference
|
|
6993
|
+
);
|
|
6994
|
+
if (!cart) {
|
|
6995
|
+
throw new Error("Cannot find cart");
|
|
6996
|
+
}
|
|
6997
|
+
if (!cart.customerId) {
|
|
6998
|
+
throw new Error("Cart does not have a customer");
|
|
6999
|
+
}
|
|
7000
|
+
const resource = {
|
|
7001
|
+
...getBaseResourceProperties(),
|
|
7002
|
+
billingAddress: cart.billingAddress,
|
|
7003
|
+
cart: cartReference,
|
|
7004
|
+
country: cart.country,
|
|
7005
|
+
custom: cart.custom,
|
|
7006
|
+
customer: {
|
|
7007
|
+
typeId: "customer",
|
|
7008
|
+
id: cart.customerId
|
|
7009
|
+
},
|
|
7010
|
+
customerGroup: cart.customerGroup,
|
|
7011
|
+
customLineItems: [],
|
|
7012
|
+
directDiscounts: cart.directDiscounts,
|
|
7013
|
+
lineItems: cart.lineItems,
|
|
7014
|
+
paymentInfo: cart.paymentInfo,
|
|
7015
|
+
quoteRequestState: "Submitted",
|
|
7016
|
+
shippingAddress: cart.shippingAddress,
|
|
7017
|
+
taxCalculationMode: cart.taxCalculationMode,
|
|
7018
|
+
taxedPrice: cart.taxedPrice,
|
|
7019
|
+
taxMode: cart.taxMode,
|
|
7020
|
+
taxRoundingMode: cart.taxRoundingMode,
|
|
7021
|
+
totalPrice: cart.totalPrice,
|
|
7022
|
+
store: cart.store
|
|
7023
|
+
};
|
|
7024
|
+
return this.saveNew(context, resource);
|
|
7025
|
+
}
|
|
7026
|
+
};
|
|
7027
|
+
|
|
7028
|
+
// src/repositories/quote-staged/actions.ts
|
|
7029
|
+
var StagedQuoteUpdateHandler = class extends AbstractUpdateHandler {
|
|
7030
|
+
setCustomField(context, resource, { name, value }) {
|
|
7031
|
+
if (!resource.custom) {
|
|
7032
|
+
throw new Error("Resource has no custom field");
|
|
7033
|
+
}
|
|
7034
|
+
resource.custom.fields[name] = value;
|
|
7035
|
+
}
|
|
7036
|
+
setCustomType(context, resource, { type, fields }) {
|
|
7037
|
+
if (!type) {
|
|
7038
|
+
resource.custom = void 0;
|
|
7039
|
+
} else {
|
|
7040
|
+
const resolvedType = this._storage.getByResourceIdentifier(
|
|
7041
|
+
context.projectKey,
|
|
7042
|
+
type
|
|
7043
|
+
);
|
|
7044
|
+
if (!resolvedType) {
|
|
7045
|
+
throw new Error(`Type ${type} not found`);
|
|
7046
|
+
}
|
|
7047
|
+
resource.custom = {
|
|
7048
|
+
type: {
|
|
7049
|
+
typeId: "type",
|
|
7050
|
+
id: resolvedType.id
|
|
7051
|
+
},
|
|
7052
|
+
fields: fields || {}
|
|
7053
|
+
};
|
|
7054
|
+
}
|
|
7055
|
+
}
|
|
7056
|
+
transitionState(context, resource, { state, force }) {
|
|
7057
|
+
let stateReference = void 0;
|
|
7058
|
+
if (state) {
|
|
7059
|
+
stateReference = getReferenceFromResourceIdentifier(
|
|
7060
|
+
state,
|
|
7061
|
+
context.projectKey,
|
|
7062
|
+
this._storage
|
|
7063
|
+
);
|
|
7064
|
+
resource.state = stateReference;
|
|
7065
|
+
} else {
|
|
7066
|
+
throw new CommercetoolsError(
|
|
7067
|
+
{
|
|
7068
|
+
code: "InvalidJsonInput",
|
|
7069
|
+
message: "Request body does not contain valid JSON.",
|
|
7070
|
+
detailedErrorMessage: "actions -> state: Missing required value"
|
|
7071
|
+
},
|
|
7072
|
+
400
|
|
7073
|
+
);
|
|
7074
|
+
}
|
|
7075
|
+
return resource;
|
|
7076
|
+
}
|
|
7077
|
+
};
|
|
7078
|
+
|
|
7079
|
+
// src/repositories/quote-staged/index.ts
|
|
7080
|
+
var StagedQuoteRepository = class extends AbstractResourceRepository {
|
|
7081
|
+
constructor(config) {
|
|
7082
|
+
super("staged-quote", config);
|
|
7083
|
+
this.actions = new StagedQuoteUpdateHandler(config.storage);
|
|
6843
7084
|
}
|
|
6844
7085
|
create(context, draft) {
|
|
6845
|
-
|
|
7086
|
+
const quoteRequest = this._storage.getByResourceIdentifier(
|
|
7087
|
+
context.projectKey,
|
|
7088
|
+
draft.quoteRequest
|
|
7089
|
+
);
|
|
7090
|
+
if (!quoteRequest.cart) {
|
|
7091
|
+
throw new Error("Cannot find quote request");
|
|
7092
|
+
}
|
|
7093
|
+
const cart = this._storage.getByResourceIdentifier(
|
|
7094
|
+
context.projectKey,
|
|
7095
|
+
quoteRequest.cart
|
|
7096
|
+
);
|
|
7097
|
+
const resource = {
|
|
7098
|
+
...getBaseResourceProperties(),
|
|
7099
|
+
stagedQuoteState: "InProgress",
|
|
7100
|
+
quoteRequest: {
|
|
7101
|
+
typeId: "quote-request",
|
|
7102
|
+
id: quoteRequest.id
|
|
7103
|
+
},
|
|
7104
|
+
quotationCart: {
|
|
7105
|
+
typeId: "cart",
|
|
7106
|
+
id: cart.id
|
|
7107
|
+
}
|
|
7108
|
+
};
|
|
7109
|
+
return resource;
|
|
6846
7110
|
}
|
|
6847
7111
|
};
|
|
6848
7112
|
|
|
@@ -7124,7 +7388,7 @@ var ShoppingListUpdateHandler = class extends AbstractUpdateHandler {
|
|
|
7124
7388
|
} else {
|
|
7125
7389
|
throw new CommercetoolsError({
|
|
7126
7390
|
code: "General",
|
|
7127
|
-
message:
|
|
7391
|
+
message: "Either lineItemid or lineItemKey needs to be provided."
|
|
7128
7392
|
});
|
|
7129
7393
|
}
|
|
7130
7394
|
if (quantity === 0) {
|
|
@@ -7249,7 +7513,12 @@ var ShoppingListRepository = class extends AbstractResourceRepository {
|
|
|
7249
7513
|
context.projectKey,
|
|
7250
7514
|
this._storage
|
|
7251
7515
|
) : void 0,
|
|
7252
|
-
store: draft.store ? getStoreKeyReference(draft.store, context.projectKey, this._storage) : void 0
|
|
7516
|
+
store: draft.store ? getStoreKeyReference(draft.store, context.projectKey, this._storage) : void 0,
|
|
7517
|
+
businessUnit: draft.businessUnit ? getBusinessUnitKeyReference(
|
|
7518
|
+
draft.businessUnit,
|
|
7519
|
+
context.projectKey,
|
|
7520
|
+
this._storage
|
|
7521
|
+
) : void 0
|
|
7253
7522
|
};
|
|
7254
7523
|
return this.saveNew(context, resource);
|
|
7255
7524
|
}
|
|
@@ -7304,21 +7573,11 @@ var ShoppingListRepository = class extends AbstractResourceRepository {
|
|
|
7304
7573
|
return lineItem;
|
|
7305
7574
|
}
|
|
7306
7575
|
throw new Error(
|
|
7307
|
-
|
|
7576
|
+
"must provide either sku, productId or variantId for ShoppingListLineItem"
|
|
7308
7577
|
);
|
|
7309
7578
|
};
|
|
7310
7579
|
};
|
|
7311
7580
|
|
|
7312
|
-
// src/repositories/staged-quote.ts
|
|
7313
|
-
var StagedQuoteRepository = class extends AbstractResourceRepository {
|
|
7314
|
-
constructor(config) {
|
|
7315
|
-
super("staged-quote", config);
|
|
7316
|
-
}
|
|
7317
|
-
create(context, draft) {
|
|
7318
|
-
throw new Error("not implemented");
|
|
7319
|
-
}
|
|
7320
|
-
};
|
|
7321
|
-
|
|
7322
7581
|
// src/repositories/standalone-price.ts
|
|
7323
7582
|
var StandAlonePriceRepository = class extends AbstractResourceRepository {
|
|
7324
7583
|
constructor(config) {
|
|
@@ -7542,7 +7801,8 @@ var SubscriptionRepository = class extends AbstractResourceRepository {
|
|
|
7542
7801
|
},
|
|
7543
7802
|
key: draft.key,
|
|
7544
7803
|
messages: draft.messages || [],
|
|
7545
|
-
status: "Healthy"
|
|
7804
|
+
status: "Healthy",
|
|
7805
|
+
events: draft.events || []
|
|
7546
7806
|
};
|
|
7547
7807
|
return this.saveNew(context, resource);
|
|
7548
7808
|
}
|
|
@@ -7764,44 +8024,44 @@ var createRepositories = (config) => ({
|
|
|
7764
8024
|
"associate-role": new AssociateRoleRepository(config),
|
|
7765
8025
|
"attribute-group": new AttributeGroupRepository(config),
|
|
7766
8026
|
"business-unit": new BusinessUnitRepository(config),
|
|
7767
|
-
|
|
7768
|
-
|
|
8027
|
+
category: new CategoryRepository(config),
|
|
8028
|
+
cart: new CartRepository(config),
|
|
7769
8029
|
"cart-discount": new CartDiscountRepository(config),
|
|
7770
|
-
|
|
7771
|
-
|
|
8030
|
+
customer: new CustomerRepository(config),
|
|
8031
|
+
channel: new ChannelRepository(config),
|
|
7772
8032
|
"customer-group": new CustomerGroupRepository(config),
|
|
7773
8033
|
"discount-code": new DiscountCodeRepository(config),
|
|
7774
|
-
|
|
8034
|
+
extension: new ExtensionRepository(config),
|
|
7775
8035
|
"inventory-entry": new InventoryEntryRepository(config),
|
|
7776
8036
|
"key-value-document": new CustomObjectRepository(config),
|
|
7777
|
-
|
|
8037
|
+
order: new OrderRepository(config),
|
|
7778
8038
|
"order-edit": new OrderEditRepository(config),
|
|
7779
|
-
|
|
8039
|
+
payment: new PaymentRepository(config),
|
|
7780
8040
|
"my-cart": new CartRepository(config),
|
|
7781
8041
|
"my-order": new MyOrderRepository(config),
|
|
7782
8042
|
"my-customer": new MyCustomerRepository(config),
|
|
7783
8043
|
"my-payment": new PaymentRepository(config),
|
|
7784
8044
|
"my-shopping-list": new ShoppingListRepository(config),
|
|
7785
|
-
|
|
8045
|
+
product: new ProductRepository(config),
|
|
7786
8046
|
"product-type": new ProductTypeRepository(config),
|
|
7787
8047
|
"product-discount": new ProductDiscountRepository(config),
|
|
7788
8048
|
"product-projection": new ProductProjectionRepository(config),
|
|
7789
8049
|
"product-selection": new ProductSelectionRepository(config),
|
|
7790
8050
|
"product-tailoring": new ProductTailoringRepository(config),
|
|
7791
|
-
|
|
7792
|
-
|
|
7793
|
-
|
|
8051
|
+
project: new ProjectRepository(config),
|
|
8052
|
+
review: new ReviewRepository(config),
|
|
8053
|
+
quote: new QuoteRepository(config),
|
|
7794
8054
|
"quote-request": new QuoteRequestRepository(config),
|
|
7795
8055
|
"shipping-method": new ShippingMethodRepository(config),
|
|
7796
8056
|
"shopping-list": new ShoppingListRepository(config),
|
|
7797
8057
|
"staged-quote": new StagedQuoteRepository(config),
|
|
7798
8058
|
"standalone-price": new StandAlonePriceRepository(config),
|
|
7799
|
-
|
|
7800
|
-
|
|
7801
|
-
|
|
8059
|
+
state: new StateRepository(config),
|
|
8060
|
+
store: new StoreRepository(config),
|
|
8061
|
+
subscription: new SubscriptionRepository(config),
|
|
7802
8062
|
"tax-category": new TaxCategoryRepository(config),
|
|
7803
|
-
|
|
7804
|
-
|
|
8063
|
+
type: new TypeRepository(config),
|
|
8064
|
+
zone: new ZoneRepository(config)
|
|
7805
8065
|
});
|
|
7806
8066
|
|
|
7807
8067
|
// src/services/as-associate.ts
|
|
@@ -7879,46 +8139,53 @@ var AbstractService = class {
|
|
|
7879
8139
|
}
|
|
7880
8140
|
}
|
|
7881
8141
|
const result = this.repository.query(getRepositoryContext(request), params);
|
|
7882
|
-
|
|
8142
|
+
response.status(200).send(result);
|
|
8143
|
+
return;
|
|
7883
8144
|
}
|
|
7884
8145
|
getWithId(request, response) {
|
|
7885
|
-
const result = this._expandWithId(request, request.params
|
|
8146
|
+
const result = this._expandWithId(request, request.params.id);
|
|
7886
8147
|
if (!result) {
|
|
7887
|
-
|
|
8148
|
+
response.status(404).send();
|
|
8149
|
+
return;
|
|
7888
8150
|
}
|
|
7889
|
-
|
|
8151
|
+
response.status(200).send(result);
|
|
7890
8152
|
}
|
|
7891
8153
|
getWithKey(request, response) {
|
|
7892
8154
|
const result = this.repository.getByKey(
|
|
7893
8155
|
getRepositoryContext(request),
|
|
7894
|
-
request.params
|
|
8156
|
+
request.params.key,
|
|
7895
8157
|
{
|
|
7896
8158
|
expand: this._parseParam(request.query.expand)
|
|
7897
8159
|
}
|
|
7898
8160
|
);
|
|
7899
|
-
if (!result)
|
|
7900
|
-
|
|
8161
|
+
if (!result) {
|
|
8162
|
+
response.status(404).send();
|
|
8163
|
+
return;
|
|
8164
|
+
}
|
|
8165
|
+
response.status(200).send(result);
|
|
7901
8166
|
}
|
|
7902
8167
|
deleteWithId(request, response) {
|
|
7903
8168
|
const result = this.repository.delete(
|
|
7904
8169
|
getRepositoryContext(request),
|
|
7905
|
-
request.params
|
|
8170
|
+
request.params.id,
|
|
7906
8171
|
{
|
|
7907
8172
|
expand: this._parseParam(request.query.expand)
|
|
7908
8173
|
}
|
|
7909
8174
|
);
|
|
7910
8175
|
if (!result) {
|
|
7911
|
-
|
|
8176
|
+
response.status(404).send("Not found");
|
|
8177
|
+
return;
|
|
7912
8178
|
}
|
|
7913
|
-
|
|
8179
|
+
response.status(200).send(result);
|
|
7914
8180
|
}
|
|
7915
8181
|
deleteWithKey(request, response) {
|
|
7916
8182
|
const resource = this.repository.getByKey(
|
|
7917
8183
|
getRepositoryContext(request),
|
|
7918
|
-
request.params
|
|
8184
|
+
request.params.key
|
|
7919
8185
|
);
|
|
7920
8186
|
if (!resource) {
|
|
7921
|
-
|
|
8187
|
+
response.status(404).send("Not found");
|
|
8188
|
+
return;
|
|
7922
8189
|
}
|
|
7923
8190
|
const result = this.repository.delete(
|
|
7924
8191
|
getRepositoryContext(request),
|
|
@@ -7928,9 +8195,10 @@ var AbstractService = class {
|
|
|
7928
8195
|
}
|
|
7929
8196
|
);
|
|
7930
8197
|
if (!result) {
|
|
7931
|
-
|
|
8198
|
+
response.status(404).send("Not found");
|
|
8199
|
+
return;
|
|
7932
8200
|
}
|
|
7933
|
-
|
|
8201
|
+
response.status(200).send(result);
|
|
7934
8202
|
}
|
|
7935
8203
|
post(request, response) {
|
|
7936
8204
|
const draft = request.body;
|
|
@@ -7939,7 +8207,7 @@ var AbstractService = class {
|
|
|
7939
8207
|
draft
|
|
7940
8208
|
);
|
|
7941
8209
|
const result = this._expandWithId(request, resource.id);
|
|
7942
|
-
|
|
8210
|
+
response.status(this.createStatusCode).send(result);
|
|
7943
8211
|
}
|
|
7944
8212
|
postWithId(request, response) {
|
|
7945
8213
|
const updateRequest = validateData(
|
|
@@ -7948,10 +8216,11 @@ var AbstractService = class {
|
|
|
7948
8216
|
);
|
|
7949
8217
|
const resource = this.repository.get(
|
|
7950
8218
|
getRepositoryContext(request),
|
|
7951
|
-
request.params
|
|
8219
|
+
request.params.id
|
|
7952
8220
|
);
|
|
7953
8221
|
if (!resource) {
|
|
7954
|
-
|
|
8222
|
+
response.status(404).send("Not found");
|
|
8223
|
+
return;
|
|
7955
8224
|
}
|
|
7956
8225
|
const updatedResource = this.repository.processUpdateActions(
|
|
7957
8226
|
getRepositoryContext(request),
|
|
@@ -7960,7 +8229,7 @@ var AbstractService = class {
|
|
|
7960
8229
|
updateRequest.actions
|
|
7961
8230
|
);
|
|
7962
8231
|
const result = this._expandWithId(request, updatedResource.id);
|
|
7963
|
-
|
|
8232
|
+
response.status(200).send(result);
|
|
7964
8233
|
}
|
|
7965
8234
|
postWithKey(request, response) {
|
|
7966
8235
|
const updateRequest = validateData(
|
|
@@ -7969,10 +8238,11 @@ var AbstractService = class {
|
|
|
7969
8238
|
);
|
|
7970
8239
|
const resource = this.repository.getByKey(
|
|
7971
8240
|
getRepositoryContext(request),
|
|
7972
|
-
request.params
|
|
8241
|
+
request.params.key
|
|
7973
8242
|
);
|
|
7974
8243
|
if (!resource) {
|
|
7975
|
-
|
|
8244
|
+
response.status(404).send("Not found");
|
|
8245
|
+
return;
|
|
7976
8246
|
}
|
|
7977
8247
|
const updatedResource = this.repository.processUpdateActions(
|
|
7978
8248
|
getRepositoryContext(request),
|
|
@@ -7981,7 +8251,7 @@ var AbstractService = class {
|
|
|
7981
8251
|
updateRequest.actions
|
|
7982
8252
|
);
|
|
7983
8253
|
const result = this._expandWithId(request, updatedResource.id);
|
|
7984
|
-
|
|
8254
|
+
response.status(200).send(result);
|
|
7985
8255
|
}
|
|
7986
8256
|
_expandWithId(request, resourceId) {
|
|
7987
8257
|
const result = this.repository.get(
|
|
@@ -8118,7 +8388,8 @@ var CartService = class extends AbstractService {
|
|
|
8118
8388
|
const context = getRepositoryContext(request);
|
|
8119
8389
|
const cartOrOrder = request.body.reference.typeId === "order" ? this.orderRepository.get(context, request.body.reference.id) : this.repository.get(context, request.body.reference.id);
|
|
8120
8390
|
if (!cartOrOrder) {
|
|
8121
|
-
|
|
8391
|
+
response.status(400).send();
|
|
8392
|
+
return;
|
|
8122
8393
|
}
|
|
8123
8394
|
const cartDraft = {
|
|
8124
8395
|
...cartOrOrder,
|
|
@@ -8133,7 +8404,7 @@ var CartService = class extends AbstractService {
|
|
|
8133
8404
|
}))
|
|
8134
8405
|
};
|
|
8135
8406
|
const newCart = this.repository.create(context, cartDraft);
|
|
8136
|
-
|
|
8407
|
+
response.status(200).send(newCart);
|
|
8137
8408
|
}
|
|
8138
8409
|
};
|
|
8139
8410
|
|
|
@@ -8205,7 +8476,7 @@ var CustomObjectService = class extends AbstractService {
|
|
|
8205
8476
|
offset: offset !== void 0 ? Number(offset) : void 0
|
|
8206
8477
|
}
|
|
8207
8478
|
);
|
|
8208
|
-
|
|
8479
|
+
response.status(200).send(result);
|
|
8209
8480
|
}
|
|
8210
8481
|
getWithContainerAndKey(request, response) {
|
|
8211
8482
|
const result = this.repository.getWithContainerAndKey(
|
|
@@ -8214,9 +8485,10 @@ var CustomObjectService = class extends AbstractService {
|
|
|
8214
8485
|
request.params.key
|
|
8215
8486
|
);
|
|
8216
8487
|
if (!result) {
|
|
8217
|
-
|
|
8488
|
+
response.status(404).send("Not Found");
|
|
8489
|
+
return;
|
|
8218
8490
|
}
|
|
8219
|
-
|
|
8491
|
+
response.status(200).send(result);
|
|
8220
8492
|
}
|
|
8221
8493
|
createWithContainerAndKey(request, response) {
|
|
8222
8494
|
const draft = {
|
|
@@ -8225,7 +8497,7 @@ var CustomObjectService = class extends AbstractService {
|
|
|
8225
8497
|
container: request.params.container
|
|
8226
8498
|
};
|
|
8227
8499
|
const result = this.repository.create(getRepositoryContext(request), draft);
|
|
8228
|
-
|
|
8500
|
+
response.status(200).send(result);
|
|
8229
8501
|
}
|
|
8230
8502
|
deleteWithContainerAndKey(request, response) {
|
|
8231
8503
|
const current = this.repository.getWithContainerAndKey(
|
|
@@ -8234,13 +8506,14 @@ var CustomObjectService = class extends AbstractService {
|
|
|
8234
8506
|
request.params.key
|
|
8235
8507
|
);
|
|
8236
8508
|
if (!current) {
|
|
8237
|
-
|
|
8509
|
+
response.status(404).send("Not Found");
|
|
8510
|
+
return;
|
|
8238
8511
|
}
|
|
8239
8512
|
const result = this.repository.delete(
|
|
8240
8513
|
getRepositoryContext(request),
|
|
8241
8514
|
current.id
|
|
8242
8515
|
);
|
|
8243
|
-
|
|
8516
|
+
response.status(200).send(result);
|
|
8244
8517
|
}
|
|
8245
8518
|
};
|
|
8246
8519
|
|
|
@@ -8269,21 +8542,21 @@ var CustomerService = class extends AbstractService {
|
|
|
8269
8542
|
const result = {
|
|
8270
8543
|
customer: expanded
|
|
8271
8544
|
};
|
|
8272
|
-
|
|
8545
|
+
response.status(this.createStatusCode).send(result);
|
|
8273
8546
|
}
|
|
8274
8547
|
passwordResetToken(request, response) {
|
|
8275
8548
|
const customer = this.repository.passwordResetToken(
|
|
8276
8549
|
getRepositoryContext(request),
|
|
8277
8550
|
request.body
|
|
8278
8551
|
);
|
|
8279
|
-
|
|
8552
|
+
response.status(200).send(customer);
|
|
8280
8553
|
}
|
|
8281
8554
|
passwordReset(request, response) {
|
|
8282
8555
|
const customer = this.repository.passwordReset(
|
|
8283
8556
|
getRepositoryContext(request),
|
|
8284
8557
|
request.body
|
|
8285
8558
|
);
|
|
8286
|
-
|
|
8559
|
+
response.status(200).send(customer);
|
|
8287
8560
|
}
|
|
8288
8561
|
confirmEmailToken(request, response) {
|
|
8289
8562
|
const id = request.body.id;
|
|
@@ -8291,7 +8564,7 @@ var CustomerService = class extends AbstractService {
|
|
|
8291
8564
|
getRepositoryContext(request),
|
|
8292
8565
|
id
|
|
8293
8566
|
);
|
|
8294
|
-
|
|
8567
|
+
response.status(200).send(token);
|
|
8295
8568
|
}
|
|
8296
8569
|
};
|
|
8297
8570
|
|
|
@@ -8389,9 +8662,10 @@ var MyCartService = class extends AbstractService {
|
|
|
8389
8662
|
activeCart(request, response) {
|
|
8390
8663
|
const resource = this.repository.getActiveCart(request.params.projectKey);
|
|
8391
8664
|
if (!resource) {
|
|
8392
|
-
|
|
8665
|
+
response.status(404).send("Not found");
|
|
8666
|
+
return;
|
|
8393
8667
|
}
|
|
8394
|
-
|
|
8668
|
+
response.status(200).send(resource);
|
|
8395
8669
|
}
|
|
8396
8670
|
};
|
|
8397
8671
|
|
|
@@ -8423,14 +8697,16 @@ var MyCustomerService = class extends AbstractService {
|
|
|
8423
8697
|
getMe(request, response) {
|
|
8424
8698
|
const resource = this.repository.getMe(getRepositoryContext(request));
|
|
8425
8699
|
if (!resource) {
|
|
8426
|
-
|
|
8700
|
+
response.status(404).send("Not found");
|
|
8701
|
+
return;
|
|
8427
8702
|
}
|
|
8428
|
-
|
|
8703
|
+
response.status(200).send(resource);
|
|
8429
8704
|
}
|
|
8430
8705
|
updateMe(request, response) {
|
|
8431
8706
|
const resource = this.repository.getMe(getRepositoryContext(request));
|
|
8432
8707
|
if (!resource) {
|
|
8433
|
-
|
|
8708
|
+
response.status(404).send("Not found");
|
|
8709
|
+
return;
|
|
8434
8710
|
}
|
|
8435
8711
|
const updateRequest = validateData(
|
|
8436
8712
|
request.body,
|
|
@@ -8443,14 +8719,15 @@ var MyCustomerService = class extends AbstractService {
|
|
|
8443
8719
|
updateRequest.actions
|
|
8444
8720
|
);
|
|
8445
8721
|
const result = this._expandWithId(request, updatedResource.id);
|
|
8446
|
-
|
|
8722
|
+
response.status(200).send(result);
|
|
8447
8723
|
}
|
|
8448
8724
|
deleteMe(request, response) {
|
|
8449
8725
|
const resource = this.repository.deleteMe(getRepositoryContext(request));
|
|
8450
8726
|
if (!resource) {
|
|
8451
|
-
|
|
8727
|
+
response.status(404).send("Not found");
|
|
8728
|
+
return;
|
|
8452
8729
|
}
|
|
8453
|
-
|
|
8730
|
+
response.status(200).send(resource);
|
|
8454
8731
|
}
|
|
8455
8732
|
signUp(request, response) {
|
|
8456
8733
|
const draft = request.body;
|
|
@@ -8459,28 +8736,28 @@ var MyCustomerService = class extends AbstractService {
|
|
|
8459
8736
|
draft
|
|
8460
8737
|
);
|
|
8461
8738
|
const result = this._expandWithId(request, resource.id);
|
|
8462
|
-
|
|
8739
|
+
response.status(this.createStatusCode).send({ customer: result });
|
|
8463
8740
|
}
|
|
8464
8741
|
changePassword(request, response) {
|
|
8465
8742
|
const customer = this.repository.changePassword(
|
|
8466
8743
|
getRepositoryContext(request),
|
|
8467
8744
|
request.body
|
|
8468
8745
|
);
|
|
8469
|
-
|
|
8746
|
+
response.status(200).send(customer);
|
|
8470
8747
|
}
|
|
8471
8748
|
resetPassword(request, response) {
|
|
8472
8749
|
const customer = this.repository.passwordReset(
|
|
8473
8750
|
getRepositoryContext(request),
|
|
8474
8751
|
request.body
|
|
8475
8752
|
);
|
|
8476
|
-
|
|
8753
|
+
response.status(200).send(customer);
|
|
8477
8754
|
}
|
|
8478
8755
|
emailConfirm(request, response) {
|
|
8479
8756
|
const customer = this.repository.confirmEmail(
|
|
8480
8757
|
getRepositoryContext(request),
|
|
8481
8758
|
request.body
|
|
8482
8759
|
);
|
|
8483
|
-
|
|
8760
|
+
response.status(200).send(customer);
|
|
8484
8761
|
}
|
|
8485
8762
|
signIn(request, response) {
|
|
8486
8763
|
const { email, password } = request.body;
|
|
@@ -8489,7 +8766,7 @@ var MyCustomerService = class extends AbstractService {
|
|
|
8489
8766
|
where: [`email = "${email}"`, `password = "${encodedPassword}"`]
|
|
8490
8767
|
});
|
|
8491
8768
|
if (result.count === 0) {
|
|
8492
|
-
|
|
8769
|
+
response.status(400).send({
|
|
8493
8770
|
message: "Account with the given credentials not found.",
|
|
8494
8771
|
errors: [
|
|
8495
8772
|
{
|
|
@@ -8498,8 +8775,9 @@ var MyCustomerService = class extends AbstractService {
|
|
|
8498
8775
|
}
|
|
8499
8776
|
]
|
|
8500
8777
|
});
|
|
8778
|
+
return;
|
|
8501
8779
|
}
|
|
8502
|
-
|
|
8780
|
+
response.status(200).send({ customer: result.results[0] });
|
|
8503
8781
|
}
|
|
8504
8782
|
};
|
|
8505
8783
|
|
|
@@ -8574,7 +8852,7 @@ var OrderService = class extends AbstractService {
|
|
|
8574
8852
|
getRepositoryContext(request),
|
|
8575
8853
|
importDraft
|
|
8576
8854
|
);
|
|
8577
|
-
|
|
8855
|
+
response.status(200).send(resource);
|
|
8578
8856
|
}
|
|
8579
8857
|
getWithOrderNumber(request, response) {
|
|
8580
8858
|
const resource = this.repository.getWithOrderNumber(
|
|
@@ -8584,9 +8862,10 @@ var OrderService = class extends AbstractService {
|
|
|
8584
8862
|
request.query
|
|
8585
8863
|
);
|
|
8586
8864
|
if (resource) {
|
|
8587
|
-
|
|
8865
|
+
response.status(200).send(resource);
|
|
8866
|
+
return;
|
|
8588
8867
|
}
|
|
8589
|
-
|
|
8868
|
+
response.status(404).send("Not found");
|
|
8590
8869
|
}
|
|
8591
8870
|
};
|
|
8592
8871
|
|
|
@@ -8621,7 +8900,7 @@ var ProductService = class extends AbstractService {
|
|
|
8621
8900
|
getRepositoryContext(request),
|
|
8622
8901
|
searchBody
|
|
8623
8902
|
);
|
|
8624
|
-
|
|
8903
|
+
response.status(200).send(resource);
|
|
8625
8904
|
}
|
|
8626
8905
|
};
|
|
8627
8906
|
|
|
@@ -8660,30 +8939,30 @@ var ProductProjectionService = class extends AbstractService {
|
|
|
8660
8939
|
limit: limit !== void 0 ? Number(limit) : void 0,
|
|
8661
8940
|
offset: offset !== void 0 ? Number(offset) : void 0
|
|
8662
8941
|
});
|
|
8663
|
-
|
|
8942
|
+
response.status(200).send(result);
|
|
8664
8943
|
}
|
|
8665
8944
|
search(request, response) {
|
|
8666
8945
|
const query = request.query;
|
|
8667
8946
|
const searchParams = {
|
|
8668
|
-
|
|
8947
|
+
filter: queryParamsArray(query.filter),
|
|
8669
8948
|
"filter.query": queryParamsArray(query["filter.query"]),
|
|
8670
|
-
|
|
8671
|
-
|
|
8672
|
-
|
|
8673
|
-
|
|
8674
|
-
|
|
8675
|
-
|
|
8676
|
-
|
|
8677
|
-
|
|
8678
|
-
|
|
8679
|
-
|
|
8680
|
-
|
|
8949
|
+
facet: queryParamsArray(query.facet),
|
|
8950
|
+
expand: queryParamsArray(query.expand),
|
|
8951
|
+
staged: queryParamsValue(query.staged) === "true",
|
|
8952
|
+
localeProjection: queryParamsValue(query.localeProjection),
|
|
8953
|
+
storeProjection: queryParamsValue(query.storeProjection),
|
|
8954
|
+
priceChannel: queryParamsValue(query.priceChannel),
|
|
8955
|
+
priceCountry: queryParamsValue(query.priceCountry),
|
|
8956
|
+
priceCurrency: queryParamsValue(query.priceCurrency),
|
|
8957
|
+
priceCustomerGroup: queryParamsValue(query.priceCustomerGroup),
|
|
8958
|
+
offset: query.offset ? Number(queryParamsValue(query.offset)) : void 0,
|
|
8959
|
+
limit: query.limit ? Number(queryParamsValue(query.limit)) : void 0
|
|
8681
8960
|
};
|
|
8682
8961
|
const resource = this.repository.search(
|
|
8683
8962
|
getRepositoryContext(request),
|
|
8684
8963
|
searchParams
|
|
8685
8964
|
);
|
|
8686
|
-
|
|
8965
|
+
response.status(200).send(resource);
|
|
8687
8966
|
}
|
|
8688
8967
|
};
|
|
8689
8968
|
|
|
@@ -8711,6 +8990,42 @@ var ProductTypeService = class extends AbstractService {
|
|
|
8711
8990
|
}
|
|
8712
8991
|
};
|
|
8713
8992
|
|
|
8993
|
+
// src/services/quote.ts
|
|
8994
|
+
var QuoteService = class extends AbstractService {
|
|
8995
|
+
repository;
|
|
8996
|
+
constructor(parent, repository) {
|
|
8997
|
+
super(parent);
|
|
8998
|
+
this.repository = repository;
|
|
8999
|
+
}
|
|
9000
|
+
getBasePath() {
|
|
9001
|
+
return "quotes";
|
|
9002
|
+
}
|
|
9003
|
+
};
|
|
9004
|
+
|
|
9005
|
+
// src/services/quote-request.ts
|
|
9006
|
+
var QuoteRequestService = class extends AbstractService {
|
|
9007
|
+
repository;
|
|
9008
|
+
constructor(parent, repository) {
|
|
9009
|
+
super(parent);
|
|
9010
|
+
this.repository = repository;
|
|
9011
|
+
}
|
|
9012
|
+
getBasePath() {
|
|
9013
|
+
return "quote-requests";
|
|
9014
|
+
}
|
|
9015
|
+
};
|
|
9016
|
+
|
|
9017
|
+
// src/services/quote-staged.ts
|
|
9018
|
+
var StagedQuoteService = class extends AbstractService {
|
|
9019
|
+
repository;
|
|
9020
|
+
constructor(parent, repository) {
|
|
9021
|
+
super(parent);
|
|
9022
|
+
this.repository = repository;
|
|
9023
|
+
}
|
|
9024
|
+
getBasePath() {
|
|
9025
|
+
return "staged-quotes";
|
|
9026
|
+
}
|
|
9027
|
+
};
|
|
9028
|
+
|
|
8714
9029
|
// src/services/reviews.ts
|
|
8715
9030
|
var ReviewService = class extends AbstractService {
|
|
8716
9031
|
repository;
|
|
@@ -8740,7 +9055,8 @@ var ShippingMethodService = class extends AbstractService {
|
|
|
8740
9055
|
matchingCart(request, response) {
|
|
8741
9056
|
const cartId = queryParamsValue(request.query.cartId);
|
|
8742
9057
|
if (!cartId) {
|
|
8743
|
-
|
|
9058
|
+
response.status(400).send();
|
|
9059
|
+
return;
|
|
8744
9060
|
}
|
|
8745
9061
|
const result = this.repository.matchingCart(
|
|
8746
9062
|
getRepositoryContext(request),
|
|
@@ -8749,7 +9065,8 @@ var ShippingMethodService = class extends AbstractService {
|
|
|
8749
9065
|
expand: this._parseParam(request.query.expand)
|
|
8750
9066
|
}
|
|
8751
9067
|
);
|
|
8752
|
-
|
|
9068
|
+
response.status(200).send(result);
|
|
9069
|
+
return;
|
|
8753
9070
|
}
|
|
8754
9071
|
};
|
|
8755
9072
|
|
|
@@ -8854,14 +9171,14 @@ var createServices = (router, repos) => ({
|
|
|
8854
9171
|
"associate-role": new AssociateRoleServices(router, repos["associate-role"]),
|
|
8855
9172
|
"as-associate": new AsAssociateService(router, repos["as-associate"]),
|
|
8856
9173
|
"business-unit": new BusinessUnitServices(router, repos["business-unit"]),
|
|
8857
|
-
|
|
8858
|
-
|
|
9174
|
+
category: new CategoryServices(router, repos.category),
|
|
9175
|
+
cart: new CartService(router, repos.cart, repos.order),
|
|
8859
9176
|
"cart-discount": new CartDiscountService(router, repos["cart-discount"]),
|
|
8860
|
-
|
|
8861
|
-
|
|
9177
|
+
customer: new CustomerService(router, repos.customer),
|
|
9178
|
+
channel: new ChannelService(router, repos.channel),
|
|
8862
9179
|
"customer-group": new CustomerGroupService(router, repos["customer-group"]),
|
|
8863
9180
|
"discount-code": new DiscountCodeService(router, repos["discount-code"]),
|
|
8864
|
-
|
|
9181
|
+
extension: new ExtensionServices(router, repos.extension),
|
|
8865
9182
|
"inventory-entry": new InventoryEntryService(
|
|
8866
9183
|
router,
|
|
8867
9184
|
repos["inventory-entry"]
|
|
@@ -8870,8 +9187,8 @@ var createServices = (router, repos) => ({
|
|
|
8870
9187
|
router,
|
|
8871
9188
|
repos["key-value-document"]
|
|
8872
9189
|
),
|
|
8873
|
-
|
|
8874
|
-
|
|
9190
|
+
order: new OrderService(router, repos.order),
|
|
9191
|
+
payment: new PaymentService(router, repos.payment),
|
|
8875
9192
|
"standalone-price": new StandAlonePriceService(
|
|
8876
9193
|
router,
|
|
8877
9194
|
repos["standalone-price"]
|
|
@@ -8890,7 +9207,7 @@ var createServices = (router, repos) => ({
|
|
|
8890
9207
|
repos["shipping-method"]
|
|
8891
9208
|
),
|
|
8892
9209
|
"product-type": new ProductTypeService(router, repos["product-type"]),
|
|
8893
|
-
|
|
9210
|
+
product: new ProductService(router, repos.product),
|
|
8894
9211
|
"product-discount": new ProductDiscountService(
|
|
8895
9212
|
router,
|
|
8896
9213
|
repos["product-discount"]
|
|
@@ -8903,18 +9220,21 @@ var createServices = (router, repos) => ({
|
|
|
8903
9220
|
router,
|
|
8904
9221
|
repos["product-selection"]
|
|
8905
9222
|
),
|
|
8906
|
-
|
|
9223
|
+
quotes: new QuoteService(router, repos.quote),
|
|
9224
|
+
"quote-request": new QuoteRequestService(router, repos["quote-request"]),
|
|
9225
|
+
reviews: new ReviewService(router, repos.review),
|
|
8907
9226
|
"shopping-list": new ShoppingListService(router, repos["shopping-list"]),
|
|
8908
|
-
"
|
|
8909
|
-
|
|
8910
|
-
|
|
9227
|
+
"staged-quote": new StagedQuoteService(router, repos["staged-quote"]),
|
|
9228
|
+
state: new StateService(router, repos.state),
|
|
9229
|
+
store: new StoreService(router, repos.store),
|
|
9230
|
+
subscription: new SubscriptionService(router, repos.subscription),
|
|
8911
9231
|
"tax-category": new TaxCategoryService(router, repos["tax-category"]),
|
|
8912
9232
|
"attribute-group": new AttributeGroupService(
|
|
8913
9233
|
router,
|
|
8914
9234
|
repos["attribute-group"]
|
|
8915
9235
|
),
|
|
8916
|
-
|
|
8917
|
-
|
|
9236
|
+
type: new TypeService(router, repos.type),
|
|
9237
|
+
zone: new ZoneService(router, repos.zone)
|
|
8918
9238
|
});
|
|
8919
9239
|
|
|
8920
9240
|
// src/services/project.ts
|
|
@@ -8930,7 +9250,7 @@ var ProjectService = class {
|
|
|
8930
9250
|
}
|
|
8931
9251
|
get(request, response) {
|
|
8932
9252
|
const project = this.repository.get(getRepositoryContext(request));
|
|
8933
|
-
|
|
9253
|
+
response.status(200).send(project);
|
|
8934
9254
|
}
|
|
8935
9255
|
post(request, response) {
|
|
8936
9256
|
const updateRequest = validateData(
|
|
@@ -8939,7 +9259,8 @@ var ProjectService = class {
|
|
|
8939
9259
|
);
|
|
8940
9260
|
const project = this.repository.get(getRepositoryContext(request));
|
|
8941
9261
|
if (!project) {
|
|
8942
|
-
|
|
9262
|
+
response.status(404).send({});
|
|
9263
|
+
return;
|
|
8943
9264
|
}
|
|
8944
9265
|
const updatedResource = this.repository.processUpdateActions(
|
|
8945
9266
|
getRepositoryContext(request),
|
|
@@ -8947,7 +9268,7 @@ var ProjectService = class {
|
|
|
8947
9268
|
updateRequest.version,
|
|
8948
9269
|
updateRequest.actions
|
|
8949
9270
|
);
|
|
8950
|
-
|
|
9271
|
+
response.status(200).send(updatedResource);
|
|
8951
9272
|
}
|
|
8952
9273
|
};
|
|
8953
9274
|
|
|
@@ -8956,7 +9277,7 @@ var AbstractStorage = class {
|
|
|
8956
9277
|
};
|
|
8957
9278
|
|
|
8958
9279
|
// src/storage/in-memory.ts
|
|
8959
|
-
var
|
|
9280
|
+
var import_node_assert5 = __toESM(require("assert"), 1);
|
|
8960
9281
|
var InMemoryStorage = class extends AbstractStorage {
|
|
8961
9282
|
resources = {};
|
|
8962
9283
|
projects = {};
|
|
@@ -9052,38 +9373,38 @@ var InMemoryStorage = class extends AbstractStorage {
|
|
|
9052
9373
|
"associate-role": /* @__PURE__ */ new Map(),
|
|
9053
9374
|
"attribute-group": /* @__PURE__ */ new Map(),
|
|
9054
9375
|
"business-unit": /* @__PURE__ */ new Map(),
|
|
9055
|
-
|
|
9376
|
+
cart: /* @__PURE__ */ new Map(),
|
|
9056
9377
|
"cart-discount": /* @__PURE__ */ new Map(),
|
|
9057
|
-
|
|
9058
|
-
|
|
9059
|
-
|
|
9378
|
+
category: /* @__PURE__ */ new Map(),
|
|
9379
|
+
channel: /* @__PURE__ */ new Map(),
|
|
9380
|
+
customer: /* @__PURE__ */ new Map(),
|
|
9060
9381
|
"customer-group": /* @__PURE__ */ new Map(),
|
|
9061
9382
|
"discount-code": /* @__PURE__ */ new Map(),
|
|
9062
|
-
|
|
9383
|
+
extension: /* @__PURE__ */ new Map(),
|
|
9063
9384
|
"inventory-entry": /* @__PURE__ */ new Map(),
|
|
9064
9385
|
"key-value-document": /* @__PURE__ */ new Map(),
|
|
9065
|
-
|
|
9386
|
+
order: /* @__PURE__ */ new Map(),
|
|
9066
9387
|
"order-edit": /* @__PURE__ */ new Map(),
|
|
9067
|
-
|
|
9068
|
-
|
|
9069
|
-
|
|
9388
|
+
payment: /* @__PURE__ */ new Map(),
|
|
9389
|
+
product: /* @__PURE__ */ new Map(),
|
|
9390
|
+
quote: /* @__PURE__ */ new Map(),
|
|
9070
9391
|
"quote-request": /* @__PURE__ */ new Map(),
|
|
9071
9392
|
"product-discount": /* @__PURE__ */ new Map(),
|
|
9072
9393
|
"product-selection": /* @__PURE__ */ new Map(),
|
|
9073
9394
|
"product-type": /* @__PURE__ */ new Map(),
|
|
9074
9395
|
"product-projection": /* @__PURE__ */ new Map(),
|
|
9075
9396
|
"product-tailoring": /* @__PURE__ */ new Map(),
|
|
9076
|
-
|
|
9397
|
+
review: /* @__PURE__ */ new Map(),
|
|
9077
9398
|
"shipping-method": /* @__PURE__ */ new Map(),
|
|
9078
9399
|
"staged-quote": /* @__PURE__ */ new Map(),
|
|
9079
|
-
|
|
9080
|
-
|
|
9400
|
+
state: /* @__PURE__ */ new Map(),
|
|
9401
|
+
store: /* @__PURE__ */ new Map(),
|
|
9081
9402
|
"shopping-list": /* @__PURE__ */ new Map(),
|
|
9082
9403
|
"standalone-price": /* @__PURE__ */ new Map(),
|
|
9083
|
-
|
|
9404
|
+
subscription: /* @__PURE__ */ new Map(),
|
|
9084
9405
|
"tax-category": /* @__PURE__ */ new Map(),
|
|
9085
|
-
|
|
9086
|
-
|
|
9406
|
+
type: /* @__PURE__ */ new Map(),
|
|
9407
|
+
zone: /* @__PURE__ */ new Map()
|
|
9087
9408
|
};
|
|
9088
9409
|
}
|
|
9089
9410
|
return projectStorage;
|
|
@@ -9106,7 +9427,7 @@ var InMemoryStorage = class extends AbstractStorage {
|
|
|
9106
9427
|
const store = this.forProjectKey(projectKey);
|
|
9107
9428
|
store[typeId]?.set(obj.id, obj);
|
|
9108
9429
|
const resource = this.get(projectKey, typeId, obj.id, params);
|
|
9109
|
-
(0,
|
|
9430
|
+
(0, import_node_assert5.default)(
|
|
9110
9431
|
resource,
|
|
9111
9432
|
`resource of type ${typeId} with id ${obj.id} not created`
|
|
9112
9433
|
);
|
|
@@ -9393,23 +9714,25 @@ var CommercetoolsMock = class {
|
|
|
9393
9714
|
app.use((err, req, resp, next) => {
|
|
9394
9715
|
if (err instanceof CommercetoolsError) {
|
|
9395
9716
|
if (err.errors?.length > 0) {
|
|
9396
|
-
|
|
9717
|
+
resp.status(err.statusCode).send({
|
|
9397
9718
|
statusCode: err.statusCode,
|
|
9398
9719
|
message: err.message,
|
|
9399
9720
|
errors: err.errors
|
|
9400
9721
|
});
|
|
9722
|
+
return;
|
|
9401
9723
|
}
|
|
9402
|
-
|
|
9724
|
+
resp.status(err.statusCode).send({
|
|
9403
9725
|
statusCode: err.statusCode,
|
|
9404
9726
|
message: err.message,
|
|
9405
9727
|
errors: [err.info]
|
|
9406
9728
|
});
|
|
9407
|
-
|
|
9408
|
-
console.error(err);
|
|
9409
|
-
return resp.status(500).send({
|
|
9410
|
-
error: err.message
|
|
9411
|
-
});
|
|
9729
|
+
return;
|
|
9412
9730
|
}
|
|
9731
|
+
console.error(err);
|
|
9732
|
+
resp.status(500).send({
|
|
9733
|
+
error: err.message
|
|
9734
|
+
});
|
|
9735
|
+
return;
|
|
9413
9736
|
});
|
|
9414
9737
|
return app;
|
|
9415
9738
|
}
|
|
@@ -9427,7 +9750,7 @@ var CommercetoolsMock = class {
|
|
|
9427
9750
|
const body = await request.text();
|
|
9428
9751
|
const url = new URL(request.url);
|
|
9429
9752
|
const headers = copyHeaders(request.headers);
|
|
9430
|
-
const res = await (0, import_light_my_request.default)(app).post(url.pathname
|
|
9753
|
+
const res = await (0, import_light_my_request.default)(app).post(`${url.pathname}?${url.searchParams.toString()}`).body(body).headers(headers).end();
|
|
9431
9754
|
return new import_msw.HttpResponse(res.body, {
|
|
9432
9755
|
status: res.statusCode,
|
|
9433
9756
|
headers: mapHeaderType(res.headers)
|
|
@@ -9437,7 +9760,7 @@ var CommercetoolsMock = class {
|
|
|
9437
9760
|
const body = await request.text();
|
|
9438
9761
|
const url = new URL(request.url);
|
|
9439
9762
|
const headers = copyHeaders(request.headers);
|
|
9440
|
-
const res = await (0, import_light_my_request.default)(app).get(url.pathname
|
|
9763
|
+
const res = await (0, import_light_my_request.default)(app).get(`${url.pathname}?${url.searchParams.toString()}`).body(body).headers(headers).end();
|
|
9441
9764
|
if (res.statusCode === 200) {
|
|
9442
9765
|
const parsedBody = JSON.parse(res.body);
|
|
9443
9766
|
const resultCount = "count" in parsedBody ? parsedBody.count : Object.keys(parsedBody).length;
|
|
@@ -9455,7 +9778,7 @@ var CommercetoolsMock = class {
|
|
|
9455
9778
|
const body = await request.text();
|
|
9456
9779
|
const url = new URL(request.url);
|
|
9457
9780
|
const headers = copyHeaders(request.headers);
|
|
9458
|
-
const res = await (0, import_light_my_request.default)(app).get(url.pathname
|
|
9781
|
+
const res = await (0, import_light_my_request.default)(app).get(`${url.pathname}?${url.searchParams.toString()}`).body(body).headers(headers).end();
|
|
9459
9782
|
return new import_msw.HttpResponse(res.body, {
|
|
9460
9783
|
status: res.statusCode,
|
|
9461
9784
|
headers: mapHeaderType(res.headers)
|
|
@@ -9465,7 +9788,7 @@ var CommercetoolsMock = class {
|
|
|
9465
9788
|
const body = await request.text();
|
|
9466
9789
|
const url = new URL(request.url);
|
|
9467
9790
|
const headers = copyHeaders(request.headers);
|
|
9468
|
-
const res = await (0, import_light_my_request.default)(app).post(url.pathname
|
|
9791
|
+
const res = await (0, import_light_my_request.default)(app).post(`${url.pathname}?${url.searchParams.toString()}`).body(body).headers(headers).end();
|
|
9469
9792
|
return new import_msw.HttpResponse(res.body, {
|
|
9470
9793
|
status: res.statusCode,
|
|
9471
9794
|
headers: mapHeaderType(res.headers)
|
|
@@ -9475,7 +9798,7 @@ var CommercetoolsMock = class {
|
|
|
9475
9798
|
const body = await request.text();
|
|
9476
9799
|
const url = new URL(request.url);
|
|
9477
9800
|
const headers = copyHeaders(request.headers);
|
|
9478
|
-
const res = await (0, import_light_my_request.default)(app).delete(url.pathname
|
|
9801
|
+
const res = await (0, import_light_my_request.default)(app).delete(`${url.pathname}?${url.searchParams.toString()}`).body(body).headers(headers).end();
|
|
9479
9802
|
return new import_msw.HttpResponse(res.body, {
|
|
9480
9803
|
status: res.statusCode,
|
|
9481
9804
|
headers: mapHeaderType(res.headers)
|
|
@@ -9490,10 +9813,9 @@ var CommercetoolsMock = class {
|
|
|
9490
9813
|
if (_globalListeners.length > 0) {
|
|
9491
9814
|
if (this._mswServer !== void 0) {
|
|
9492
9815
|
throw new Error("Server already started");
|
|
9493
|
-
} else {
|
|
9494
|
-
process.emitWarning("Server wasn't stopped properly, clearing");
|
|
9495
|
-
_globalListeners.forEach((listener) => listener.close());
|
|
9496
9816
|
}
|
|
9817
|
+
process.emitWarning("Server wasn't stopped properly, clearing");
|
|
9818
|
+
_globalListeners.forEach((listener) => listener.close());
|
|
9497
9819
|
}
|
|
9498
9820
|
const server = (0, import_node.setupServer)();
|
|
9499
9821
|
this.registerHandlers(server);
|