@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.js
CHANGED
|
@@ -324,7 +324,7 @@ var OAuth2Server = class {
|
|
|
324
324
|
)
|
|
325
325
|
);
|
|
326
326
|
}
|
|
327
|
-
const grantType = request.query.grant_type || request.body
|
|
327
|
+
const grantType = request.query.grant_type || request.body?.grant_type;
|
|
328
328
|
if (!grantType) {
|
|
329
329
|
return next(
|
|
330
330
|
new CommercetoolsError(
|
|
@@ -342,9 +342,11 @@ var OAuth2Server = class {
|
|
|
342
342
|
request.credentials.clientSecret,
|
|
343
343
|
request.query.scope?.toString()
|
|
344
344
|
);
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
345
|
+
response.status(200).send(token);
|
|
346
|
+
return;
|
|
347
|
+
}
|
|
348
|
+
if (grantType === "refresh_token") {
|
|
349
|
+
const refreshToken = request.query.refresh_token?.toString() || request.body?.refresh_token;
|
|
348
350
|
if (!refreshToken) {
|
|
349
351
|
return next(
|
|
350
352
|
new CommercetoolsError(
|
|
@@ -374,22 +376,22 @@ var OAuth2Server = class {
|
|
|
374
376
|
)
|
|
375
377
|
);
|
|
376
378
|
}
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
return next(
|
|
380
|
-
new CommercetoolsError(
|
|
381
|
-
{
|
|
382
|
-
code: "unsupported_grant_type",
|
|
383
|
-
message: `Invalid parameter: grant_type: Invalid grant type: ${grantType}`
|
|
384
|
-
},
|
|
385
|
-
400
|
|
386
|
-
)
|
|
387
|
-
);
|
|
379
|
+
response.status(200).send(token);
|
|
380
|
+
return;
|
|
388
381
|
}
|
|
382
|
+
return next(
|
|
383
|
+
new CommercetoolsError(
|
|
384
|
+
{
|
|
385
|
+
code: "unsupported_grant_type",
|
|
386
|
+
message: `Invalid parameter: grant_type: Invalid grant type: ${grantType}`
|
|
387
|
+
},
|
|
388
|
+
400
|
|
389
|
+
)
|
|
390
|
+
);
|
|
389
391
|
}
|
|
390
392
|
async customerTokenHandler(request, response, next) {
|
|
391
393
|
const projectKey = request.params.projectKey;
|
|
392
|
-
const grantType = request.query.grant_type || request.body
|
|
394
|
+
const grantType = request.query.grant_type || request.body?.grant_type;
|
|
393
395
|
if (!grantType) {
|
|
394
396
|
return next(
|
|
395
397
|
new CommercetoolsError(
|
|
@@ -402,11 +404,11 @@ var OAuth2Server = class {
|
|
|
402
404
|
);
|
|
403
405
|
}
|
|
404
406
|
if (grantType === "password") {
|
|
405
|
-
const username = request.query.username || request.body
|
|
407
|
+
const username = request.query.username || request.body?.username;
|
|
406
408
|
const password = hashPassword(
|
|
407
409
|
request.query.password || request.body.password
|
|
408
410
|
);
|
|
409
|
-
const scope = request.query.scope?.toString() || request.body
|
|
411
|
+
const scope = request.query.scope?.toString() || request.body?.scope?.toString();
|
|
410
412
|
const result = this.customerRepository.query(
|
|
411
413
|
{ projectKey: request.params.projectKey },
|
|
412
414
|
{
|
|
@@ -426,7 +428,7 @@ var OAuth2Server = class {
|
|
|
426
428
|
}
|
|
427
429
|
const customer = result.results[0];
|
|
428
430
|
const token = this.store.getCustomerToken(projectKey, customer.id, scope);
|
|
429
|
-
|
|
431
|
+
response.status(200).send(token);
|
|
430
432
|
}
|
|
431
433
|
}
|
|
432
434
|
async inStoreCustomerTokenHandler(request, response, next) {
|
|
@@ -469,7 +471,8 @@ var OAuth2Server = class {
|
|
|
469
471
|
}
|
|
470
472
|
const customer = result.results[0];
|
|
471
473
|
const token = this.store.getCustomerToken(projectKey, customer.id, scope);
|
|
472
|
-
|
|
474
|
+
response.status(200).send(token);
|
|
475
|
+
return;
|
|
473
476
|
}
|
|
474
477
|
}
|
|
475
478
|
async anonymousTokenHandler(request, response, next) {
|
|
@@ -487,14 +490,15 @@ var OAuth2Server = class {
|
|
|
487
490
|
);
|
|
488
491
|
}
|
|
489
492
|
if (grantType === "client_credentials") {
|
|
490
|
-
const scope = request.query.scope?.toString() || request.body
|
|
493
|
+
const scope = request.query.scope?.toString() || request.body?.scope?.toString();
|
|
491
494
|
const anonymous_id = void 0;
|
|
492
495
|
const token = this.store.getAnonymousToken(
|
|
493
496
|
projectKey,
|
|
494
497
|
anonymous_id,
|
|
495
498
|
scope
|
|
496
499
|
);
|
|
497
|
-
|
|
500
|
+
response.status(200).send(token);
|
|
501
|
+
return;
|
|
498
502
|
}
|
|
499
503
|
}
|
|
500
504
|
};
|
|
@@ -1032,12 +1036,12 @@ var getShippingMethodsMatchingCart = (context, storage, cart, params = {}) => {
|
|
|
1032
1036
|
context.projectKey,
|
|
1033
1037
|
"shipping-method",
|
|
1034
1038
|
{
|
|
1035
|
-
|
|
1036
|
-
|
|
1039
|
+
where: [
|
|
1040
|
+
"zoneRates(zone(id in (:zoneIds)))",
|
|
1037
1041
|
`zoneRates(shippingRates(price(currencyCode="${cart.totalPrice.currencyCode}")))`
|
|
1038
1042
|
],
|
|
1039
1043
|
"var.zoneIds": zoneIds,
|
|
1040
|
-
|
|
1044
|
+
expand: params.expand
|
|
1041
1045
|
}
|
|
1042
1046
|
);
|
|
1043
1047
|
const results = shippingMethods.results.map((shippingMethod) => {
|
|
@@ -1073,7 +1077,7 @@ var selectPrice = ({
|
|
|
1073
1077
|
return countryMatch && currencyMatch;
|
|
1074
1078
|
});
|
|
1075
1079
|
};
|
|
1076
|
-
var calculateLineItemTotalPrice = (lineItem) => lineItem.price
|
|
1080
|
+
var calculateLineItemTotalPrice = (lineItem) => lineItem.price?.value.centAmount * lineItem.quantity;
|
|
1077
1081
|
var calculateCartTotalPrice = (cart) => cart.lineItems.reduce((cur, item) => cur + item.totalPrice.centAmount, 0);
|
|
1078
1082
|
|
|
1079
1083
|
// src/repositories/cart/actions.ts
|
|
@@ -1207,7 +1211,7 @@ var CartUpdateHandler = class extends AbstractUpdateHandler {
|
|
|
1207
1211
|
} else {
|
|
1208
1212
|
throw new CommercetoolsError({
|
|
1209
1213
|
code: "General",
|
|
1210
|
-
message:
|
|
1214
|
+
message: "Either lineItemid or lineItemKey needs to be provided."
|
|
1211
1215
|
});
|
|
1212
1216
|
}
|
|
1213
1217
|
if (quantity === 0) {
|
|
@@ -1474,7 +1478,7 @@ var CartUpdateHandler = class extends AbstractUpdateHandler {
|
|
|
1474
1478
|
});
|
|
1475
1479
|
}
|
|
1476
1480
|
const zoneRate = method.zoneRates.find(
|
|
1477
|
-
(rate) => rate.zone.obj
|
|
1481
|
+
(rate) => rate.zone.obj?.locations.some((loc) => loc.country === country)
|
|
1478
1482
|
);
|
|
1479
1483
|
if (!zoneRate) {
|
|
1480
1484
|
throw new Error("Zone rate not found");
|
|
@@ -1692,7 +1696,7 @@ var CartRepository = class extends AbstractResourceRepository {
|
|
|
1692
1696
|
};
|
|
1693
1697
|
|
|
1694
1698
|
// src/repositories/order/index.ts
|
|
1695
|
-
import assert from "assert";
|
|
1699
|
+
import assert from "node:assert";
|
|
1696
1700
|
|
|
1697
1701
|
// src/repositories/order/actions.ts
|
|
1698
1702
|
var OrderUpdateHandler = class extends AbstractUpdateHandler {
|
|
@@ -2259,7 +2263,8 @@ var BusinessUnitRepository = class extends AbstractResourceRepository {
|
|
|
2259
2263
|
};
|
|
2260
2264
|
this.saveNew(context, division);
|
|
2261
2265
|
return division;
|
|
2262
|
-
}
|
|
2266
|
+
}
|
|
2267
|
+
if (this._isCompanyDraft(draft)) {
|
|
2263
2268
|
const company = resource;
|
|
2264
2269
|
this.saveNew(context, company);
|
|
2265
2270
|
return company;
|
|
@@ -2381,7 +2386,7 @@ var CartDiscountUpdateHandler = class extends AbstractUpdateHandler {
|
|
|
2381
2386
|
throw new CommercetoolsError(
|
|
2382
2387
|
{
|
|
2383
2388
|
code: "InvalidOperation",
|
|
2384
|
-
message:
|
|
2389
|
+
message: `Cannot remove custom field ${name} because it does not exist.`
|
|
2385
2390
|
},
|
|
2386
2391
|
400
|
|
2387
2392
|
);
|
|
@@ -2561,15 +2566,11 @@ var CategoryUpdateHandler = class extends AbstractUpdateHandler {
|
|
|
2561
2566
|
return;
|
|
2562
2567
|
}
|
|
2563
2568
|
if (assetId) {
|
|
2564
|
-
resource.assets = resource.assets.filter(
|
|
2565
|
-
return obj.id !== assetId;
|
|
2566
|
-
});
|
|
2569
|
+
resource.assets = resource.assets.filter((obj) => obj.id !== assetId);
|
|
2567
2570
|
return;
|
|
2568
2571
|
}
|
|
2569
2572
|
if (assetKey) {
|
|
2570
|
-
resource.assets = resource.assets.filter(
|
|
2571
|
-
return obj.key !== assetKey;
|
|
2572
|
-
});
|
|
2573
|
+
resource.assets = resource.assets.filter((obj) => obj.key !== assetKey);
|
|
2573
2574
|
return;
|
|
2574
2575
|
}
|
|
2575
2576
|
}
|
|
@@ -2792,26 +2793,25 @@ var CustomObjectRepository = class extends AbstractResourceRepository {
|
|
|
2792
2793
|
return updated;
|
|
2793
2794
|
}
|
|
2794
2795
|
return current;
|
|
2795
|
-
} else {
|
|
2796
|
-
if (draft.version) {
|
|
2797
|
-
throw new CommercetoolsError(
|
|
2798
|
-
{
|
|
2799
|
-
code: "InvalidOperation",
|
|
2800
|
-
message: "version on create must be 0"
|
|
2801
|
-
},
|
|
2802
|
-
400
|
|
2803
|
-
);
|
|
2804
|
-
}
|
|
2805
|
-
const baseProperties = getBaseResourceProperties();
|
|
2806
|
-
const resource = {
|
|
2807
|
-
...baseProperties,
|
|
2808
|
-
container: draft.container,
|
|
2809
|
-
key: draft.key,
|
|
2810
|
-
value: draft.value
|
|
2811
|
-
};
|
|
2812
|
-
this.saveNew(context, resource);
|
|
2813
|
-
return resource;
|
|
2814
2796
|
}
|
|
2797
|
+
if (draft.version) {
|
|
2798
|
+
throw new CommercetoolsError(
|
|
2799
|
+
{
|
|
2800
|
+
code: "InvalidOperation",
|
|
2801
|
+
message: "version on create must be 0"
|
|
2802
|
+
},
|
|
2803
|
+
400
|
|
2804
|
+
);
|
|
2805
|
+
}
|
|
2806
|
+
const baseProperties = getBaseResourceProperties();
|
|
2807
|
+
const resource = {
|
|
2808
|
+
...baseProperties,
|
|
2809
|
+
container: draft.container,
|
|
2810
|
+
key: draft.key,
|
|
2811
|
+
value: draft.value
|
|
2812
|
+
};
|
|
2813
|
+
this.saveNew(context, resource);
|
|
2814
|
+
return resource;
|
|
2815
2815
|
}
|
|
2816
2816
|
getWithContainerAndKey(context, container, key) {
|
|
2817
2817
|
const items = this._storage.all(context.projectKey, this.getTypeId());
|
|
@@ -2950,7 +2950,7 @@ var CustomerUpdateHandler = class extends AbstractUpdateHandler {
|
|
|
2950
2950
|
}
|
|
2951
2951
|
resource.authenticationMode = authMode;
|
|
2952
2952
|
if (authMode === "ExternalAuth") {
|
|
2953
|
-
|
|
2953
|
+
resource.password = void 0;
|
|
2954
2954
|
return;
|
|
2955
2955
|
}
|
|
2956
2956
|
if (authMode === "Password") {
|
|
@@ -3504,7 +3504,8 @@ var ExtensionRepository = class extends AbstractResourceRepository {
|
|
|
3504
3504
|
extension,
|
|
3505
3505
|
"destination.authentication.headerValue"
|
|
3506
3506
|
);
|
|
3507
|
-
}
|
|
3507
|
+
}
|
|
3508
|
+
if (extension.destination.type === "AWSLambda") {
|
|
3508
3509
|
return maskSecretValue(resource, "destination.accessSecret");
|
|
3509
3510
|
}
|
|
3510
3511
|
}
|
|
@@ -3671,7 +3672,7 @@ var MyCustomerRepository = class extends CustomerRepository {
|
|
|
3671
3672
|
};
|
|
3672
3673
|
|
|
3673
3674
|
// src/repositories/my-order.ts
|
|
3674
|
-
import assert3 from "assert";
|
|
3675
|
+
import assert3 from "node:assert";
|
|
3675
3676
|
var MyOrderRepository = class extends OrderRepository {
|
|
3676
3677
|
create(context, draft) {
|
|
3677
3678
|
assert3(draft.id, "draft.id is missing");
|
|
@@ -4484,7 +4485,7 @@ var parseFilter = (filter) => {
|
|
|
4484
4485
|
(t) => ({
|
|
4485
4486
|
type: "Symbol",
|
|
4486
4487
|
kind: "int",
|
|
4487
|
-
value: parseInt(t.token.match, 10)
|
|
4488
|
+
value: Number.parseInt(t.token.match, 10)
|
|
4488
4489
|
})
|
|
4489
4490
|
).nud("STAR", 5, (_) => ({
|
|
4490
4491
|
type: "Symbol",
|
|
@@ -4508,9 +4509,8 @@ var parseFilter = (filter) => {
|
|
|
4508
4509
|
const expr = parser.parse({ terminals: [bp - 1] });
|
|
4509
4510
|
if (Array.isArray(expr)) {
|
|
4510
4511
|
return [left, ...expr];
|
|
4511
|
-
} else {
|
|
4512
|
-
return [left, expr];
|
|
4513
4512
|
}
|
|
4513
|
+
return [left, expr];
|
|
4514
4514
|
}).nud("(", 100, (t) => {
|
|
4515
4515
|
const expr = parser.parse({ terminals: [")"] });
|
|
4516
4516
|
lexer.expect(")");
|
|
@@ -4662,6 +4662,12 @@ var parseSearchQuery = (searchQuery) => {
|
|
|
4662
4662
|
return generateFieldMatchFunc(generateRangeMatchFunc, searchQuery.range);
|
|
4663
4663
|
}
|
|
4664
4664
|
if (isSearchExactExpression(searchQuery)) {
|
|
4665
|
+
if (Array.isArray(searchQuery.exact.values)) {
|
|
4666
|
+
return generateFieldMatchFunc(
|
|
4667
|
+
(value) => (searchQuery.exact.values ?? []).includes(value),
|
|
4668
|
+
searchQuery.exact
|
|
4669
|
+
);
|
|
4670
|
+
}
|
|
4665
4671
|
return generateFieldMatchFunc(
|
|
4666
4672
|
(value) => value === searchQuery.exact.value,
|
|
4667
4673
|
searchQuery.exact
|
|
@@ -5280,7 +5286,7 @@ var ProductUpdateHandler = class extends AbstractUpdateHandler {
|
|
|
5280
5286
|
}
|
|
5281
5287
|
if (position >= variantImages.length) {
|
|
5282
5288
|
throw new Error(
|
|
5283
|
-
|
|
5289
|
+
"Invalid position given. Position in images where the image should be moved. Must be between 0 and the total number of images minus 1."
|
|
5284
5290
|
);
|
|
5285
5291
|
}
|
|
5286
5292
|
variant.images = variantImages.filter((image) => image.url !== imageUrl);
|
|
@@ -5913,9 +5919,8 @@ var parseQueryExpression = (predicate) => {
|
|
|
5913
5919
|
if (Array.isArray(predicate)) {
|
|
5914
5920
|
const callbacks = predicate.map((item) => generateMatchFunc2(item));
|
|
5915
5921
|
return (target, variables) => callbacks.every((callback) => callback(target, variables));
|
|
5916
|
-
} else {
|
|
5917
|
-
return generateMatchFunc2(predicate);
|
|
5918
5922
|
}
|
|
5923
|
+
return generateMatchFunc2(predicate);
|
|
5919
5924
|
};
|
|
5920
5925
|
var validateSymbol = (val) => {
|
|
5921
5926
|
if (!val.type) {
|
|
@@ -5970,7 +5975,7 @@ var generateMatchFunc2 = (predicate) => {
|
|
|
5970
5975
|
1,
|
|
5971
5976
|
(t) => ({
|
|
5972
5977
|
type: "boolean",
|
|
5973
|
-
value: t.token.match === "true"
|
|
5978
|
+
value: t.token.match === "true",
|
|
5974
5979
|
pos: t.token.strpos()
|
|
5975
5980
|
})
|
|
5976
5981
|
).nud(
|
|
@@ -5996,7 +6001,7 @@ var generateMatchFunc2 = (predicate) => {
|
|
|
5996
6001
|
1,
|
|
5997
6002
|
(t) => ({
|
|
5998
6003
|
type: "int",
|
|
5999
|
-
value: parseInt(t.token.match, 10),
|
|
6004
|
+
value: Number.parseInt(t.token.match, 10),
|
|
6000
6005
|
pos: t.token.strpos()
|
|
6001
6006
|
})
|
|
6002
6007
|
).nud(
|
|
@@ -6004,7 +6009,7 @@ var generateMatchFunc2 = (predicate) => {
|
|
|
6004
6009
|
1,
|
|
6005
6010
|
(t) => ({
|
|
6006
6011
|
type: "float",
|
|
6007
|
-
value: parseFloat(t.token.match),
|
|
6012
|
+
value: Number.parseFloat(t.token.match),
|
|
6008
6013
|
pos: t.token.strpos()
|
|
6009
6014
|
})
|
|
6010
6015
|
).nud("NOT", 100, ({ bp }) => {
|
|
@@ -6020,9 +6025,8 @@ var generateMatchFunc2 = (predicate) => {
|
|
|
6020
6025
|
const expr = parser.parse({ terminals: [bp - 1] });
|
|
6021
6026
|
if (Array.isArray(expr)) {
|
|
6022
6027
|
return [left, ...expr];
|
|
6023
|
-
} else {
|
|
6024
|
-
return [left, expr];
|
|
6025
6028
|
}
|
|
6029
|
+
return [left, expr];
|
|
6026
6030
|
}).nud("(", 100, (t) => {
|
|
6027
6031
|
const expr = parser.parse({ terminals: [")"] });
|
|
6028
6032
|
return expr;
|
|
@@ -6032,22 +6036,21 @@ var generateMatchFunc2 = (predicate) => {
|
|
|
6032
6036
|
return (obj, vars) => {
|
|
6033
6037
|
if (Array.isArray(obj)) {
|
|
6034
6038
|
return obj.some((item) => {
|
|
6035
|
-
const
|
|
6036
|
-
if (
|
|
6037
|
-
return expr(
|
|
6039
|
+
const value2 = resolveValue(item, left);
|
|
6040
|
+
if (value2) {
|
|
6041
|
+
return expr(value2, vars);
|
|
6038
6042
|
}
|
|
6039
6043
|
return false;
|
|
6040
6044
|
});
|
|
6041
|
-
}
|
|
6042
|
-
|
|
6043
|
-
|
|
6044
|
-
|
|
6045
|
-
|
|
6046
|
-
}
|
|
6047
|
-
return expr(value, vars);
|
|
6045
|
+
}
|
|
6046
|
+
const value = resolveValue(obj, left);
|
|
6047
|
+
if (value) {
|
|
6048
|
+
if (Array.isArray(value)) {
|
|
6049
|
+
return value.some((item) => expr(item, vars));
|
|
6048
6050
|
}
|
|
6049
|
-
return
|
|
6051
|
+
return expr(value, vars);
|
|
6050
6052
|
}
|
|
6053
|
+
return false;
|
|
6051
6054
|
};
|
|
6052
6055
|
}).bp(")", 0).led("=", 20, ({ left, bp }) => {
|
|
6053
6056
|
const expr = parser.parse({ terminals: [bp - 1] });
|
|
@@ -6062,14 +6065,13 @@ var generateMatchFunc2 = (predicate) => {
|
|
|
6062
6065
|
}
|
|
6063
6066
|
return value === other;
|
|
6064
6067
|
});
|
|
6065
|
-
} else {
|
|
6066
|
-
const resolvedValue = resolveValue(obj, left);
|
|
6067
|
-
const resolvedSymbol = resolveSymbol(expr, vars);
|
|
6068
|
-
if (Array.isArray(resolvedValue)) {
|
|
6069
|
-
return !!resolvedValue.some((elem) => elem === resolvedSymbol);
|
|
6070
|
-
}
|
|
6071
|
-
return resolvedValue === resolvedSymbol;
|
|
6072
6068
|
}
|
|
6069
|
+
const resolvedValue = resolveValue(obj, left);
|
|
6070
|
+
const resolvedSymbol = resolveSymbol(expr, vars);
|
|
6071
|
+
if (Array.isArray(resolvedValue)) {
|
|
6072
|
+
return !!resolvedValue.some((elem) => elem === resolvedSymbol);
|
|
6073
|
+
}
|
|
6074
|
+
return resolvedValue === resolvedSymbol;
|
|
6073
6075
|
};
|
|
6074
6076
|
}).led("!=", 20, ({ left, bp }) => {
|
|
6075
6077
|
const expr = parser.parse({ terminals: [bp - 1] });
|
|
@@ -6106,12 +6108,11 @@ var generateMatchFunc2 = (predicate) => {
|
|
|
6106
6108
|
const val = resolveValue(obj, left);
|
|
6107
6109
|
return val.length === 0;
|
|
6108
6110
|
};
|
|
6109
|
-
} else {
|
|
6110
|
-
return (obj, vars) => {
|
|
6111
|
-
const val = resolveValue(obj, left);
|
|
6112
|
-
return val.length !== 0;
|
|
6113
|
-
};
|
|
6114
6111
|
}
|
|
6112
|
+
return (obj, vars) => {
|
|
6113
|
+
const val = resolveValue(obj, left);
|
|
6114
|
+
return val.length !== 0;
|
|
6115
|
+
};
|
|
6115
6116
|
}
|
|
6116
6117
|
case "defined": {
|
|
6117
6118
|
if (!invert) {
|
|
@@ -6119,12 +6120,11 @@ var generateMatchFunc2 = (predicate) => {
|
|
|
6119
6120
|
const val = resolveValue(obj, left);
|
|
6120
6121
|
return val !== void 0;
|
|
6121
6122
|
};
|
|
6122
|
-
} else {
|
|
6123
|
-
return (obj, vars) => {
|
|
6124
|
-
const val = resolveValue(obj, left);
|
|
6125
|
-
return val === void 0;
|
|
6126
|
-
};
|
|
6127
6123
|
}
|
|
6124
|
+
return (obj, vars) => {
|
|
6125
|
+
const val = resolveValue(obj, left);
|
|
6126
|
+
return val === void 0;
|
|
6127
|
+
};
|
|
6128
6128
|
}
|
|
6129
6129
|
default: {
|
|
6130
6130
|
throw new Error("Unexpected");
|
|
@@ -6197,9 +6197,8 @@ var generateMatchFunc2 = (predicate) => {
|
|
|
6197
6197
|
const array = expr.map((item) => resolveSymbol(item, vars));
|
|
6198
6198
|
if (keyword.type === "ALL") {
|
|
6199
6199
|
return array.every((item) => value.includes(item));
|
|
6200
|
-
} else {
|
|
6201
|
-
return array.some((item) => value.includes(item));
|
|
6202
6200
|
}
|
|
6201
|
+
return array.some((item) => value.includes(item));
|
|
6203
6202
|
};
|
|
6204
6203
|
}).build();
|
|
6205
6204
|
const result = parser.parse();
|
|
@@ -6440,9 +6439,8 @@ var ProductProjectionSearch = class {
|
|
|
6440
6439
|
max: numValues > 0 ? Math.max(...values) : 0,
|
|
6441
6440
|
mean: numValues > 0 ? mean(values) : 0
|
|
6442
6441
|
};
|
|
6443
|
-
} else {
|
|
6444
|
-
throw new Error("not supported");
|
|
6445
6442
|
}
|
|
6443
|
+
throw new Error("not supported");
|
|
6446
6444
|
}) || [];
|
|
6447
6445
|
const data = {
|
|
6448
6446
|
type: "range",
|
|
@@ -6789,23 +6787,289 @@ var ProjectUpdateHandler = class extends AbstractUpdateHandler {
|
|
|
6789
6787
|
}
|
|
6790
6788
|
};
|
|
6791
6789
|
|
|
6792
|
-
// src/repositories/quote.ts
|
|
6790
|
+
// src/repositories/quote/actions.ts
|
|
6791
|
+
var QuoteUpdateHandler = class extends AbstractUpdateHandler {
|
|
6792
|
+
setCustomField(context, resource, { name, value }) {
|
|
6793
|
+
if (!resource.custom) {
|
|
6794
|
+
throw new Error("Resource has no custom field");
|
|
6795
|
+
}
|
|
6796
|
+
resource.custom.fields[name] = value;
|
|
6797
|
+
}
|
|
6798
|
+
setCustomType(context, resource, { type, fields }) {
|
|
6799
|
+
if (!type) {
|
|
6800
|
+
resource.custom = void 0;
|
|
6801
|
+
} else {
|
|
6802
|
+
const resolvedType = this._storage.getByResourceIdentifier(
|
|
6803
|
+
context.projectKey,
|
|
6804
|
+
type
|
|
6805
|
+
);
|
|
6806
|
+
if (!resolvedType) {
|
|
6807
|
+
throw new Error(`Type ${type} not found`);
|
|
6808
|
+
}
|
|
6809
|
+
resource.custom = {
|
|
6810
|
+
type: {
|
|
6811
|
+
typeId: "type",
|
|
6812
|
+
id: resolvedType.id
|
|
6813
|
+
},
|
|
6814
|
+
fields: fields || {}
|
|
6815
|
+
};
|
|
6816
|
+
}
|
|
6817
|
+
}
|
|
6818
|
+
transitionState(context, resource, { state, force }) {
|
|
6819
|
+
let stateReference = void 0;
|
|
6820
|
+
if (state) {
|
|
6821
|
+
stateReference = getReferenceFromResourceIdentifier(
|
|
6822
|
+
state,
|
|
6823
|
+
context.projectKey,
|
|
6824
|
+
this._storage
|
|
6825
|
+
);
|
|
6826
|
+
resource.state = stateReference;
|
|
6827
|
+
} else {
|
|
6828
|
+
throw new CommercetoolsError(
|
|
6829
|
+
{
|
|
6830
|
+
code: "InvalidJsonInput",
|
|
6831
|
+
message: "Request body does not contain valid JSON.",
|
|
6832
|
+
detailedErrorMessage: "actions -> state: Missing required value"
|
|
6833
|
+
},
|
|
6834
|
+
400
|
|
6835
|
+
);
|
|
6836
|
+
}
|
|
6837
|
+
return resource;
|
|
6838
|
+
}
|
|
6839
|
+
};
|
|
6840
|
+
|
|
6841
|
+
// src/repositories/quote/index.ts
|
|
6793
6842
|
var QuoteRepository = class extends AbstractResourceRepository {
|
|
6794
6843
|
constructor(config) {
|
|
6795
6844
|
super("quote", config);
|
|
6845
|
+
this.actions = new QuoteUpdateHandler(config.storage);
|
|
6796
6846
|
}
|
|
6797
6847
|
create(context, draft) {
|
|
6798
|
-
|
|
6848
|
+
const staged = this._storage.getByResourceIdentifier(
|
|
6849
|
+
context.projectKey,
|
|
6850
|
+
draft.stagedQuote
|
|
6851
|
+
);
|
|
6852
|
+
const cart = this._storage.getByResourceIdentifier(
|
|
6853
|
+
context.projectKey,
|
|
6854
|
+
staged.quotationCart
|
|
6855
|
+
);
|
|
6856
|
+
if (!cart.customerId) {
|
|
6857
|
+
throw new Error("Cart does not have a customer");
|
|
6858
|
+
}
|
|
6859
|
+
const resource = {
|
|
6860
|
+
...getBaseResourceProperties(),
|
|
6861
|
+
quoteState: "Accepted",
|
|
6862
|
+
quoteRequest: staged.quoteRequest,
|
|
6863
|
+
lineItems: cart.lineItems,
|
|
6864
|
+
customLineItems: cart.customLineItems,
|
|
6865
|
+
customer: {
|
|
6866
|
+
typeId: "customer",
|
|
6867
|
+
id: cart.customerId
|
|
6868
|
+
},
|
|
6869
|
+
stagedQuote: {
|
|
6870
|
+
typeId: "staged-quote",
|
|
6871
|
+
id: staged.id
|
|
6872
|
+
},
|
|
6873
|
+
totalPrice: cart.totalPrice,
|
|
6874
|
+
taxedPrice: cart.taxedPrice,
|
|
6875
|
+
taxMode: cart.taxMode,
|
|
6876
|
+
taxRoundingMode: cart.taxRoundingMode,
|
|
6877
|
+
taxCalculationMode: cart.taxCalculationMode,
|
|
6878
|
+
billingAddress: cart.billingAddress,
|
|
6879
|
+
shippingAddress: cart.shippingAddress
|
|
6880
|
+
};
|
|
6881
|
+
return resource;
|
|
6882
|
+
}
|
|
6883
|
+
};
|
|
6884
|
+
|
|
6885
|
+
// src/repositories/quote-request/index.ts
|
|
6886
|
+
import assert4 from "node:assert";
|
|
6887
|
+
|
|
6888
|
+
// src/repositories/quote-request/actions.ts
|
|
6889
|
+
var QuoteRequestUpdateHandler = class extends AbstractUpdateHandler {
|
|
6890
|
+
setCustomField(context, resource, { name, value }) {
|
|
6891
|
+
if (!resource.custom) {
|
|
6892
|
+
throw new Error("Resource has no custom field");
|
|
6893
|
+
}
|
|
6894
|
+
resource.custom.fields[name] = value;
|
|
6895
|
+
}
|
|
6896
|
+
setCustomType(context, resource, { type, fields }) {
|
|
6897
|
+
if (!type) {
|
|
6898
|
+
resource.custom = void 0;
|
|
6899
|
+
} else {
|
|
6900
|
+
const resolvedType = this._storage.getByResourceIdentifier(
|
|
6901
|
+
context.projectKey,
|
|
6902
|
+
type
|
|
6903
|
+
);
|
|
6904
|
+
if (!resolvedType) {
|
|
6905
|
+
throw new Error(`Type ${type} not found`);
|
|
6906
|
+
}
|
|
6907
|
+
resource.custom = {
|
|
6908
|
+
type: {
|
|
6909
|
+
typeId: "type",
|
|
6910
|
+
id: resolvedType.id
|
|
6911
|
+
},
|
|
6912
|
+
fields: fields || {}
|
|
6913
|
+
};
|
|
6914
|
+
}
|
|
6915
|
+
}
|
|
6916
|
+
transitionState(context, resource, { state, force }) {
|
|
6917
|
+
let stateReference = void 0;
|
|
6918
|
+
if (state) {
|
|
6919
|
+
stateReference = getReferenceFromResourceIdentifier(
|
|
6920
|
+
state,
|
|
6921
|
+
context.projectKey,
|
|
6922
|
+
this._storage
|
|
6923
|
+
);
|
|
6924
|
+
resource.state = stateReference;
|
|
6925
|
+
} else {
|
|
6926
|
+
throw new CommercetoolsError(
|
|
6927
|
+
{
|
|
6928
|
+
code: "InvalidJsonInput",
|
|
6929
|
+
message: "Request body does not contain valid JSON.",
|
|
6930
|
+
detailedErrorMessage: "actions -> state: Missing required value"
|
|
6931
|
+
},
|
|
6932
|
+
400
|
|
6933
|
+
);
|
|
6934
|
+
}
|
|
6935
|
+
return resource;
|
|
6799
6936
|
}
|
|
6800
6937
|
};
|
|
6801
6938
|
|
|
6802
|
-
// src/repositories/quote-request.ts
|
|
6939
|
+
// src/repositories/quote-request/index.ts
|
|
6803
6940
|
var QuoteRequestRepository = class extends AbstractResourceRepository {
|
|
6804
6941
|
constructor(config) {
|
|
6805
6942
|
super("quote-request", config);
|
|
6943
|
+
this.actions = new QuoteRequestUpdateHandler(config.storage);
|
|
6806
6944
|
}
|
|
6807
6945
|
create(context, draft) {
|
|
6808
|
-
|
|
6946
|
+
assert4(draft.cart, "draft.cart is missing");
|
|
6947
|
+
return this.createFromCart(context, {
|
|
6948
|
+
id: draft.cart.id,
|
|
6949
|
+
typeId: "cart"
|
|
6950
|
+
});
|
|
6951
|
+
}
|
|
6952
|
+
createFromCart(context, cartReference) {
|
|
6953
|
+
const cart = this._storage.getByResourceIdentifier(
|
|
6954
|
+
context.projectKey,
|
|
6955
|
+
cartReference
|
|
6956
|
+
);
|
|
6957
|
+
if (!cart) {
|
|
6958
|
+
throw new Error("Cannot find cart");
|
|
6959
|
+
}
|
|
6960
|
+
if (!cart.customerId) {
|
|
6961
|
+
throw new Error("Cart does not have a customer");
|
|
6962
|
+
}
|
|
6963
|
+
const resource = {
|
|
6964
|
+
...getBaseResourceProperties(),
|
|
6965
|
+
billingAddress: cart.billingAddress,
|
|
6966
|
+
cart: cartReference,
|
|
6967
|
+
country: cart.country,
|
|
6968
|
+
custom: cart.custom,
|
|
6969
|
+
customer: {
|
|
6970
|
+
typeId: "customer",
|
|
6971
|
+
id: cart.customerId
|
|
6972
|
+
},
|
|
6973
|
+
customerGroup: cart.customerGroup,
|
|
6974
|
+
customLineItems: [],
|
|
6975
|
+
directDiscounts: cart.directDiscounts,
|
|
6976
|
+
lineItems: cart.lineItems,
|
|
6977
|
+
paymentInfo: cart.paymentInfo,
|
|
6978
|
+
quoteRequestState: "Submitted",
|
|
6979
|
+
shippingAddress: cart.shippingAddress,
|
|
6980
|
+
taxCalculationMode: cart.taxCalculationMode,
|
|
6981
|
+
taxedPrice: cart.taxedPrice,
|
|
6982
|
+
taxMode: cart.taxMode,
|
|
6983
|
+
taxRoundingMode: cart.taxRoundingMode,
|
|
6984
|
+
totalPrice: cart.totalPrice,
|
|
6985
|
+
store: cart.store
|
|
6986
|
+
};
|
|
6987
|
+
return this.saveNew(context, resource);
|
|
6988
|
+
}
|
|
6989
|
+
};
|
|
6990
|
+
|
|
6991
|
+
// src/repositories/quote-staged/actions.ts
|
|
6992
|
+
var StagedQuoteUpdateHandler = class extends AbstractUpdateHandler {
|
|
6993
|
+
setCustomField(context, resource, { name, value }) {
|
|
6994
|
+
if (!resource.custom) {
|
|
6995
|
+
throw new Error("Resource has no custom field");
|
|
6996
|
+
}
|
|
6997
|
+
resource.custom.fields[name] = value;
|
|
6998
|
+
}
|
|
6999
|
+
setCustomType(context, resource, { type, fields }) {
|
|
7000
|
+
if (!type) {
|
|
7001
|
+
resource.custom = void 0;
|
|
7002
|
+
} else {
|
|
7003
|
+
const resolvedType = this._storage.getByResourceIdentifier(
|
|
7004
|
+
context.projectKey,
|
|
7005
|
+
type
|
|
7006
|
+
);
|
|
7007
|
+
if (!resolvedType) {
|
|
7008
|
+
throw new Error(`Type ${type} not found`);
|
|
7009
|
+
}
|
|
7010
|
+
resource.custom = {
|
|
7011
|
+
type: {
|
|
7012
|
+
typeId: "type",
|
|
7013
|
+
id: resolvedType.id
|
|
7014
|
+
},
|
|
7015
|
+
fields: fields || {}
|
|
7016
|
+
};
|
|
7017
|
+
}
|
|
7018
|
+
}
|
|
7019
|
+
transitionState(context, resource, { state, force }) {
|
|
7020
|
+
let stateReference = void 0;
|
|
7021
|
+
if (state) {
|
|
7022
|
+
stateReference = getReferenceFromResourceIdentifier(
|
|
7023
|
+
state,
|
|
7024
|
+
context.projectKey,
|
|
7025
|
+
this._storage
|
|
7026
|
+
);
|
|
7027
|
+
resource.state = stateReference;
|
|
7028
|
+
} else {
|
|
7029
|
+
throw new CommercetoolsError(
|
|
7030
|
+
{
|
|
7031
|
+
code: "InvalidJsonInput",
|
|
7032
|
+
message: "Request body does not contain valid JSON.",
|
|
7033
|
+
detailedErrorMessage: "actions -> state: Missing required value"
|
|
7034
|
+
},
|
|
7035
|
+
400
|
|
7036
|
+
);
|
|
7037
|
+
}
|
|
7038
|
+
return resource;
|
|
7039
|
+
}
|
|
7040
|
+
};
|
|
7041
|
+
|
|
7042
|
+
// src/repositories/quote-staged/index.ts
|
|
7043
|
+
var StagedQuoteRepository = class extends AbstractResourceRepository {
|
|
7044
|
+
constructor(config) {
|
|
7045
|
+
super("staged-quote", config);
|
|
7046
|
+
this.actions = new StagedQuoteUpdateHandler(config.storage);
|
|
7047
|
+
}
|
|
7048
|
+
create(context, draft) {
|
|
7049
|
+
const quoteRequest = this._storage.getByResourceIdentifier(
|
|
7050
|
+
context.projectKey,
|
|
7051
|
+
draft.quoteRequest
|
|
7052
|
+
);
|
|
7053
|
+
if (!quoteRequest.cart) {
|
|
7054
|
+
throw new Error("Cannot find quote request");
|
|
7055
|
+
}
|
|
7056
|
+
const cart = this._storage.getByResourceIdentifier(
|
|
7057
|
+
context.projectKey,
|
|
7058
|
+
quoteRequest.cart
|
|
7059
|
+
);
|
|
7060
|
+
const resource = {
|
|
7061
|
+
...getBaseResourceProperties(),
|
|
7062
|
+
stagedQuoteState: "InProgress",
|
|
7063
|
+
quoteRequest: {
|
|
7064
|
+
typeId: "quote-request",
|
|
7065
|
+
id: quoteRequest.id
|
|
7066
|
+
},
|
|
7067
|
+
quotationCart: {
|
|
7068
|
+
typeId: "cart",
|
|
7069
|
+
id: cart.id
|
|
7070
|
+
}
|
|
7071
|
+
};
|
|
7072
|
+
return resource;
|
|
6809
7073
|
}
|
|
6810
7074
|
};
|
|
6811
7075
|
|
|
@@ -7087,7 +7351,7 @@ var ShoppingListUpdateHandler = class extends AbstractUpdateHandler {
|
|
|
7087
7351
|
} else {
|
|
7088
7352
|
throw new CommercetoolsError({
|
|
7089
7353
|
code: "General",
|
|
7090
|
-
message:
|
|
7354
|
+
message: "Either lineItemid or lineItemKey needs to be provided."
|
|
7091
7355
|
});
|
|
7092
7356
|
}
|
|
7093
7357
|
if (quantity === 0) {
|
|
@@ -7212,7 +7476,12 @@ var ShoppingListRepository = class extends AbstractResourceRepository {
|
|
|
7212
7476
|
context.projectKey,
|
|
7213
7477
|
this._storage
|
|
7214
7478
|
) : void 0,
|
|
7215
|
-
store: draft.store ? getStoreKeyReference(draft.store, context.projectKey, this._storage) : void 0
|
|
7479
|
+
store: draft.store ? getStoreKeyReference(draft.store, context.projectKey, this._storage) : void 0,
|
|
7480
|
+
businessUnit: draft.businessUnit ? getBusinessUnitKeyReference(
|
|
7481
|
+
draft.businessUnit,
|
|
7482
|
+
context.projectKey,
|
|
7483
|
+
this._storage
|
|
7484
|
+
) : void 0
|
|
7216
7485
|
};
|
|
7217
7486
|
return this.saveNew(context, resource);
|
|
7218
7487
|
}
|
|
@@ -7267,21 +7536,11 @@ var ShoppingListRepository = class extends AbstractResourceRepository {
|
|
|
7267
7536
|
return lineItem;
|
|
7268
7537
|
}
|
|
7269
7538
|
throw new Error(
|
|
7270
|
-
|
|
7539
|
+
"must provide either sku, productId or variantId for ShoppingListLineItem"
|
|
7271
7540
|
);
|
|
7272
7541
|
};
|
|
7273
7542
|
};
|
|
7274
7543
|
|
|
7275
|
-
// src/repositories/staged-quote.ts
|
|
7276
|
-
var StagedQuoteRepository = class extends AbstractResourceRepository {
|
|
7277
|
-
constructor(config) {
|
|
7278
|
-
super("staged-quote", config);
|
|
7279
|
-
}
|
|
7280
|
-
create(context, draft) {
|
|
7281
|
-
throw new Error("not implemented");
|
|
7282
|
-
}
|
|
7283
|
-
};
|
|
7284
|
-
|
|
7285
7544
|
// src/repositories/standalone-price.ts
|
|
7286
7545
|
var StandAlonePriceRepository = class extends AbstractResourceRepository {
|
|
7287
7546
|
constructor(config) {
|
|
@@ -7505,7 +7764,8 @@ var SubscriptionRepository = class extends AbstractResourceRepository {
|
|
|
7505
7764
|
},
|
|
7506
7765
|
key: draft.key,
|
|
7507
7766
|
messages: draft.messages || [],
|
|
7508
|
-
status: "Healthy"
|
|
7767
|
+
status: "Healthy",
|
|
7768
|
+
events: draft.events || []
|
|
7509
7769
|
};
|
|
7510
7770
|
return this.saveNew(context, resource);
|
|
7511
7771
|
}
|
|
@@ -7727,44 +7987,44 @@ var createRepositories = (config) => ({
|
|
|
7727
7987
|
"associate-role": new AssociateRoleRepository(config),
|
|
7728
7988
|
"attribute-group": new AttributeGroupRepository(config),
|
|
7729
7989
|
"business-unit": new BusinessUnitRepository(config),
|
|
7730
|
-
|
|
7731
|
-
|
|
7990
|
+
category: new CategoryRepository(config),
|
|
7991
|
+
cart: new CartRepository(config),
|
|
7732
7992
|
"cart-discount": new CartDiscountRepository(config),
|
|
7733
|
-
|
|
7734
|
-
|
|
7993
|
+
customer: new CustomerRepository(config),
|
|
7994
|
+
channel: new ChannelRepository(config),
|
|
7735
7995
|
"customer-group": new CustomerGroupRepository(config),
|
|
7736
7996
|
"discount-code": new DiscountCodeRepository(config),
|
|
7737
|
-
|
|
7997
|
+
extension: new ExtensionRepository(config),
|
|
7738
7998
|
"inventory-entry": new InventoryEntryRepository(config),
|
|
7739
7999
|
"key-value-document": new CustomObjectRepository(config),
|
|
7740
|
-
|
|
8000
|
+
order: new OrderRepository(config),
|
|
7741
8001
|
"order-edit": new OrderEditRepository(config),
|
|
7742
|
-
|
|
8002
|
+
payment: new PaymentRepository(config),
|
|
7743
8003
|
"my-cart": new CartRepository(config),
|
|
7744
8004
|
"my-order": new MyOrderRepository(config),
|
|
7745
8005
|
"my-customer": new MyCustomerRepository(config),
|
|
7746
8006
|
"my-payment": new PaymentRepository(config),
|
|
7747
8007
|
"my-shopping-list": new ShoppingListRepository(config),
|
|
7748
|
-
|
|
8008
|
+
product: new ProductRepository(config),
|
|
7749
8009
|
"product-type": new ProductTypeRepository(config),
|
|
7750
8010
|
"product-discount": new ProductDiscountRepository(config),
|
|
7751
8011
|
"product-projection": new ProductProjectionRepository(config),
|
|
7752
8012
|
"product-selection": new ProductSelectionRepository(config),
|
|
7753
8013
|
"product-tailoring": new ProductTailoringRepository(config),
|
|
7754
|
-
|
|
7755
|
-
|
|
7756
|
-
|
|
8014
|
+
project: new ProjectRepository(config),
|
|
8015
|
+
review: new ReviewRepository(config),
|
|
8016
|
+
quote: new QuoteRepository(config),
|
|
7757
8017
|
"quote-request": new QuoteRequestRepository(config),
|
|
7758
8018
|
"shipping-method": new ShippingMethodRepository(config),
|
|
7759
8019
|
"shopping-list": new ShoppingListRepository(config),
|
|
7760
8020
|
"staged-quote": new StagedQuoteRepository(config),
|
|
7761
8021
|
"standalone-price": new StandAlonePriceRepository(config),
|
|
7762
|
-
|
|
7763
|
-
|
|
7764
|
-
|
|
8022
|
+
state: new StateRepository(config),
|
|
8023
|
+
store: new StoreRepository(config),
|
|
8024
|
+
subscription: new SubscriptionRepository(config),
|
|
7765
8025
|
"tax-category": new TaxCategoryRepository(config),
|
|
7766
|
-
|
|
7767
|
-
|
|
8026
|
+
type: new TypeRepository(config),
|
|
8027
|
+
zone: new ZoneRepository(config)
|
|
7768
8028
|
});
|
|
7769
8029
|
|
|
7770
8030
|
// src/services/as-associate.ts
|
|
@@ -7842,46 +8102,53 @@ var AbstractService = class {
|
|
|
7842
8102
|
}
|
|
7843
8103
|
}
|
|
7844
8104
|
const result = this.repository.query(getRepositoryContext(request), params);
|
|
7845
|
-
|
|
8105
|
+
response.status(200).send(result);
|
|
8106
|
+
return;
|
|
7846
8107
|
}
|
|
7847
8108
|
getWithId(request, response) {
|
|
7848
|
-
const result = this._expandWithId(request, request.params
|
|
8109
|
+
const result = this._expandWithId(request, request.params.id);
|
|
7849
8110
|
if (!result) {
|
|
7850
|
-
|
|
8111
|
+
response.status(404).send();
|
|
8112
|
+
return;
|
|
7851
8113
|
}
|
|
7852
|
-
|
|
8114
|
+
response.status(200).send(result);
|
|
7853
8115
|
}
|
|
7854
8116
|
getWithKey(request, response) {
|
|
7855
8117
|
const result = this.repository.getByKey(
|
|
7856
8118
|
getRepositoryContext(request),
|
|
7857
|
-
request.params
|
|
8119
|
+
request.params.key,
|
|
7858
8120
|
{
|
|
7859
8121
|
expand: this._parseParam(request.query.expand)
|
|
7860
8122
|
}
|
|
7861
8123
|
);
|
|
7862
|
-
if (!result)
|
|
7863
|
-
|
|
8124
|
+
if (!result) {
|
|
8125
|
+
response.status(404).send();
|
|
8126
|
+
return;
|
|
8127
|
+
}
|
|
8128
|
+
response.status(200).send(result);
|
|
7864
8129
|
}
|
|
7865
8130
|
deleteWithId(request, response) {
|
|
7866
8131
|
const result = this.repository.delete(
|
|
7867
8132
|
getRepositoryContext(request),
|
|
7868
|
-
request.params
|
|
8133
|
+
request.params.id,
|
|
7869
8134
|
{
|
|
7870
8135
|
expand: this._parseParam(request.query.expand)
|
|
7871
8136
|
}
|
|
7872
8137
|
);
|
|
7873
8138
|
if (!result) {
|
|
7874
|
-
|
|
8139
|
+
response.status(404).send("Not found");
|
|
8140
|
+
return;
|
|
7875
8141
|
}
|
|
7876
|
-
|
|
8142
|
+
response.status(200).send(result);
|
|
7877
8143
|
}
|
|
7878
8144
|
deleteWithKey(request, response) {
|
|
7879
8145
|
const resource = this.repository.getByKey(
|
|
7880
8146
|
getRepositoryContext(request),
|
|
7881
|
-
request.params
|
|
8147
|
+
request.params.key
|
|
7882
8148
|
);
|
|
7883
8149
|
if (!resource) {
|
|
7884
|
-
|
|
8150
|
+
response.status(404).send("Not found");
|
|
8151
|
+
return;
|
|
7885
8152
|
}
|
|
7886
8153
|
const result = this.repository.delete(
|
|
7887
8154
|
getRepositoryContext(request),
|
|
@@ -7891,9 +8158,10 @@ var AbstractService = class {
|
|
|
7891
8158
|
}
|
|
7892
8159
|
);
|
|
7893
8160
|
if (!result) {
|
|
7894
|
-
|
|
8161
|
+
response.status(404).send("Not found");
|
|
8162
|
+
return;
|
|
7895
8163
|
}
|
|
7896
|
-
|
|
8164
|
+
response.status(200).send(result);
|
|
7897
8165
|
}
|
|
7898
8166
|
post(request, response) {
|
|
7899
8167
|
const draft = request.body;
|
|
@@ -7902,7 +8170,7 @@ var AbstractService = class {
|
|
|
7902
8170
|
draft
|
|
7903
8171
|
);
|
|
7904
8172
|
const result = this._expandWithId(request, resource.id);
|
|
7905
|
-
|
|
8173
|
+
response.status(this.createStatusCode).send(result);
|
|
7906
8174
|
}
|
|
7907
8175
|
postWithId(request, response) {
|
|
7908
8176
|
const updateRequest = validateData(
|
|
@@ -7911,10 +8179,11 @@ var AbstractService = class {
|
|
|
7911
8179
|
);
|
|
7912
8180
|
const resource = this.repository.get(
|
|
7913
8181
|
getRepositoryContext(request),
|
|
7914
|
-
request.params
|
|
8182
|
+
request.params.id
|
|
7915
8183
|
);
|
|
7916
8184
|
if (!resource) {
|
|
7917
|
-
|
|
8185
|
+
response.status(404).send("Not found");
|
|
8186
|
+
return;
|
|
7918
8187
|
}
|
|
7919
8188
|
const updatedResource = this.repository.processUpdateActions(
|
|
7920
8189
|
getRepositoryContext(request),
|
|
@@ -7923,7 +8192,7 @@ var AbstractService = class {
|
|
|
7923
8192
|
updateRequest.actions
|
|
7924
8193
|
);
|
|
7925
8194
|
const result = this._expandWithId(request, updatedResource.id);
|
|
7926
|
-
|
|
8195
|
+
response.status(200).send(result);
|
|
7927
8196
|
}
|
|
7928
8197
|
postWithKey(request, response) {
|
|
7929
8198
|
const updateRequest = validateData(
|
|
@@ -7932,10 +8201,11 @@ var AbstractService = class {
|
|
|
7932
8201
|
);
|
|
7933
8202
|
const resource = this.repository.getByKey(
|
|
7934
8203
|
getRepositoryContext(request),
|
|
7935
|
-
request.params
|
|
8204
|
+
request.params.key
|
|
7936
8205
|
);
|
|
7937
8206
|
if (!resource) {
|
|
7938
|
-
|
|
8207
|
+
response.status(404).send("Not found");
|
|
8208
|
+
return;
|
|
7939
8209
|
}
|
|
7940
8210
|
const updatedResource = this.repository.processUpdateActions(
|
|
7941
8211
|
getRepositoryContext(request),
|
|
@@ -7944,7 +8214,7 @@ var AbstractService = class {
|
|
|
7944
8214
|
updateRequest.actions
|
|
7945
8215
|
);
|
|
7946
8216
|
const result = this._expandWithId(request, updatedResource.id);
|
|
7947
|
-
|
|
8217
|
+
response.status(200).send(result);
|
|
7948
8218
|
}
|
|
7949
8219
|
_expandWithId(request, resourceId) {
|
|
7950
8220
|
const result = this.repository.get(
|
|
@@ -8081,7 +8351,8 @@ var CartService = class extends AbstractService {
|
|
|
8081
8351
|
const context = getRepositoryContext(request);
|
|
8082
8352
|
const cartOrOrder = request.body.reference.typeId === "order" ? this.orderRepository.get(context, request.body.reference.id) : this.repository.get(context, request.body.reference.id);
|
|
8083
8353
|
if (!cartOrOrder) {
|
|
8084
|
-
|
|
8354
|
+
response.status(400).send();
|
|
8355
|
+
return;
|
|
8085
8356
|
}
|
|
8086
8357
|
const cartDraft = {
|
|
8087
8358
|
...cartOrOrder,
|
|
@@ -8096,7 +8367,7 @@ var CartService = class extends AbstractService {
|
|
|
8096
8367
|
}))
|
|
8097
8368
|
};
|
|
8098
8369
|
const newCart = this.repository.create(context, cartDraft);
|
|
8099
|
-
|
|
8370
|
+
response.status(200).send(newCart);
|
|
8100
8371
|
}
|
|
8101
8372
|
};
|
|
8102
8373
|
|
|
@@ -8168,7 +8439,7 @@ var CustomObjectService = class extends AbstractService {
|
|
|
8168
8439
|
offset: offset !== void 0 ? Number(offset) : void 0
|
|
8169
8440
|
}
|
|
8170
8441
|
);
|
|
8171
|
-
|
|
8442
|
+
response.status(200).send(result);
|
|
8172
8443
|
}
|
|
8173
8444
|
getWithContainerAndKey(request, response) {
|
|
8174
8445
|
const result = this.repository.getWithContainerAndKey(
|
|
@@ -8177,9 +8448,10 @@ var CustomObjectService = class extends AbstractService {
|
|
|
8177
8448
|
request.params.key
|
|
8178
8449
|
);
|
|
8179
8450
|
if (!result) {
|
|
8180
|
-
|
|
8451
|
+
response.status(404).send("Not Found");
|
|
8452
|
+
return;
|
|
8181
8453
|
}
|
|
8182
|
-
|
|
8454
|
+
response.status(200).send(result);
|
|
8183
8455
|
}
|
|
8184
8456
|
createWithContainerAndKey(request, response) {
|
|
8185
8457
|
const draft = {
|
|
@@ -8188,7 +8460,7 @@ var CustomObjectService = class extends AbstractService {
|
|
|
8188
8460
|
container: request.params.container
|
|
8189
8461
|
};
|
|
8190
8462
|
const result = this.repository.create(getRepositoryContext(request), draft);
|
|
8191
|
-
|
|
8463
|
+
response.status(200).send(result);
|
|
8192
8464
|
}
|
|
8193
8465
|
deleteWithContainerAndKey(request, response) {
|
|
8194
8466
|
const current = this.repository.getWithContainerAndKey(
|
|
@@ -8197,13 +8469,14 @@ var CustomObjectService = class extends AbstractService {
|
|
|
8197
8469
|
request.params.key
|
|
8198
8470
|
);
|
|
8199
8471
|
if (!current) {
|
|
8200
|
-
|
|
8472
|
+
response.status(404).send("Not Found");
|
|
8473
|
+
return;
|
|
8201
8474
|
}
|
|
8202
8475
|
const result = this.repository.delete(
|
|
8203
8476
|
getRepositoryContext(request),
|
|
8204
8477
|
current.id
|
|
8205
8478
|
);
|
|
8206
|
-
|
|
8479
|
+
response.status(200).send(result);
|
|
8207
8480
|
}
|
|
8208
8481
|
};
|
|
8209
8482
|
|
|
@@ -8232,21 +8505,21 @@ var CustomerService = class extends AbstractService {
|
|
|
8232
8505
|
const result = {
|
|
8233
8506
|
customer: expanded
|
|
8234
8507
|
};
|
|
8235
|
-
|
|
8508
|
+
response.status(this.createStatusCode).send(result);
|
|
8236
8509
|
}
|
|
8237
8510
|
passwordResetToken(request, response) {
|
|
8238
8511
|
const customer = this.repository.passwordResetToken(
|
|
8239
8512
|
getRepositoryContext(request),
|
|
8240
8513
|
request.body
|
|
8241
8514
|
);
|
|
8242
|
-
|
|
8515
|
+
response.status(200).send(customer);
|
|
8243
8516
|
}
|
|
8244
8517
|
passwordReset(request, response) {
|
|
8245
8518
|
const customer = this.repository.passwordReset(
|
|
8246
8519
|
getRepositoryContext(request),
|
|
8247
8520
|
request.body
|
|
8248
8521
|
);
|
|
8249
|
-
|
|
8522
|
+
response.status(200).send(customer);
|
|
8250
8523
|
}
|
|
8251
8524
|
confirmEmailToken(request, response) {
|
|
8252
8525
|
const id = request.body.id;
|
|
@@ -8254,7 +8527,7 @@ var CustomerService = class extends AbstractService {
|
|
|
8254
8527
|
getRepositoryContext(request),
|
|
8255
8528
|
id
|
|
8256
8529
|
);
|
|
8257
|
-
|
|
8530
|
+
response.status(200).send(token);
|
|
8258
8531
|
}
|
|
8259
8532
|
};
|
|
8260
8533
|
|
|
@@ -8352,9 +8625,10 @@ var MyCartService = class extends AbstractService {
|
|
|
8352
8625
|
activeCart(request, response) {
|
|
8353
8626
|
const resource = this.repository.getActiveCart(request.params.projectKey);
|
|
8354
8627
|
if (!resource) {
|
|
8355
|
-
|
|
8628
|
+
response.status(404).send("Not found");
|
|
8629
|
+
return;
|
|
8356
8630
|
}
|
|
8357
|
-
|
|
8631
|
+
response.status(200).send(resource);
|
|
8358
8632
|
}
|
|
8359
8633
|
};
|
|
8360
8634
|
|
|
@@ -8386,14 +8660,16 @@ var MyCustomerService = class extends AbstractService {
|
|
|
8386
8660
|
getMe(request, response) {
|
|
8387
8661
|
const resource = this.repository.getMe(getRepositoryContext(request));
|
|
8388
8662
|
if (!resource) {
|
|
8389
|
-
|
|
8663
|
+
response.status(404).send("Not found");
|
|
8664
|
+
return;
|
|
8390
8665
|
}
|
|
8391
|
-
|
|
8666
|
+
response.status(200).send(resource);
|
|
8392
8667
|
}
|
|
8393
8668
|
updateMe(request, response) {
|
|
8394
8669
|
const resource = this.repository.getMe(getRepositoryContext(request));
|
|
8395
8670
|
if (!resource) {
|
|
8396
|
-
|
|
8671
|
+
response.status(404).send("Not found");
|
|
8672
|
+
return;
|
|
8397
8673
|
}
|
|
8398
8674
|
const updateRequest = validateData(
|
|
8399
8675
|
request.body,
|
|
@@ -8406,14 +8682,15 @@ var MyCustomerService = class extends AbstractService {
|
|
|
8406
8682
|
updateRequest.actions
|
|
8407
8683
|
);
|
|
8408
8684
|
const result = this._expandWithId(request, updatedResource.id);
|
|
8409
|
-
|
|
8685
|
+
response.status(200).send(result);
|
|
8410
8686
|
}
|
|
8411
8687
|
deleteMe(request, response) {
|
|
8412
8688
|
const resource = this.repository.deleteMe(getRepositoryContext(request));
|
|
8413
8689
|
if (!resource) {
|
|
8414
|
-
|
|
8690
|
+
response.status(404).send("Not found");
|
|
8691
|
+
return;
|
|
8415
8692
|
}
|
|
8416
|
-
|
|
8693
|
+
response.status(200).send(resource);
|
|
8417
8694
|
}
|
|
8418
8695
|
signUp(request, response) {
|
|
8419
8696
|
const draft = request.body;
|
|
@@ -8422,28 +8699,28 @@ var MyCustomerService = class extends AbstractService {
|
|
|
8422
8699
|
draft
|
|
8423
8700
|
);
|
|
8424
8701
|
const result = this._expandWithId(request, resource.id);
|
|
8425
|
-
|
|
8702
|
+
response.status(this.createStatusCode).send({ customer: result });
|
|
8426
8703
|
}
|
|
8427
8704
|
changePassword(request, response) {
|
|
8428
8705
|
const customer = this.repository.changePassword(
|
|
8429
8706
|
getRepositoryContext(request),
|
|
8430
8707
|
request.body
|
|
8431
8708
|
);
|
|
8432
|
-
|
|
8709
|
+
response.status(200).send(customer);
|
|
8433
8710
|
}
|
|
8434
8711
|
resetPassword(request, response) {
|
|
8435
8712
|
const customer = this.repository.passwordReset(
|
|
8436
8713
|
getRepositoryContext(request),
|
|
8437
8714
|
request.body
|
|
8438
8715
|
);
|
|
8439
|
-
|
|
8716
|
+
response.status(200).send(customer);
|
|
8440
8717
|
}
|
|
8441
8718
|
emailConfirm(request, response) {
|
|
8442
8719
|
const customer = this.repository.confirmEmail(
|
|
8443
8720
|
getRepositoryContext(request),
|
|
8444
8721
|
request.body
|
|
8445
8722
|
);
|
|
8446
|
-
|
|
8723
|
+
response.status(200).send(customer);
|
|
8447
8724
|
}
|
|
8448
8725
|
signIn(request, response) {
|
|
8449
8726
|
const { email, password } = request.body;
|
|
@@ -8452,7 +8729,7 @@ var MyCustomerService = class extends AbstractService {
|
|
|
8452
8729
|
where: [`email = "${email}"`, `password = "${encodedPassword}"`]
|
|
8453
8730
|
});
|
|
8454
8731
|
if (result.count === 0) {
|
|
8455
|
-
|
|
8732
|
+
response.status(400).send({
|
|
8456
8733
|
message: "Account with the given credentials not found.",
|
|
8457
8734
|
errors: [
|
|
8458
8735
|
{
|
|
@@ -8461,8 +8738,9 @@ var MyCustomerService = class extends AbstractService {
|
|
|
8461
8738
|
}
|
|
8462
8739
|
]
|
|
8463
8740
|
});
|
|
8741
|
+
return;
|
|
8464
8742
|
}
|
|
8465
|
-
|
|
8743
|
+
response.status(200).send({ customer: result.results[0] });
|
|
8466
8744
|
}
|
|
8467
8745
|
};
|
|
8468
8746
|
|
|
@@ -8537,7 +8815,7 @@ var OrderService = class extends AbstractService {
|
|
|
8537
8815
|
getRepositoryContext(request),
|
|
8538
8816
|
importDraft
|
|
8539
8817
|
);
|
|
8540
|
-
|
|
8818
|
+
response.status(200).send(resource);
|
|
8541
8819
|
}
|
|
8542
8820
|
getWithOrderNumber(request, response) {
|
|
8543
8821
|
const resource = this.repository.getWithOrderNumber(
|
|
@@ -8547,9 +8825,10 @@ var OrderService = class extends AbstractService {
|
|
|
8547
8825
|
request.query
|
|
8548
8826
|
);
|
|
8549
8827
|
if (resource) {
|
|
8550
|
-
|
|
8828
|
+
response.status(200).send(resource);
|
|
8829
|
+
return;
|
|
8551
8830
|
}
|
|
8552
|
-
|
|
8831
|
+
response.status(404).send("Not found");
|
|
8553
8832
|
}
|
|
8554
8833
|
};
|
|
8555
8834
|
|
|
@@ -8584,7 +8863,7 @@ var ProductService = class extends AbstractService {
|
|
|
8584
8863
|
getRepositoryContext(request),
|
|
8585
8864
|
searchBody
|
|
8586
8865
|
);
|
|
8587
|
-
|
|
8866
|
+
response.status(200).send(resource);
|
|
8588
8867
|
}
|
|
8589
8868
|
};
|
|
8590
8869
|
|
|
@@ -8623,30 +8902,30 @@ var ProductProjectionService = class extends AbstractService {
|
|
|
8623
8902
|
limit: limit !== void 0 ? Number(limit) : void 0,
|
|
8624
8903
|
offset: offset !== void 0 ? Number(offset) : void 0
|
|
8625
8904
|
});
|
|
8626
|
-
|
|
8905
|
+
response.status(200).send(result);
|
|
8627
8906
|
}
|
|
8628
8907
|
search(request, response) {
|
|
8629
8908
|
const query = request.query;
|
|
8630
8909
|
const searchParams = {
|
|
8631
|
-
|
|
8910
|
+
filter: queryParamsArray(query.filter),
|
|
8632
8911
|
"filter.query": queryParamsArray(query["filter.query"]),
|
|
8633
|
-
|
|
8634
|
-
|
|
8635
|
-
|
|
8636
|
-
|
|
8637
|
-
|
|
8638
|
-
|
|
8639
|
-
|
|
8640
|
-
|
|
8641
|
-
|
|
8642
|
-
|
|
8643
|
-
|
|
8912
|
+
facet: queryParamsArray(query.facet),
|
|
8913
|
+
expand: queryParamsArray(query.expand),
|
|
8914
|
+
staged: queryParamsValue(query.staged) === "true",
|
|
8915
|
+
localeProjection: queryParamsValue(query.localeProjection),
|
|
8916
|
+
storeProjection: queryParamsValue(query.storeProjection),
|
|
8917
|
+
priceChannel: queryParamsValue(query.priceChannel),
|
|
8918
|
+
priceCountry: queryParamsValue(query.priceCountry),
|
|
8919
|
+
priceCurrency: queryParamsValue(query.priceCurrency),
|
|
8920
|
+
priceCustomerGroup: queryParamsValue(query.priceCustomerGroup),
|
|
8921
|
+
offset: query.offset ? Number(queryParamsValue(query.offset)) : void 0,
|
|
8922
|
+
limit: query.limit ? Number(queryParamsValue(query.limit)) : void 0
|
|
8644
8923
|
};
|
|
8645
8924
|
const resource = this.repository.search(
|
|
8646
8925
|
getRepositoryContext(request),
|
|
8647
8926
|
searchParams
|
|
8648
8927
|
);
|
|
8649
|
-
|
|
8928
|
+
response.status(200).send(resource);
|
|
8650
8929
|
}
|
|
8651
8930
|
};
|
|
8652
8931
|
|
|
@@ -8674,6 +8953,42 @@ var ProductTypeService = class extends AbstractService {
|
|
|
8674
8953
|
}
|
|
8675
8954
|
};
|
|
8676
8955
|
|
|
8956
|
+
// src/services/quote.ts
|
|
8957
|
+
var QuoteService = class extends AbstractService {
|
|
8958
|
+
repository;
|
|
8959
|
+
constructor(parent, repository) {
|
|
8960
|
+
super(parent);
|
|
8961
|
+
this.repository = repository;
|
|
8962
|
+
}
|
|
8963
|
+
getBasePath() {
|
|
8964
|
+
return "quotes";
|
|
8965
|
+
}
|
|
8966
|
+
};
|
|
8967
|
+
|
|
8968
|
+
// src/services/quote-request.ts
|
|
8969
|
+
var QuoteRequestService = class extends AbstractService {
|
|
8970
|
+
repository;
|
|
8971
|
+
constructor(parent, repository) {
|
|
8972
|
+
super(parent);
|
|
8973
|
+
this.repository = repository;
|
|
8974
|
+
}
|
|
8975
|
+
getBasePath() {
|
|
8976
|
+
return "quote-requests";
|
|
8977
|
+
}
|
|
8978
|
+
};
|
|
8979
|
+
|
|
8980
|
+
// src/services/quote-staged.ts
|
|
8981
|
+
var StagedQuoteService = class extends AbstractService {
|
|
8982
|
+
repository;
|
|
8983
|
+
constructor(parent, repository) {
|
|
8984
|
+
super(parent);
|
|
8985
|
+
this.repository = repository;
|
|
8986
|
+
}
|
|
8987
|
+
getBasePath() {
|
|
8988
|
+
return "staged-quotes";
|
|
8989
|
+
}
|
|
8990
|
+
};
|
|
8991
|
+
|
|
8677
8992
|
// src/services/reviews.ts
|
|
8678
8993
|
var ReviewService = class extends AbstractService {
|
|
8679
8994
|
repository;
|
|
@@ -8703,7 +9018,8 @@ var ShippingMethodService = class extends AbstractService {
|
|
|
8703
9018
|
matchingCart(request, response) {
|
|
8704
9019
|
const cartId = queryParamsValue(request.query.cartId);
|
|
8705
9020
|
if (!cartId) {
|
|
8706
|
-
|
|
9021
|
+
response.status(400).send();
|
|
9022
|
+
return;
|
|
8707
9023
|
}
|
|
8708
9024
|
const result = this.repository.matchingCart(
|
|
8709
9025
|
getRepositoryContext(request),
|
|
@@ -8712,7 +9028,8 @@ var ShippingMethodService = class extends AbstractService {
|
|
|
8712
9028
|
expand: this._parseParam(request.query.expand)
|
|
8713
9029
|
}
|
|
8714
9030
|
);
|
|
8715
|
-
|
|
9031
|
+
response.status(200).send(result);
|
|
9032
|
+
return;
|
|
8716
9033
|
}
|
|
8717
9034
|
};
|
|
8718
9035
|
|
|
@@ -8817,14 +9134,14 @@ var createServices = (router, repos) => ({
|
|
|
8817
9134
|
"associate-role": new AssociateRoleServices(router, repos["associate-role"]),
|
|
8818
9135
|
"as-associate": new AsAssociateService(router, repos["as-associate"]),
|
|
8819
9136
|
"business-unit": new BusinessUnitServices(router, repos["business-unit"]),
|
|
8820
|
-
|
|
8821
|
-
|
|
9137
|
+
category: new CategoryServices(router, repos.category),
|
|
9138
|
+
cart: new CartService(router, repos.cart, repos.order),
|
|
8822
9139
|
"cart-discount": new CartDiscountService(router, repos["cart-discount"]),
|
|
8823
|
-
|
|
8824
|
-
|
|
9140
|
+
customer: new CustomerService(router, repos.customer),
|
|
9141
|
+
channel: new ChannelService(router, repos.channel),
|
|
8825
9142
|
"customer-group": new CustomerGroupService(router, repos["customer-group"]),
|
|
8826
9143
|
"discount-code": new DiscountCodeService(router, repos["discount-code"]),
|
|
8827
|
-
|
|
9144
|
+
extension: new ExtensionServices(router, repos.extension),
|
|
8828
9145
|
"inventory-entry": new InventoryEntryService(
|
|
8829
9146
|
router,
|
|
8830
9147
|
repos["inventory-entry"]
|
|
@@ -8833,8 +9150,8 @@ var createServices = (router, repos) => ({
|
|
|
8833
9150
|
router,
|
|
8834
9151
|
repos["key-value-document"]
|
|
8835
9152
|
),
|
|
8836
|
-
|
|
8837
|
-
|
|
9153
|
+
order: new OrderService(router, repos.order),
|
|
9154
|
+
payment: new PaymentService(router, repos.payment),
|
|
8838
9155
|
"standalone-price": new StandAlonePriceService(
|
|
8839
9156
|
router,
|
|
8840
9157
|
repos["standalone-price"]
|
|
@@ -8853,7 +9170,7 @@ var createServices = (router, repos) => ({
|
|
|
8853
9170
|
repos["shipping-method"]
|
|
8854
9171
|
),
|
|
8855
9172
|
"product-type": new ProductTypeService(router, repos["product-type"]),
|
|
8856
|
-
|
|
9173
|
+
product: new ProductService(router, repos.product),
|
|
8857
9174
|
"product-discount": new ProductDiscountService(
|
|
8858
9175
|
router,
|
|
8859
9176
|
repos["product-discount"]
|
|
@@ -8866,18 +9183,21 @@ var createServices = (router, repos) => ({
|
|
|
8866
9183
|
router,
|
|
8867
9184
|
repos["product-selection"]
|
|
8868
9185
|
),
|
|
8869
|
-
|
|
9186
|
+
quotes: new QuoteService(router, repos.quote),
|
|
9187
|
+
"quote-request": new QuoteRequestService(router, repos["quote-request"]),
|
|
9188
|
+
reviews: new ReviewService(router, repos.review),
|
|
8870
9189
|
"shopping-list": new ShoppingListService(router, repos["shopping-list"]),
|
|
8871
|
-
"
|
|
8872
|
-
|
|
8873
|
-
|
|
9190
|
+
"staged-quote": new StagedQuoteService(router, repos["staged-quote"]),
|
|
9191
|
+
state: new StateService(router, repos.state),
|
|
9192
|
+
store: new StoreService(router, repos.store),
|
|
9193
|
+
subscription: new SubscriptionService(router, repos.subscription),
|
|
8874
9194
|
"tax-category": new TaxCategoryService(router, repos["tax-category"]),
|
|
8875
9195
|
"attribute-group": new AttributeGroupService(
|
|
8876
9196
|
router,
|
|
8877
9197
|
repos["attribute-group"]
|
|
8878
9198
|
),
|
|
8879
|
-
|
|
8880
|
-
|
|
9199
|
+
type: new TypeService(router, repos.type),
|
|
9200
|
+
zone: new ZoneService(router, repos.zone)
|
|
8881
9201
|
});
|
|
8882
9202
|
|
|
8883
9203
|
// src/services/project.ts
|
|
@@ -8893,7 +9213,7 @@ var ProjectService = class {
|
|
|
8893
9213
|
}
|
|
8894
9214
|
get(request, response) {
|
|
8895
9215
|
const project = this.repository.get(getRepositoryContext(request));
|
|
8896
|
-
|
|
9216
|
+
response.status(200).send(project);
|
|
8897
9217
|
}
|
|
8898
9218
|
post(request, response) {
|
|
8899
9219
|
const updateRequest = validateData(
|
|
@@ -8902,7 +9222,8 @@ var ProjectService = class {
|
|
|
8902
9222
|
);
|
|
8903
9223
|
const project = this.repository.get(getRepositoryContext(request));
|
|
8904
9224
|
if (!project) {
|
|
8905
|
-
|
|
9225
|
+
response.status(404).send({});
|
|
9226
|
+
return;
|
|
8906
9227
|
}
|
|
8907
9228
|
const updatedResource = this.repository.processUpdateActions(
|
|
8908
9229
|
getRepositoryContext(request),
|
|
@@ -8910,7 +9231,7 @@ var ProjectService = class {
|
|
|
8910
9231
|
updateRequest.version,
|
|
8911
9232
|
updateRequest.actions
|
|
8912
9233
|
);
|
|
8913
|
-
|
|
9234
|
+
response.status(200).send(updatedResource);
|
|
8914
9235
|
}
|
|
8915
9236
|
};
|
|
8916
9237
|
|
|
@@ -8919,7 +9240,7 @@ var AbstractStorage = class {
|
|
|
8919
9240
|
};
|
|
8920
9241
|
|
|
8921
9242
|
// src/storage/in-memory.ts
|
|
8922
|
-
import
|
|
9243
|
+
import assert5 from "node:assert";
|
|
8923
9244
|
var InMemoryStorage = class extends AbstractStorage {
|
|
8924
9245
|
resources = {};
|
|
8925
9246
|
projects = {};
|
|
@@ -9015,38 +9336,38 @@ var InMemoryStorage = class extends AbstractStorage {
|
|
|
9015
9336
|
"associate-role": /* @__PURE__ */ new Map(),
|
|
9016
9337
|
"attribute-group": /* @__PURE__ */ new Map(),
|
|
9017
9338
|
"business-unit": /* @__PURE__ */ new Map(),
|
|
9018
|
-
|
|
9339
|
+
cart: /* @__PURE__ */ new Map(),
|
|
9019
9340
|
"cart-discount": /* @__PURE__ */ new Map(),
|
|
9020
|
-
|
|
9021
|
-
|
|
9022
|
-
|
|
9341
|
+
category: /* @__PURE__ */ new Map(),
|
|
9342
|
+
channel: /* @__PURE__ */ new Map(),
|
|
9343
|
+
customer: /* @__PURE__ */ new Map(),
|
|
9023
9344
|
"customer-group": /* @__PURE__ */ new Map(),
|
|
9024
9345
|
"discount-code": /* @__PURE__ */ new Map(),
|
|
9025
|
-
|
|
9346
|
+
extension: /* @__PURE__ */ new Map(),
|
|
9026
9347
|
"inventory-entry": /* @__PURE__ */ new Map(),
|
|
9027
9348
|
"key-value-document": /* @__PURE__ */ new Map(),
|
|
9028
|
-
|
|
9349
|
+
order: /* @__PURE__ */ new Map(),
|
|
9029
9350
|
"order-edit": /* @__PURE__ */ new Map(),
|
|
9030
|
-
|
|
9031
|
-
|
|
9032
|
-
|
|
9351
|
+
payment: /* @__PURE__ */ new Map(),
|
|
9352
|
+
product: /* @__PURE__ */ new Map(),
|
|
9353
|
+
quote: /* @__PURE__ */ new Map(),
|
|
9033
9354
|
"quote-request": /* @__PURE__ */ new Map(),
|
|
9034
9355
|
"product-discount": /* @__PURE__ */ new Map(),
|
|
9035
9356
|
"product-selection": /* @__PURE__ */ new Map(),
|
|
9036
9357
|
"product-type": /* @__PURE__ */ new Map(),
|
|
9037
9358
|
"product-projection": /* @__PURE__ */ new Map(),
|
|
9038
9359
|
"product-tailoring": /* @__PURE__ */ new Map(),
|
|
9039
|
-
|
|
9360
|
+
review: /* @__PURE__ */ new Map(),
|
|
9040
9361
|
"shipping-method": /* @__PURE__ */ new Map(),
|
|
9041
9362
|
"staged-quote": /* @__PURE__ */ new Map(),
|
|
9042
|
-
|
|
9043
|
-
|
|
9363
|
+
state: /* @__PURE__ */ new Map(),
|
|
9364
|
+
store: /* @__PURE__ */ new Map(),
|
|
9044
9365
|
"shopping-list": /* @__PURE__ */ new Map(),
|
|
9045
9366
|
"standalone-price": /* @__PURE__ */ new Map(),
|
|
9046
|
-
|
|
9367
|
+
subscription: /* @__PURE__ */ new Map(),
|
|
9047
9368
|
"tax-category": /* @__PURE__ */ new Map(),
|
|
9048
|
-
|
|
9049
|
-
|
|
9369
|
+
type: /* @__PURE__ */ new Map(),
|
|
9370
|
+
zone: /* @__PURE__ */ new Map()
|
|
9050
9371
|
};
|
|
9051
9372
|
}
|
|
9052
9373
|
return projectStorage;
|
|
@@ -9069,7 +9390,7 @@ var InMemoryStorage = class extends AbstractStorage {
|
|
|
9069
9390
|
const store = this.forProjectKey(projectKey);
|
|
9070
9391
|
store[typeId]?.set(obj.id, obj);
|
|
9071
9392
|
const resource = this.get(projectKey, typeId, obj.id, params);
|
|
9072
|
-
|
|
9393
|
+
assert5(
|
|
9073
9394
|
resource,
|
|
9074
9395
|
`resource of type ${typeId} with id ${obj.id} not created`
|
|
9075
9396
|
);
|
|
@@ -9356,23 +9677,25 @@ var CommercetoolsMock = class {
|
|
|
9356
9677
|
app.use((err, req, resp, next) => {
|
|
9357
9678
|
if (err instanceof CommercetoolsError) {
|
|
9358
9679
|
if (err.errors?.length > 0) {
|
|
9359
|
-
|
|
9680
|
+
resp.status(err.statusCode).send({
|
|
9360
9681
|
statusCode: err.statusCode,
|
|
9361
9682
|
message: err.message,
|
|
9362
9683
|
errors: err.errors
|
|
9363
9684
|
});
|
|
9685
|
+
return;
|
|
9364
9686
|
}
|
|
9365
|
-
|
|
9687
|
+
resp.status(err.statusCode).send({
|
|
9366
9688
|
statusCode: err.statusCode,
|
|
9367
9689
|
message: err.message,
|
|
9368
9690
|
errors: [err.info]
|
|
9369
9691
|
});
|
|
9370
|
-
|
|
9371
|
-
console.error(err);
|
|
9372
|
-
return resp.status(500).send({
|
|
9373
|
-
error: err.message
|
|
9374
|
-
});
|
|
9692
|
+
return;
|
|
9375
9693
|
}
|
|
9694
|
+
console.error(err);
|
|
9695
|
+
resp.status(500).send({
|
|
9696
|
+
error: err.message
|
|
9697
|
+
});
|
|
9698
|
+
return;
|
|
9376
9699
|
});
|
|
9377
9700
|
return app;
|
|
9378
9701
|
}
|
|
@@ -9390,7 +9713,7 @@ var CommercetoolsMock = class {
|
|
|
9390
9713
|
const body = await request.text();
|
|
9391
9714
|
const url = new URL(request.url);
|
|
9392
9715
|
const headers = copyHeaders(request.headers);
|
|
9393
|
-
const res = await inject(app).post(url.pathname
|
|
9716
|
+
const res = await inject(app).post(`${url.pathname}?${url.searchParams.toString()}`).body(body).headers(headers).end();
|
|
9394
9717
|
return new HttpResponse(res.body, {
|
|
9395
9718
|
status: res.statusCode,
|
|
9396
9719
|
headers: mapHeaderType(res.headers)
|
|
@@ -9400,7 +9723,7 @@ var CommercetoolsMock = class {
|
|
|
9400
9723
|
const body = await request.text();
|
|
9401
9724
|
const url = new URL(request.url);
|
|
9402
9725
|
const headers = copyHeaders(request.headers);
|
|
9403
|
-
const res = await inject(app).get(url.pathname
|
|
9726
|
+
const res = await inject(app).get(`${url.pathname}?${url.searchParams.toString()}`).body(body).headers(headers).end();
|
|
9404
9727
|
if (res.statusCode === 200) {
|
|
9405
9728
|
const parsedBody = JSON.parse(res.body);
|
|
9406
9729
|
const resultCount = "count" in parsedBody ? parsedBody.count : Object.keys(parsedBody).length;
|
|
@@ -9418,7 +9741,7 @@ var CommercetoolsMock = class {
|
|
|
9418
9741
|
const body = await request.text();
|
|
9419
9742
|
const url = new URL(request.url);
|
|
9420
9743
|
const headers = copyHeaders(request.headers);
|
|
9421
|
-
const res = await inject(app).get(url.pathname
|
|
9744
|
+
const res = await inject(app).get(`${url.pathname}?${url.searchParams.toString()}`).body(body).headers(headers).end();
|
|
9422
9745
|
return new HttpResponse(res.body, {
|
|
9423
9746
|
status: res.statusCode,
|
|
9424
9747
|
headers: mapHeaderType(res.headers)
|
|
@@ -9428,7 +9751,7 @@ var CommercetoolsMock = class {
|
|
|
9428
9751
|
const body = await request.text();
|
|
9429
9752
|
const url = new URL(request.url);
|
|
9430
9753
|
const headers = copyHeaders(request.headers);
|
|
9431
|
-
const res = await inject(app).post(url.pathname
|
|
9754
|
+
const res = await inject(app).post(`${url.pathname}?${url.searchParams.toString()}`).body(body).headers(headers).end();
|
|
9432
9755
|
return new HttpResponse(res.body, {
|
|
9433
9756
|
status: res.statusCode,
|
|
9434
9757
|
headers: mapHeaderType(res.headers)
|
|
@@ -9438,7 +9761,7 @@ var CommercetoolsMock = class {
|
|
|
9438
9761
|
const body = await request.text();
|
|
9439
9762
|
const url = new URL(request.url);
|
|
9440
9763
|
const headers = copyHeaders(request.headers);
|
|
9441
|
-
const res = await inject(app).delete(url.pathname
|
|
9764
|
+
const res = await inject(app).delete(`${url.pathname}?${url.searchParams.toString()}`).body(body).headers(headers).end();
|
|
9442
9765
|
return new HttpResponse(res.body, {
|
|
9443
9766
|
status: res.statusCode,
|
|
9444
9767
|
headers: mapHeaderType(res.headers)
|
|
@@ -9453,10 +9776,9 @@ var CommercetoolsMock = class {
|
|
|
9453
9776
|
if (_globalListeners.length > 0) {
|
|
9454
9777
|
if (this._mswServer !== void 0) {
|
|
9455
9778
|
throw new Error("Server already started");
|
|
9456
|
-
} else {
|
|
9457
|
-
process.emitWarning("Server wasn't stopped properly, clearing");
|
|
9458
|
-
_globalListeners.forEach((listener) => listener.close());
|
|
9459
9779
|
}
|
|
9780
|
+
process.emitWarning("Server wasn't stopped properly, clearing");
|
|
9781
|
+
_globalListeners.forEach((listener) => listener.close());
|
|
9460
9782
|
}
|
|
9461
9783
|
const server = setupServer();
|
|
9462
9784
|
this.registerHandlers(server);
|