@labdigital/commercetools-mock 0.10.0 → 0.10.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.d.ts +353 -188
- package/dist/index.global.js +930 -874
- package/dist/index.global.js.map +1 -1
- package/dist/index.js +271 -215
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +271 -215
- package/dist/index.mjs.map +1 -1
- package/package.json +3 -2
- package/src/ctMock.ts +15 -9
- package/src/helpers.ts +1 -1
- package/src/lib/projectionSearchFilter.ts +3 -2
- package/src/priceSelector.test.ts +1 -3
- package/src/product-projection-search.ts +1 -3
- package/src/projectAPI.test.ts +7 -0
- package/src/projectAPI.ts +17 -22
- package/src/repositories/abstract.ts +31 -24
- package/src/repositories/cart-discount.ts +3 -4
- package/src/repositories/cart.ts +20 -15
- package/src/repositories/category.ts +6 -7
- package/src/repositories/channel.ts +4 -5
- package/src/repositories/custom-object.ts +9 -13
- package/src/repositories/customer-group.ts +3 -4
- package/src/repositories/customer.ts +4 -5
- package/src/repositories/discount-code.ts +4 -5
- package/src/repositories/errors.ts +1 -3
- package/src/repositories/extension.ts +7 -8
- package/src/repositories/helpers.ts +2 -2
- package/src/repositories/index.ts +19 -3
- package/src/repositories/inventory-entry.ts +4 -5
- package/src/repositories/my-order.ts +2 -2
- package/src/repositories/order-edit.ts +39 -0
- package/src/repositories/order.test.ts +16 -11
- package/src/repositories/order.ts +15 -8
- package/src/repositories/payment.ts +6 -7
- package/src/repositories/product-discount.ts +4 -24
- package/src/repositories/product-projection.ts +11 -5
- package/src/repositories/product-selection.ts +40 -0
- package/src/repositories/product-type.ts +11 -28
- package/src/repositories/product.ts +7 -8
- package/src/repositories/project.ts +8 -8
- package/src/repositories/quote-request.ts +28 -0
- package/src/repositories/quote.ts +28 -0
- package/src/repositories/review.ts +34 -0
- package/src/repositories/shipping-method.ts +10 -11
- package/src/repositories/shopping-list.ts +4 -4
- package/src/repositories/staged-quote.ts +29 -0
- package/src/repositories/standalone-price.ts +36 -0
- package/src/repositories/state.ts +7 -8
- package/src/repositories/store.ts +11 -27
- package/src/repositories/subscription.ts +3 -4
- package/src/repositories/tax-category.ts +5 -22
- package/src/repositories/type.ts +12 -13
- package/src/repositories/zone.ts +4 -5
- package/src/server.ts +4 -4
- package/src/services/abstract.ts +3 -5
- package/src/services/cart-discount.ts +1 -1
- package/src/services/cart.test.ts +1 -1
- package/src/services/cart.ts +40 -33
- package/src/services/category.ts +1 -1
- package/src/services/channel.ts +1 -1
- package/src/services/custom-object.test.ts +1 -1
- package/src/services/custom-object.ts +2 -2
- package/src/services/customer-group.ts +1 -1
- package/src/services/customer.test.ts +1 -1
- package/src/services/customer.ts +3 -3
- package/src/services/discount-code.ts +1 -1
- package/src/services/extension.ts +1 -1
- package/src/services/inventory-entry.test.ts +1 -1
- package/src/services/inventory-entry.ts +1 -1
- package/src/services/my-cart.test.ts +2 -0
- package/src/services/my-cart.ts +1 -1
- package/src/services/my-customer.ts +1 -1
- package/src/services/my-order.ts +1 -1
- package/src/services/my-payment.ts +1 -1
- package/src/services/order.test.ts +24 -20
- package/src/services/order.ts +2 -2
- package/src/services/payment.ts +1 -1
- package/src/services/product-discount.ts +1 -17
- package/src/services/product-projection.test.ts +1 -1
- package/src/services/product-projection.ts +2 -2
- package/src/services/product-type.ts +1 -17
- package/src/services/product.test.ts +1 -1
- package/src/services/product.ts +1 -1
- package/src/services/project.ts +2 -3
- package/src/services/shipping-method.ts +1 -1
- package/src/services/shopping-list.ts +1 -1
- package/src/services/state.ts +1 -1
- package/src/services/store.ts +2 -18
- package/src/services/subscription.ts +1 -1
- package/src/services/tax-category.ts +1 -17
- package/src/services/type.ts +1 -1
- package/src/services/zone.ts +1 -1
- package/src/storage/abstract.ts +82 -0
- package/src/{storage.ts → storage/in-memory.ts} +57 -118
- package/src/storage/index.ts +2 -0
- package/src/types.ts +48 -119
package/dist/index.js
CHANGED
|
@@ -37,9 +37,56 @@ var import_express6 = __toESM(require("express"));
|
|
|
37
37
|
var import_supertest = __toESM(require("supertest"));
|
|
38
38
|
var import_morgan = __toESM(require("morgan"));
|
|
39
39
|
|
|
40
|
-
// src/storage.ts
|
|
40
|
+
// src/storage/abstract.ts
|
|
41
|
+
var AbstractStorage = class {
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
// src/storage/in-memory.ts
|
|
41
45
|
var import_assert = __toESM(require("assert"));
|
|
42
46
|
|
|
47
|
+
// src/exceptions.ts
|
|
48
|
+
var CommercetoolsError = class extends Error {
|
|
49
|
+
constructor(info, statusCode = 400) {
|
|
50
|
+
super(info.message);
|
|
51
|
+
this.info = info;
|
|
52
|
+
this.statusCode = statusCode || 500;
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
// src/helpers.ts
|
|
57
|
+
var import_uuid = require("uuid");
|
|
58
|
+
var getBaseResourceProperties = () => ({
|
|
59
|
+
id: (0, import_uuid.v4)(),
|
|
60
|
+
createdAt: new Date().toISOString(),
|
|
61
|
+
lastModifiedAt: new Date().toISOString(),
|
|
62
|
+
version: 0
|
|
63
|
+
});
|
|
64
|
+
var nestedLookup = (obj, path) => {
|
|
65
|
+
if (!path || path === "") {
|
|
66
|
+
return obj;
|
|
67
|
+
}
|
|
68
|
+
const parts = path.split(".");
|
|
69
|
+
let val = obj;
|
|
70
|
+
for (let i = 0; i < parts.length; i++) {
|
|
71
|
+
const part = parts[i];
|
|
72
|
+
if (val == void 0) {
|
|
73
|
+
return void 0;
|
|
74
|
+
}
|
|
75
|
+
val = val[part];
|
|
76
|
+
}
|
|
77
|
+
return val;
|
|
78
|
+
};
|
|
79
|
+
var QueryParamsAsArray = (input) => {
|
|
80
|
+
if (input == void 0) {
|
|
81
|
+
return [];
|
|
82
|
+
}
|
|
83
|
+
if (Array.isArray(input)) {
|
|
84
|
+
return input;
|
|
85
|
+
}
|
|
86
|
+
return [input];
|
|
87
|
+
};
|
|
88
|
+
var cloneObject = (o) => JSON.parse(JSON.stringify(o));
|
|
89
|
+
|
|
43
90
|
// src/lib/expandParser.ts
|
|
44
91
|
var parseExpandClause = (clause) => {
|
|
45
92
|
const result = {
|
|
@@ -357,52 +404,7 @@ var generateMatchFunc = (predicate) => {
|
|
|
357
404
|
return result;
|
|
358
405
|
};
|
|
359
406
|
|
|
360
|
-
// src/
|
|
361
|
-
var CommercetoolsError = class extends Error {
|
|
362
|
-
constructor(info, statusCode = 400) {
|
|
363
|
-
super(info.message);
|
|
364
|
-
this.info = info;
|
|
365
|
-
this.statusCode = statusCode || 500;
|
|
366
|
-
}
|
|
367
|
-
};
|
|
368
|
-
|
|
369
|
-
// src/helpers.ts
|
|
370
|
-
var import_uuid = require("uuid");
|
|
371
|
-
var getBaseResourceProperties = () => ({
|
|
372
|
-
id: (0, import_uuid.v4)(),
|
|
373
|
-
createdAt: new Date().toISOString(),
|
|
374
|
-
lastModifiedAt: new Date().toISOString(),
|
|
375
|
-
version: 0
|
|
376
|
-
});
|
|
377
|
-
var nestedLookup = (obj, path) => {
|
|
378
|
-
if (!path || path === "") {
|
|
379
|
-
return obj;
|
|
380
|
-
}
|
|
381
|
-
const parts = path.split(".");
|
|
382
|
-
let val = obj;
|
|
383
|
-
for (let i = 0; i < parts.length; i++) {
|
|
384
|
-
const part = parts[i];
|
|
385
|
-
if (val == void 0) {
|
|
386
|
-
return void 0;
|
|
387
|
-
}
|
|
388
|
-
val = val[part];
|
|
389
|
-
}
|
|
390
|
-
return val;
|
|
391
|
-
};
|
|
392
|
-
var QueryParamsAsArray = (input) => {
|
|
393
|
-
if (input == void 0) {
|
|
394
|
-
return [];
|
|
395
|
-
}
|
|
396
|
-
if (Array.isArray(input)) {
|
|
397
|
-
return input;
|
|
398
|
-
}
|
|
399
|
-
return [input];
|
|
400
|
-
};
|
|
401
|
-
var cloneObject = (o) => JSON.parse(JSON.stringify(o));
|
|
402
|
-
|
|
403
|
-
// src/storage.ts
|
|
404
|
-
var AbstractStorage = class {
|
|
405
|
-
};
|
|
407
|
+
// src/storage/in-memory.ts
|
|
406
408
|
var InMemoryStorage = class extends AbstractStorage {
|
|
407
409
|
constructor() {
|
|
408
410
|
super(...arguments);
|
|
@@ -498,13 +500,15 @@ var InMemoryStorage = class extends AbstractStorage {
|
|
|
498
500
|
"order-edit": /* @__PURE__ */ new Map(),
|
|
499
501
|
payment: /* @__PURE__ */ new Map(),
|
|
500
502
|
product: /* @__PURE__ */ new Map(),
|
|
503
|
+
quote: /* @__PURE__ */ new Map(),
|
|
504
|
+
"quote-request": /* @__PURE__ */ new Map(),
|
|
501
505
|
"product-discount": /* @__PURE__ */ new Map(),
|
|
502
|
-
"product-price": /* @__PURE__ */ new Map(),
|
|
503
506
|
"product-selection": /* @__PURE__ */ new Map(),
|
|
504
507
|
"product-type": /* @__PURE__ */ new Map(),
|
|
505
508
|
"product-projection": /* @__PURE__ */ new Map(),
|
|
506
509
|
review: /* @__PURE__ */ new Map(),
|
|
507
510
|
"shipping-method": /* @__PURE__ */ new Map(),
|
|
511
|
+
"staged-quote": /* @__PURE__ */ new Map(),
|
|
508
512
|
state: /* @__PURE__ */ new Map(),
|
|
509
513
|
store: /* @__PURE__ */ new Map(),
|
|
510
514
|
"shopping-list": /* @__PURE__ */ new Map(),
|
|
@@ -576,7 +580,7 @@ var InMemoryStorage = class extends AbstractStorage {
|
|
|
576
580
|
if (!store) {
|
|
577
581
|
throw new Error("No type");
|
|
578
582
|
}
|
|
579
|
-
let resources =
|
|
583
|
+
let resources = this.all(projectKey, typeId);
|
|
580
584
|
if (params.where) {
|
|
581
585
|
try {
|
|
582
586
|
const filterFunc = parseQueryExpression(params.where);
|
|
@@ -650,7 +654,7 @@ var InMemoryStorage = class extends AbstractStorage {
|
|
|
650
654
|
console.error(
|
|
651
655
|
`No resource found with typeId=${identifier.typeId}, id=${identifier.id}`
|
|
652
656
|
);
|
|
653
|
-
return
|
|
657
|
+
return null;
|
|
654
658
|
}
|
|
655
659
|
if (identifier.key) {
|
|
656
660
|
const store = this.forProjectKey(projectKey)[identifier.typeId];
|
|
@@ -667,7 +671,7 @@ var InMemoryStorage = class extends AbstractStorage {
|
|
|
667
671
|
);
|
|
668
672
|
}
|
|
669
673
|
}
|
|
670
|
-
return
|
|
674
|
+
return null;
|
|
671
675
|
}
|
|
672
676
|
_resolveReference(projectKey, reference, expand) {
|
|
673
677
|
if (reference === void 0)
|
|
@@ -834,14 +838,14 @@ var OAuth2Server = class {
|
|
|
834
838
|
|
|
835
839
|
// src/projectAPI.ts
|
|
836
840
|
var ProjectAPI = class {
|
|
837
|
-
constructor(projectKey,
|
|
841
|
+
constructor(projectKey, repositories, storage) {
|
|
838
842
|
this.projectKey = projectKey;
|
|
839
843
|
this._storage = storage;
|
|
840
|
-
this.
|
|
844
|
+
this._repositories = repositories;
|
|
841
845
|
}
|
|
842
846
|
add(typeId, resource) {
|
|
843
|
-
const
|
|
844
|
-
if (
|
|
847
|
+
const repository = this._repositories[typeId];
|
|
848
|
+
if (repository) {
|
|
845
849
|
this._storage.add(this.projectKey, typeId, {
|
|
846
850
|
...getBaseResourceProperties(),
|
|
847
851
|
...resource
|
|
@@ -859,9 +863,9 @@ var ProjectAPI = class {
|
|
|
859
863
|
);
|
|
860
864
|
}
|
|
861
865
|
getRepository(typeId) {
|
|
862
|
-
const
|
|
863
|
-
if (
|
|
864
|
-
return
|
|
866
|
+
const repository = this._repositories[typeId];
|
|
867
|
+
if (repository !== void 0) {
|
|
868
|
+
return repository;
|
|
865
869
|
}
|
|
866
870
|
throw new Error("No such repository");
|
|
867
871
|
}
|
|
@@ -1097,14 +1101,14 @@ var AbstractRepository = class {
|
|
|
1097
1101
|
}
|
|
1098
1102
|
return result;
|
|
1099
1103
|
}
|
|
1100
|
-
postProcessResource(resource) {
|
|
1101
|
-
return resource;
|
|
1102
|
-
}
|
|
1103
1104
|
};
|
|
1104
1105
|
var AbstractResourceRepository = class extends AbstractRepository {
|
|
1105
1106
|
constructor(storage) {
|
|
1106
1107
|
super(storage);
|
|
1107
1108
|
}
|
|
1109
|
+
postProcessResource(resource) {
|
|
1110
|
+
return resource;
|
|
1111
|
+
}
|
|
1108
1112
|
query(context, params = {}) {
|
|
1109
1113
|
const result = this._storage.query(context.projectKey, this.getTypeId(), {
|
|
1110
1114
|
expand: params.expand,
|
|
@@ -1251,11 +1255,13 @@ var CartRepository = class extends AbstractResourceRepository {
|
|
|
1251
1255
|
id: (0, import_uuid3.v4)(),
|
|
1252
1256
|
productId: product.id,
|
|
1253
1257
|
productKey: product.key,
|
|
1254
|
-
name: product.masterData.current.name,
|
|
1255
1258
|
productSlug: product.masterData.current.slug,
|
|
1256
1259
|
productType: product.productType,
|
|
1260
|
+
name: product.masterData.current.name,
|
|
1257
1261
|
variant,
|
|
1258
1262
|
price,
|
|
1263
|
+
taxedPricePortions: [],
|
|
1264
|
+
perMethodTaxRate: [],
|
|
1259
1265
|
totalPrice: {
|
|
1260
1266
|
...price.value,
|
|
1261
1267
|
centAmount: price.value.centAmount * quantity
|
|
@@ -1402,15 +1408,17 @@ var CartRepository = class extends AbstractResourceRepository {
|
|
|
1402
1408
|
id: (0, import_uuid3.v4)(),
|
|
1403
1409
|
productId: product.id,
|
|
1404
1410
|
productKey: product.key,
|
|
1405
|
-
name: product.masterData.current.name,
|
|
1406
1411
|
productSlug: product.masterData.current.slug,
|
|
1407
1412
|
productType: product.productType,
|
|
1413
|
+
name: product.masterData.current.name,
|
|
1408
1414
|
variant,
|
|
1409
1415
|
price,
|
|
1410
1416
|
totalPrice: {
|
|
1411
1417
|
...price.value,
|
|
1412
1418
|
centAmount: price.value.centAmount * quant
|
|
1413
1419
|
},
|
|
1420
|
+
taxedPricePortions: [],
|
|
1421
|
+
perMethodTaxRate: [],
|
|
1414
1422
|
quantity: quant,
|
|
1415
1423
|
discountedPricePerQuantity: [],
|
|
1416
1424
|
lineItemMode: "Standard",
|
|
@@ -1435,21 +1443,23 @@ var CartRepository = class extends AbstractResourceRepository {
|
|
|
1435
1443
|
const resource = {
|
|
1436
1444
|
...getBaseResourceProperties(),
|
|
1437
1445
|
cartState: "Active",
|
|
1438
|
-
|
|
1446
|
+
country: draft.country,
|
|
1439
1447
|
customLineItems: [],
|
|
1448
|
+
lineItems,
|
|
1449
|
+
locale: draft.locale,
|
|
1450
|
+
taxCalculationMode: draft.taxCalculationMode ?? "LineItemLevel",
|
|
1451
|
+
taxMode: draft.taxMode ?? "Platform",
|
|
1452
|
+
taxRoundingMode: draft.taxRoundingMode ?? "HalfEven",
|
|
1440
1453
|
totalPrice: {
|
|
1441
1454
|
type: "centPrecision",
|
|
1442
1455
|
centAmount: 0,
|
|
1443
1456
|
currencyCode: draft.currency,
|
|
1444
1457
|
fractionDigits: 0
|
|
1445
1458
|
},
|
|
1446
|
-
|
|
1447
|
-
|
|
1448
|
-
taxCalculationMode: draft.taxCalculationMode ?? "LineItemLevel",
|
|
1449
|
-
refusedGifts: [],
|
|
1450
|
-
locale: draft.locale,
|
|
1451
|
-
country: draft.country,
|
|
1459
|
+
shippingMode: "Single",
|
|
1460
|
+
shipping: [],
|
|
1452
1461
|
origin: draft.origin ?? "Customer",
|
|
1462
|
+
refusedGifts: [],
|
|
1453
1463
|
custom: createCustomFields(
|
|
1454
1464
|
draft.custom,
|
|
1455
1465
|
context.projectKey,
|
|
@@ -1803,10 +1813,7 @@ var CustomObjectRepository = class extends AbstractResourceRepository {
|
|
|
1803
1813
|
}
|
|
1804
1814
|
}
|
|
1805
1815
|
getWithContainerAndKey(context, container, key) {
|
|
1806
|
-
const items = this._storage.all(
|
|
1807
|
-
context.projectKey,
|
|
1808
|
-
this.getTypeId()
|
|
1809
|
-
);
|
|
1816
|
+
const items = this._storage.all(context.projectKey, this.getTypeId());
|
|
1810
1817
|
return items.find(
|
|
1811
1818
|
(item) => item.container === container && item.key === key
|
|
1812
1819
|
);
|
|
@@ -1913,7 +1920,7 @@ var CustomerGroupRepository = class extends AbstractResourceRepository {
|
|
|
1913
1920
|
};
|
|
1914
1921
|
}
|
|
1915
1922
|
getTypeId() {
|
|
1916
|
-
return "customer";
|
|
1923
|
+
return "customer-group";
|
|
1917
1924
|
}
|
|
1918
1925
|
create(context, draft) {
|
|
1919
1926
|
const resource = {
|
|
@@ -1998,7 +2005,7 @@ var DiscountCodeRepository = class extends AbstractResourceRepository {
|
|
|
1998
2005
|
};
|
|
1999
2006
|
}
|
|
2000
2007
|
getTypeId() {
|
|
2001
|
-
return "
|
|
2008
|
+
return "discount-code";
|
|
2002
2009
|
}
|
|
2003
2010
|
create(context, draft) {
|
|
2004
2011
|
const resource = {
|
|
@@ -2309,6 +2316,8 @@ var OrderRepository = class extends AbstractResourceRepository {
|
|
|
2309
2316
|
refusedGifts: [],
|
|
2310
2317
|
origin: "Customer",
|
|
2311
2318
|
syncInfo: [],
|
|
2319
|
+
shippingMode: cart.shippingMode,
|
|
2320
|
+
shipping: cart.shipping,
|
|
2312
2321
|
store: context.storeKey ? {
|
|
2313
2322
|
key: context.storeKey,
|
|
2314
2323
|
typeId: "store"
|
|
@@ -2337,6 +2346,8 @@ var OrderRepository = class extends AbstractResourceRepository {
|
|
|
2337
2346
|
origin: draft.origin || "Customer",
|
|
2338
2347
|
paymentState: draft.paymentState,
|
|
2339
2348
|
refusedGifts: [],
|
|
2349
|
+
shippingMode: "Single",
|
|
2350
|
+
shipping: [],
|
|
2340
2351
|
store: resolveStoreReference(
|
|
2341
2352
|
draft.store,
|
|
2342
2353
|
context.projectKey,
|
|
@@ -2408,6 +2419,8 @@ var OrderRepository = class extends AbstractResourceRepository {
|
|
|
2408
2419
|
quantity: draft.quantity,
|
|
2409
2420
|
state: draft.state || [],
|
|
2410
2421
|
taxRate: draft.taxRate,
|
|
2422
|
+
taxedPricePortions: [],
|
|
2423
|
+
perMethodTaxRate: [],
|
|
2411
2424
|
totalPrice: createTypedMoney(draft.price.value),
|
|
2412
2425
|
variant: {
|
|
2413
2426
|
id: variant.id,
|
|
@@ -2429,6 +2442,7 @@ var OrderRepository = class extends AbstractResourceRepository {
|
|
|
2429
2442
|
money: createTypedMoney(draft.money),
|
|
2430
2443
|
name: draft.name,
|
|
2431
2444
|
quantity: draft.quantity,
|
|
2445
|
+
priceMode: draft.priceMode,
|
|
2432
2446
|
slug: draft.slug,
|
|
2433
2447
|
state: [],
|
|
2434
2448
|
totalPrice: createTypedMoney(draft.money)
|
|
@@ -2462,6 +2476,29 @@ var MyOrderRepository = class extends OrderRepository {
|
|
|
2462
2476
|
}
|
|
2463
2477
|
};
|
|
2464
2478
|
|
|
2479
|
+
// src/repositories/order-edit.ts
|
|
2480
|
+
var OrderEditRepository = class extends AbstractResourceRepository {
|
|
2481
|
+
constructor() {
|
|
2482
|
+
super(...arguments);
|
|
2483
|
+
this.actions = {};
|
|
2484
|
+
}
|
|
2485
|
+
getTypeId() {
|
|
2486
|
+
return "order-edit";
|
|
2487
|
+
}
|
|
2488
|
+
create(context, draft) {
|
|
2489
|
+
const resource = {
|
|
2490
|
+
...getBaseResourceProperties(),
|
|
2491
|
+
stagedActions: draft.stagedActions ?? [],
|
|
2492
|
+
resource: draft.resource,
|
|
2493
|
+
result: {
|
|
2494
|
+
type: "NotProcessed"
|
|
2495
|
+
}
|
|
2496
|
+
};
|
|
2497
|
+
this.saveNew(context, resource);
|
|
2498
|
+
return resource;
|
|
2499
|
+
}
|
|
2500
|
+
};
|
|
2501
|
+
|
|
2465
2502
|
// src/repositories/payment.ts
|
|
2466
2503
|
var import_uuid5 = require("uuid");
|
|
2467
2504
|
var PaymentRepository = class extends AbstractResourceRepository {
|
|
@@ -2621,7 +2658,7 @@ var ProductRepository = class extends AbstractResourceRepository {
|
|
|
2621
2658
|
checkForStagedChanges(resource);
|
|
2622
2659
|
return resource;
|
|
2623
2660
|
},
|
|
2624
|
-
|
|
2661
|
+
setDescription: (context, resource, { description, staged }) => {
|
|
2625
2662
|
const onlyStaged = staged !== void 0 ? staged : true;
|
|
2626
2663
|
resource.masterData.staged.description = description;
|
|
2627
2664
|
if (!onlyStaged) {
|
|
@@ -2630,7 +2667,7 @@ var ProductRepository = class extends AbstractResourceRepository {
|
|
|
2630
2667
|
checkForStagedChanges(resource);
|
|
2631
2668
|
return resource;
|
|
2632
2669
|
},
|
|
2633
|
-
|
|
2670
|
+
setKey: (context, resource, { key }) => {
|
|
2634
2671
|
resource.key = key;
|
|
2635
2672
|
return resource;
|
|
2636
2673
|
}
|
|
@@ -2816,18 +2853,6 @@ var ProductDiscountRepository = class extends AbstractResourceRepository {
|
|
|
2816
2853
|
}
|
|
2817
2854
|
}
|
|
2818
2855
|
}
|
|
2819
|
-
getWithKey(context, key) {
|
|
2820
|
-
const result = this._storage.query(context.projectKey, this.getTypeId(), {
|
|
2821
|
-
where: [`key="${key}"`]
|
|
2822
|
-
});
|
|
2823
|
-
if (result.count === 1) {
|
|
2824
|
-
return result.results[0];
|
|
2825
|
-
}
|
|
2826
|
-
if (result.count > 1) {
|
|
2827
|
-
throw new Error("Duplicate product discount key");
|
|
2828
|
-
}
|
|
2829
|
-
return;
|
|
2830
|
-
}
|
|
2831
2856
|
};
|
|
2832
2857
|
|
|
2833
2858
|
// src/lib/projectionSearchFilter.ts
|
|
@@ -3075,7 +3100,7 @@ var ProductProjectionSearch = class {
|
|
|
3075
3100
|
this._storage = storage;
|
|
3076
3101
|
}
|
|
3077
3102
|
search(projectKey, params) {
|
|
3078
|
-
let resources = this._storage.all(projectKey, "product").map((r) => this.transform(r, params.staged ?? false)).filter((p) =>
|
|
3103
|
+
let resources = this._storage.all(projectKey, "product").map((r) => this.transform(r, params.staged ?? false)).filter((p) => {
|
|
3079
3104
|
if (!params.staged) {
|
|
3080
3105
|
return p.published;
|
|
3081
3106
|
}
|
|
@@ -3142,8 +3167,6 @@ var ProductProjectionSearch = class {
|
|
|
3142
3167
|
}
|
|
3143
3168
|
transform(product, staged) {
|
|
3144
3169
|
const obj = !staged ? product.masterData.current : product.masterData.staged;
|
|
3145
|
-
if (!obj)
|
|
3146
|
-
return null;
|
|
3147
3170
|
return {
|
|
3148
3171
|
id: product.id,
|
|
3149
3172
|
createdAt: product.createdAt,
|
|
@@ -3315,12 +3338,18 @@ var ProductProjectionRepository = class extends AbstractResourceRepository {
|
|
|
3315
3338
|
throw new Error("No valid action");
|
|
3316
3339
|
}
|
|
3317
3340
|
query(context, params = {}) {
|
|
3318
|
-
|
|
3341
|
+
const response = this._storage.query(context.projectKey, "product", {
|
|
3319
3342
|
expand: params.expand,
|
|
3320
3343
|
where: params.where,
|
|
3321
3344
|
offset: params.offset,
|
|
3322
3345
|
limit: params.limit
|
|
3323
3346
|
});
|
|
3347
|
+
return {
|
|
3348
|
+
...response,
|
|
3349
|
+
results: response.results.map(
|
|
3350
|
+
(r) => this._searchService.transform(r, false)
|
|
3351
|
+
)
|
|
3352
|
+
};
|
|
3324
3353
|
}
|
|
3325
3354
|
search(context, query) {
|
|
3326
3355
|
const results = this._searchService.search(context.projectKey, {
|
|
@@ -3336,6 +3365,27 @@ var ProductProjectionRepository = class extends AbstractResourceRepository {
|
|
|
3336
3365
|
}
|
|
3337
3366
|
};
|
|
3338
3367
|
|
|
3368
|
+
// src/repositories/product-selection.ts
|
|
3369
|
+
var ProductSelectionRepository = class extends AbstractResourceRepository {
|
|
3370
|
+
constructor() {
|
|
3371
|
+
super(...arguments);
|
|
3372
|
+
this.actions = {};
|
|
3373
|
+
}
|
|
3374
|
+
getTypeId() {
|
|
3375
|
+
return "product-selection";
|
|
3376
|
+
}
|
|
3377
|
+
create(context, draft) {
|
|
3378
|
+
const resource = {
|
|
3379
|
+
...getBaseResourceProperties(),
|
|
3380
|
+
productCount: 0,
|
|
3381
|
+
name: draft.name,
|
|
3382
|
+
type: "individual"
|
|
3383
|
+
};
|
|
3384
|
+
this.saveNew(context, resource);
|
|
3385
|
+
return resource;
|
|
3386
|
+
}
|
|
3387
|
+
};
|
|
3388
|
+
|
|
3339
3389
|
// src/repositories/product-type.ts
|
|
3340
3390
|
var ProductTypeRepository = class extends AbstractResourceRepository {
|
|
3341
3391
|
constructor() {
|
|
@@ -3387,20 +3437,20 @@ var ProductTypeRepository = class extends AbstractResourceRepository {
|
|
|
3387
3437
|
this.attributeDefinitionFromAttributeDefinitionDraft(context, attribute)
|
|
3388
3438
|
);
|
|
3389
3439
|
},
|
|
3390
|
-
|
|
3440
|
+
changeAttributeOrderByName: (context, resource, { attributeNames }) => {
|
|
3391
3441
|
var _a;
|
|
3392
3442
|
const attrs = new Map(
|
|
3393
3443
|
(_a = resource.attributes) == null ? void 0 : _a.map((item) => [item.name, item])
|
|
3394
3444
|
);
|
|
3395
3445
|
const result = [];
|
|
3396
3446
|
let current = resource.attributes;
|
|
3397
|
-
|
|
3398
|
-
const attr = attrs.get(
|
|
3447
|
+
attributeNames.forEach((attrName) => {
|
|
3448
|
+
const attr = attrs.get(attrName);
|
|
3399
3449
|
if (attr === void 0) {
|
|
3400
3450
|
throw new Error("New attr");
|
|
3401
3451
|
}
|
|
3402
3452
|
result.push(attr);
|
|
3403
|
-
current = current == null ? void 0 : current.filter((f) => f.name !==
|
|
3453
|
+
current = current == null ? void 0 : current.filter((f) => f.name !== attrName);
|
|
3404
3454
|
});
|
|
3405
3455
|
resource.attributes = result;
|
|
3406
3456
|
if (current) {
|
|
@@ -3448,18 +3498,6 @@ var ProductTypeRepository = class extends AbstractResourceRepository {
|
|
|
3448
3498
|
this.saveNew(context, resource);
|
|
3449
3499
|
return resource;
|
|
3450
3500
|
}
|
|
3451
|
-
getWithKey(context, key) {
|
|
3452
|
-
const result = this._storage.query(context.projectKey, this.getTypeId(), {
|
|
3453
|
-
where: [`key="${key}"`]
|
|
3454
|
-
});
|
|
3455
|
-
if (result.count === 1) {
|
|
3456
|
-
return result.results[0];
|
|
3457
|
-
}
|
|
3458
|
-
if (result.count > 1) {
|
|
3459
|
-
throw new Error("Duplicate product type key");
|
|
3460
|
-
}
|
|
3461
|
-
return;
|
|
3462
|
-
}
|
|
3463
3501
|
};
|
|
3464
3502
|
|
|
3465
3503
|
// src/repositories/project.ts
|
|
@@ -3479,8 +3517,8 @@ var ProjectRepository = class extends AbstractRepository {
|
|
|
3479
3517
|
changeLanguages: (context, resource, { languages }) => {
|
|
3480
3518
|
resource.languages = languages;
|
|
3481
3519
|
},
|
|
3482
|
-
|
|
3483
|
-
resource.messages.enabled =
|
|
3520
|
+
changeMessagesConfiguration: (context, resource, { messagesConfiguration }) => {
|
|
3521
|
+
resource.messages.enabled = messagesConfiguration.enabled;
|
|
3484
3522
|
},
|
|
3485
3523
|
changeProductSearchIndexingEnabled: (context, resource, { enabled }) => {
|
|
3486
3524
|
var _a;
|
|
@@ -3536,6 +3574,53 @@ var ProjectRepository = class extends AbstractRepository {
|
|
|
3536
3574
|
}
|
|
3537
3575
|
};
|
|
3538
3576
|
|
|
3577
|
+
// src/repositories/quote.ts
|
|
3578
|
+
var QuoteRepository = class extends AbstractResourceRepository {
|
|
3579
|
+
constructor() {
|
|
3580
|
+
super(...arguments);
|
|
3581
|
+
this.actions = {};
|
|
3582
|
+
}
|
|
3583
|
+
getTypeId() {
|
|
3584
|
+
return "quote";
|
|
3585
|
+
}
|
|
3586
|
+
create(context, draft) {
|
|
3587
|
+
throw new Error("not implemented");
|
|
3588
|
+
}
|
|
3589
|
+
};
|
|
3590
|
+
|
|
3591
|
+
// src/repositories/quote-request.ts
|
|
3592
|
+
var QuoteRequestRepository = class extends AbstractResourceRepository {
|
|
3593
|
+
constructor() {
|
|
3594
|
+
super(...arguments);
|
|
3595
|
+
this.actions = {};
|
|
3596
|
+
}
|
|
3597
|
+
getTypeId() {
|
|
3598
|
+
return "quote-request";
|
|
3599
|
+
}
|
|
3600
|
+
create(context, draft) {
|
|
3601
|
+
throw new Error("not implemented");
|
|
3602
|
+
}
|
|
3603
|
+
};
|
|
3604
|
+
|
|
3605
|
+
// src/repositories/review.ts
|
|
3606
|
+
var ReviewRepository = class extends AbstractResourceRepository {
|
|
3607
|
+
constructor() {
|
|
3608
|
+
super(...arguments);
|
|
3609
|
+
this.actions = {};
|
|
3610
|
+
}
|
|
3611
|
+
getTypeId() {
|
|
3612
|
+
return "review";
|
|
3613
|
+
}
|
|
3614
|
+
create(context, draft) {
|
|
3615
|
+
const resource = {
|
|
3616
|
+
...getBaseResourceProperties(),
|
|
3617
|
+
includedInStatistics: false
|
|
3618
|
+
};
|
|
3619
|
+
this.saveNew(context, resource);
|
|
3620
|
+
return resource;
|
|
3621
|
+
}
|
|
3622
|
+
};
|
|
3623
|
+
|
|
3539
3624
|
// src/repositories/shipping-method.ts
|
|
3540
3625
|
var import_deep_equal3 = __toESM(require("deep-equal"));
|
|
3541
3626
|
var ShippingMethodRepository = class extends AbstractResourceRepository {
|
|
@@ -3710,6 +3795,41 @@ var ShoppingListRepository = class extends AbstractResourceRepository {
|
|
|
3710
3795
|
}
|
|
3711
3796
|
};
|
|
3712
3797
|
|
|
3798
|
+
// src/repositories/staged-quote.ts
|
|
3799
|
+
var StagedQuoteRepository = class extends AbstractResourceRepository {
|
|
3800
|
+
constructor() {
|
|
3801
|
+
super(...arguments);
|
|
3802
|
+
this.actions = {};
|
|
3803
|
+
}
|
|
3804
|
+
getTypeId() {
|
|
3805
|
+
return "staged-quote";
|
|
3806
|
+
}
|
|
3807
|
+
create(context, draft) {
|
|
3808
|
+
throw new Error("not implemented");
|
|
3809
|
+
}
|
|
3810
|
+
};
|
|
3811
|
+
|
|
3812
|
+
// src/repositories/standalone-price.ts
|
|
3813
|
+
var StandAlonePriceRepository = class extends AbstractResourceRepository {
|
|
3814
|
+
constructor() {
|
|
3815
|
+
super(...arguments);
|
|
3816
|
+
this.actions = {};
|
|
3817
|
+
}
|
|
3818
|
+
getTypeId() {
|
|
3819
|
+
return "standalone-price";
|
|
3820
|
+
}
|
|
3821
|
+
create(context, draft) {
|
|
3822
|
+
const resource = {
|
|
3823
|
+
...getBaseResourceProperties(),
|
|
3824
|
+
active: draft.active,
|
|
3825
|
+
sku: draft.sku,
|
|
3826
|
+
value: draft.value
|
|
3827
|
+
};
|
|
3828
|
+
this.saveNew(context, resource);
|
|
3829
|
+
return resource;
|
|
3830
|
+
}
|
|
3831
|
+
};
|
|
3832
|
+
|
|
3713
3833
|
// src/repositories/state.ts
|
|
3714
3834
|
var StateRepository = class extends AbstractResourceRepository {
|
|
3715
3835
|
constructor() {
|
|
@@ -3830,18 +3950,6 @@ var StoreRepository = class extends AbstractResourceRepository {
|
|
|
3830
3950
|
)
|
|
3831
3951
|
);
|
|
3832
3952
|
}
|
|
3833
|
-
getWithKey(context, key) {
|
|
3834
|
-
const result = this._storage.query(context.projectKey, this.getTypeId(), {
|
|
3835
|
-
where: [`key="${key}"`]
|
|
3836
|
-
});
|
|
3837
|
-
if (result.count === 1) {
|
|
3838
|
-
return result.results[0];
|
|
3839
|
-
}
|
|
3840
|
-
if (result.count > 1) {
|
|
3841
|
-
throw new Error("Duplicate store key");
|
|
3842
|
-
}
|
|
3843
|
-
return;
|
|
3844
|
-
}
|
|
3845
3953
|
};
|
|
3846
3954
|
|
|
3847
3955
|
// src/repositories/subscription.ts
|
|
@@ -3941,18 +4049,6 @@ var TaxCategoryRepository = class extends AbstractResourceRepository {
|
|
|
3941
4049
|
this.saveNew(context, resource);
|
|
3942
4050
|
return resource;
|
|
3943
4051
|
}
|
|
3944
|
-
getWithKey(context, key) {
|
|
3945
|
-
const result = this._storage.query(context.projectKey, this.getTypeId(), {
|
|
3946
|
-
where: [`key="${key}"`]
|
|
3947
|
-
});
|
|
3948
|
-
if (result.count === 1) {
|
|
3949
|
-
return result.results[0];
|
|
3950
|
-
}
|
|
3951
|
-
if (result.count > 1) {
|
|
3952
|
-
throw new Error("Duplicate tax category key");
|
|
3953
|
-
}
|
|
3954
|
-
return;
|
|
3955
|
-
}
|
|
3956
4052
|
};
|
|
3957
4053
|
|
|
3958
4054
|
// src/repositories/type.ts
|
|
@@ -4111,18 +4207,25 @@ var createRepositories = (storage) => ({
|
|
|
4111
4207
|
"inventory-entry": new InventoryEntryRepository(storage),
|
|
4112
4208
|
"key-value-document": new CustomObjectRepository(storage),
|
|
4113
4209
|
order: new OrderRepository(storage),
|
|
4210
|
+
"order-edit": new OrderEditRepository(storage),
|
|
4114
4211
|
payment: new PaymentRepository(storage),
|
|
4115
4212
|
"my-cart": new CartRepository(storage),
|
|
4116
4213
|
"my-order": new MyOrderRepository(storage),
|
|
4117
4214
|
"my-customer": new CustomerRepository(storage),
|
|
4118
4215
|
"my-payment": new PaymentRepository(storage),
|
|
4119
|
-
"shipping-method": new ShippingMethodRepository(storage),
|
|
4120
|
-
"product-type": new ProductTypeRepository(storage),
|
|
4121
4216
|
product: new ProductRepository(storage),
|
|
4122
|
-
|
|
4217
|
+
"product-type": new ProductTypeRepository(storage),
|
|
4123
4218
|
"product-discount": new ProductDiscountRepository(storage),
|
|
4124
4219
|
"product-projection": new ProductProjectionRepository(storage),
|
|
4220
|
+
"product-selection": new ProductSelectionRepository(storage),
|
|
4221
|
+
project: new ProjectRepository(storage),
|
|
4222
|
+
review: new ReviewRepository(storage),
|
|
4223
|
+
quote: new QuoteRepository(storage),
|
|
4224
|
+
"quote-request": new QuoteRequestRepository(storage),
|
|
4225
|
+
"shipping-method": new ShippingMethodRepository(storage),
|
|
4125
4226
|
"shopping-list": new ShoppingListRepository(storage),
|
|
4227
|
+
"staged-quote": new StagedQuoteRepository(storage),
|
|
4228
|
+
"standalone-price": new StandAlonePriceRepository(storage),
|
|
4126
4229
|
state: new StateRepository(storage),
|
|
4127
4230
|
store: new StoreRepository(storage),
|
|
4128
4231
|
subscription: new SubscriptionRepository(storage),
|
|
@@ -4291,25 +4394,27 @@ var CartService = class extends AbstractService {
|
|
|
4291
4394
|
return "carts";
|
|
4292
4395
|
}
|
|
4293
4396
|
extraRoutes(parent) {
|
|
4294
|
-
parent.post("/replicate", (
|
|
4295
|
-
|
|
4296
|
-
|
|
4297
|
-
|
|
4298
|
-
|
|
4299
|
-
|
|
4300
|
-
|
|
4301
|
-
|
|
4302
|
-
|
|
4303
|
-
|
|
4304
|
-
|
|
4305
|
-
|
|
4306
|
-
|
|
4307
|
-
|
|
4308
|
-
|
|
4309
|
-
|
|
4310
|
-
|
|
4311
|
-
|
|
4312
|
-
}
|
|
4397
|
+
parent.post("/replicate", this.replicate.bind(this));
|
|
4398
|
+
}
|
|
4399
|
+
replicate(request, response) {
|
|
4400
|
+
const context = getRepositoryContext(request);
|
|
4401
|
+
const cartOrOrder = request.body.reference.typeId === "order" ? this.orderRepository.get(context, request.body.reference.id) : this.repository.get(context, request.body.reference.id);
|
|
4402
|
+
if (!cartOrOrder) {
|
|
4403
|
+
return response.status(400).send();
|
|
4404
|
+
}
|
|
4405
|
+
const cartDraft = {
|
|
4406
|
+
...cartOrOrder,
|
|
4407
|
+
currency: cartOrOrder.totalPrice.currencyCode,
|
|
4408
|
+
discountCodes: [],
|
|
4409
|
+
shipping: [],
|
|
4410
|
+
lineItems: cartOrOrder.lineItems.map((lineItem) => ({
|
|
4411
|
+
...lineItem,
|
|
4412
|
+
variantId: lineItem.variant.id,
|
|
4413
|
+
sku: lineItem.variant.sku
|
|
4414
|
+
}))
|
|
4415
|
+
};
|
|
4416
|
+
const newCart = this.repository.create(context, cartDraft);
|
|
4417
|
+
return response.status(200).send(newCart);
|
|
4313
4418
|
}
|
|
4314
4419
|
};
|
|
4315
4420
|
|
|
@@ -4654,19 +4759,6 @@ var ProductDiscountService = class extends AbstractService {
|
|
|
4654
4759
|
getBasePath() {
|
|
4655
4760
|
return "product-discounts";
|
|
4656
4761
|
}
|
|
4657
|
-
extraRoutes(router) {
|
|
4658
|
-
router.get("/key=:key", this.getWithKey.bind(this));
|
|
4659
|
-
}
|
|
4660
|
-
getWithKey(request, response) {
|
|
4661
|
-
const resource = this.repository.getWithKey(
|
|
4662
|
-
getRepositoryContext(request),
|
|
4663
|
-
request.params.key
|
|
4664
|
-
);
|
|
4665
|
-
if (resource) {
|
|
4666
|
-
return response.status(200).send(resource);
|
|
4667
|
-
}
|
|
4668
|
-
return response.status(404).send("Not found");
|
|
4669
|
-
}
|
|
4670
4762
|
};
|
|
4671
4763
|
|
|
4672
4764
|
// src/services/product-projection.ts
|
|
@@ -4699,19 +4791,6 @@ var ProductTypeService = class extends AbstractService {
|
|
|
4699
4791
|
getBasePath() {
|
|
4700
4792
|
return "product-types";
|
|
4701
4793
|
}
|
|
4702
|
-
extraRoutes(router) {
|
|
4703
|
-
router.get("/key=:key", this.getWithKey.bind(this));
|
|
4704
|
-
}
|
|
4705
|
-
getWithKey(request, response) {
|
|
4706
|
-
const resource = this.repository.getWithKey(
|
|
4707
|
-
getRepositoryContext(request),
|
|
4708
|
-
request.params.key
|
|
4709
|
-
);
|
|
4710
|
-
if (resource) {
|
|
4711
|
-
return response.status(200).send(resource);
|
|
4712
|
-
}
|
|
4713
|
-
return response.status(404).send("Not found");
|
|
4714
|
-
}
|
|
4715
4794
|
};
|
|
4716
4795
|
|
|
4717
4796
|
// src/services/shipping-method.ts
|
|
@@ -4760,19 +4839,6 @@ var StoreService = class extends AbstractService {
|
|
|
4760
4839
|
getBasePath() {
|
|
4761
4840
|
return "stores";
|
|
4762
4841
|
}
|
|
4763
|
-
extraRoutes(router) {
|
|
4764
|
-
router.get("/key=:key", this.getWithKey.bind(this));
|
|
4765
|
-
}
|
|
4766
|
-
getWithKey(request, response) {
|
|
4767
|
-
const resource = this.repository.getWithKey(
|
|
4768
|
-
getRepositoryContext(request),
|
|
4769
|
-
request.params.key
|
|
4770
|
-
);
|
|
4771
|
-
if (resource) {
|
|
4772
|
-
return response.status(200).send(resource);
|
|
4773
|
-
}
|
|
4774
|
-
return response.status(404).send("Not found");
|
|
4775
|
-
}
|
|
4776
4842
|
};
|
|
4777
4843
|
|
|
4778
4844
|
// src/services/subscription.ts
|
|
@@ -4795,19 +4861,6 @@ var TaxCategoryService = class extends AbstractService {
|
|
|
4795
4861
|
getBasePath() {
|
|
4796
4862
|
return "tax-categories";
|
|
4797
4863
|
}
|
|
4798
|
-
extraRoutes(router) {
|
|
4799
|
-
router.get("/key=:key", this.getWithKey.bind(this));
|
|
4800
|
-
}
|
|
4801
|
-
getWithKey(request, response) {
|
|
4802
|
-
const resource = this.repository.getWithKey(
|
|
4803
|
-
getRepositoryContext(request),
|
|
4804
|
-
request.params.key
|
|
4805
|
-
);
|
|
4806
|
-
if (resource) {
|
|
4807
|
-
return response.status(200).send(resource);
|
|
4808
|
-
}
|
|
4809
|
-
return response.status(404).send("Not found");
|
|
4810
|
-
}
|
|
4811
4864
|
};
|
|
4812
4865
|
|
|
4813
4866
|
// src/services/type.ts
|
|
@@ -4892,8 +4945,8 @@ var CommercetoolsMock = class {
|
|
|
4892
4945
|
constructor(options = {}) {
|
|
4893
4946
|
this._nockScopes = { auth: void 0, api: void 0 };
|
|
4894
4947
|
this.options = { ...DEFAULT_OPTIONS, ...options };
|
|
4895
|
-
this._services =
|
|
4896
|
-
this._repositories =
|
|
4948
|
+
this._services = null;
|
|
4949
|
+
this._repositories = null;
|
|
4897
4950
|
this._projectService = void 0;
|
|
4898
4951
|
this._storage = new InMemoryStorage();
|
|
4899
4952
|
this._oauth2 = new OAuth2Server({
|
|
@@ -4920,9 +4973,12 @@ var CommercetoolsMock = class {
|
|
|
4920
4973
|
if (!projectKey && !this.options.defaultProjectKey) {
|
|
4921
4974
|
throw new Error("No projectKey passed and no default set");
|
|
4922
4975
|
}
|
|
4976
|
+
if (this._repositories === null) {
|
|
4977
|
+
throw new Error("repositories not initialized yet");
|
|
4978
|
+
}
|
|
4923
4979
|
return new ProjectAPI(
|
|
4924
4980
|
projectKey || this.options.defaultProjectKey,
|
|
4925
|
-
this.
|
|
4981
|
+
this._repositories,
|
|
4926
4982
|
this._storage
|
|
4927
4983
|
);
|
|
4928
4984
|
}
|
|
@@ -4933,6 +4989,7 @@ var CommercetoolsMock = class {
|
|
|
4933
4989
|
server.keepAliveTimeout = 60 * 1e3;
|
|
4934
4990
|
}
|
|
4935
4991
|
createApp(options) {
|
|
4992
|
+
this._repositories = createRepositories(this._storage);
|
|
4936
4993
|
const app = (0, import_express6.default)();
|
|
4937
4994
|
const projectRouter = import_express6.default.Router({ mergeParams: true });
|
|
4938
4995
|
projectRouter.use(import_express6.default.json());
|
|
@@ -4951,12 +5008,11 @@ var CommercetoolsMock = class {
|
|
|
4951
5008
|
app.use("/:projectKey", projectRouter);
|
|
4952
5009
|
app.use("/:projectKey/in-store/key=:storeKey", projectRouter);
|
|
4953
5010
|
}
|
|
4954
|
-
this.
|
|
5011
|
+
this._services = createServices(projectRouter, this._repositories);
|
|
4955
5012
|
this._projectService = new ProjectService(
|
|
4956
5013
|
projectRouter,
|
|
4957
5014
|
this._repositories.project
|
|
4958
5015
|
);
|
|
4959
|
-
this._services = createServices(projectRouter, this._repositories);
|
|
4960
5016
|
app.use((err, req, resp, next) => {
|
|
4961
5017
|
if (err instanceof CommercetoolsError) {
|
|
4962
5018
|
return resp.status(err.statusCode).send({
|