@labdigital/commercetools-mock 2.47.0 → 2.48.0
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 +327 -277
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +10 -7
- package/dist/index.d.ts +10 -7
- package/dist/index.js +323 -273
- package/dist/index.js.map +1 -1
- package/package.json +24 -25
- package/src/ctMock.ts +6 -3
- package/src/oauth/server.test.ts +8 -0
- package/src/oauth/server.ts +15 -11
- package/src/repositories/as-associate.ts +2 -0
- package/src/repositories/index.ts +2 -0
- package/src/repositories/my-quote-request.ts +3 -0
- package/src/repositories/quote-request/index.ts +13 -1
- package/src/services/abstract.ts +43 -15
- package/src/services/as-associate-quote-request.ts +34 -0
- package/src/services/as-associate.ts +8 -0
- package/src/services/cart.ts +3 -2
- package/src/services/custom-object.ts +8 -6
- package/src/services/customer.ts +4 -4
- package/src/services/my-cart.ts +3 -2
- package/src/services/my-customer.ts +16 -12
- package/src/services/order.ts +4 -3
- package/src/services/product-projection.ts +2 -2
- package/src/services/product.ts +1 -1
- package/src/services/project.ts +4 -3
- package/src/services/shipping-method.ts +4 -2
package/dist/index.js
CHANGED
|
@@ -144,7 +144,7 @@ var getBearerToken = (request) => {
|
|
|
144
144
|
};
|
|
145
145
|
|
|
146
146
|
// src/oauth/store.ts
|
|
147
|
-
import { randomBytes } from "crypto";
|
|
147
|
+
import { randomBytes } from "node:crypto";
|
|
148
148
|
import { v4 as uuidv43 } from "uuid";
|
|
149
149
|
var OAuth2Store = class {
|
|
150
150
|
tokens = [];
|
|
@@ -209,8 +209,7 @@ var OAuth2Store = class {
|
|
|
209
209
|
};
|
|
210
210
|
}
|
|
211
211
|
validateToken(token) {
|
|
212
|
-
if (!this.validate)
|
|
213
|
-
return true;
|
|
212
|
+
if (!this.validate) return true;
|
|
214
213
|
const foundToken = this.tokens.find((t) => t.access_token === token);
|
|
215
214
|
if (foundToken) {
|
|
216
215
|
return true;
|
|
@@ -325,7 +324,7 @@ var OAuth2Server = class {
|
|
|
325
324
|
)
|
|
326
325
|
);
|
|
327
326
|
}
|
|
328
|
-
const grantType = request.query.grant_type || request.body
|
|
327
|
+
const grantType = request.query.grant_type || request.body?.grant_type;
|
|
329
328
|
if (!grantType) {
|
|
330
329
|
return next(
|
|
331
330
|
new CommercetoolsError(
|
|
@@ -343,10 +342,11 @@ var OAuth2Server = class {
|
|
|
343
342
|
request.credentials.clientSecret,
|
|
344
343
|
request.query.scope?.toString()
|
|
345
344
|
);
|
|
346
|
-
|
|
345
|
+
response.status(200).send(token);
|
|
346
|
+
return;
|
|
347
347
|
}
|
|
348
348
|
if (grantType === "refresh_token") {
|
|
349
|
-
const refreshToken = request.query.refresh_token?.toString() || request.body
|
|
349
|
+
const refreshToken = request.query.refresh_token?.toString() || request.body?.refresh_token;
|
|
350
350
|
if (!refreshToken) {
|
|
351
351
|
return next(
|
|
352
352
|
new CommercetoolsError(
|
|
@@ -376,7 +376,8 @@ var OAuth2Server = class {
|
|
|
376
376
|
)
|
|
377
377
|
);
|
|
378
378
|
}
|
|
379
|
-
|
|
379
|
+
response.status(200).send(token);
|
|
380
|
+
return;
|
|
380
381
|
}
|
|
381
382
|
return next(
|
|
382
383
|
new CommercetoolsError(
|
|
@@ -390,7 +391,7 @@ var OAuth2Server = class {
|
|
|
390
391
|
}
|
|
391
392
|
async customerTokenHandler(request, response, next) {
|
|
392
393
|
const projectKey = request.params.projectKey;
|
|
393
|
-
const grantType = request.query.grant_type || request.body
|
|
394
|
+
const grantType = request.query.grant_type || request.body?.grant_type;
|
|
394
395
|
if (!grantType) {
|
|
395
396
|
return next(
|
|
396
397
|
new CommercetoolsError(
|
|
@@ -403,11 +404,11 @@ var OAuth2Server = class {
|
|
|
403
404
|
);
|
|
404
405
|
}
|
|
405
406
|
if (grantType === "password") {
|
|
406
|
-
const username = request.query.username || request.body
|
|
407
|
+
const username = request.query.username || request.body?.username;
|
|
407
408
|
const password = hashPassword(
|
|
408
409
|
request.query.password || request.body.password
|
|
409
410
|
);
|
|
410
|
-
const scope = request.query.scope?.toString() || request.body
|
|
411
|
+
const scope = request.query.scope?.toString() || request.body?.scope?.toString();
|
|
411
412
|
const result = this.customerRepository.query(
|
|
412
413
|
{ projectKey: request.params.projectKey },
|
|
413
414
|
{
|
|
@@ -427,7 +428,7 @@ var OAuth2Server = class {
|
|
|
427
428
|
}
|
|
428
429
|
const customer = result.results[0];
|
|
429
430
|
const token = this.store.getCustomerToken(projectKey, customer.id, scope);
|
|
430
|
-
|
|
431
|
+
response.status(200).send(token);
|
|
431
432
|
}
|
|
432
433
|
}
|
|
433
434
|
async inStoreCustomerTokenHandler(request, response, next) {
|
|
@@ -470,7 +471,8 @@ var OAuth2Server = class {
|
|
|
470
471
|
}
|
|
471
472
|
const customer = result.results[0];
|
|
472
473
|
const token = this.store.getCustomerToken(projectKey, customer.id, scope);
|
|
473
|
-
|
|
474
|
+
response.status(200).send(token);
|
|
475
|
+
return;
|
|
474
476
|
}
|
|
475
477
|
}
|
|
476
478
|
async anonymousTokenHandler(request, response, next) {
|
|
@@ -488,14 +490,15 @@ var OAuth2Server = class {
|
|
|
488
490
|
);
|
|
489
491
|
}
|
|
490
492
|
if (grantType === "client_credentials") {
|
|
491
|
-
const scope = request.query.scope?.toString() || request.body
|
|
493
|
+
const scope = request.query.scope?.toString() || request.body?.scope?.toString();
|
|
492
494
|
const anonymous_id = void 0;
|
|
493
495
|
const token = this.store.getAnonymousToken(
|
|
494
496
|
projectKey,
|
|
495
497
|
anonymous_id,
|
|
496
498
|
scope
|
|
497
499
|
);
|
|
498
|
-
|
|
500
|
+
response.status(200).send(token);
|
|
501
|
+
return;
|
|
499
502
|
}
|
|
500
503
|
}
|
|
501
504
|
};
|
|
@@ -553,8 +556,7 @@ import deepEqual from "deep-equal";
|
|
|
553
556
|
|
|
554
557
|
// src/repositories/errors.ts
|
|
555
558
|
var checkConcurrentModification = (currentVersion, expectedVersion, identifier) => {
|
|
556
|
-
if (currentVersion === expectedVersion)
|
|
557
|
-
return;
|
|
559
|
+
if (currentVersion === expectedVersion) return;
|
|
558
560
|
throw new CommercetoolsError(
|
|
559
561
|
{
|
|
560
562
|
message: `Object ${identifier} has a different version than expected. Expected: ${expectedVersion} - Actual: ${currentVersion}.`,
|
|
@@ -745,8 +747,7 @@ import { v4 as uuidv46 } from "uuid";
|
|
|
745
747
|
import { Decimal } from "decimal.js/decimal";
|
|
746
748
|
import { v4 as uuidv44 } from "uuid";
|
|
747
749
|
var createAddress = (base, projectKey, storage) => {
|
|
748
|
-
if (!base)
|
|
749
|
-
return void 0;
|
|
750
|
+
if (!base) return void 0;
|
|
750
751
|
if (!base?.country) {
|
|
751
752
|
throw new Error("Country is required");
|
|
752
753
|
}
|
|
@@ -755,12 +756,9 @@ var createAddress = (base, projectKey, storage) => {
|
|
|
755
756
|
};
|
|
756
757
|
};
|
|
757
758
|
var createCustomFields = (draft, projectKey, storage) => {
|
|
758
|
-
if (!draft)
|
|
759
|
-
|
|
760
|
-
if (!draft.type)
|
|
761
|
-
return void 0;
|
|
762
|
-
if (!draft.type.typeId)
|
|
763
|
-
return void 0;
|
|
759
|
+
if (!draft) return void 0;
|
|
760
|
+
if (!draft.type) return void 0;
|
|
761
|
+
if (!draft.type.typeId) return void 0;
|
|
764
762
|
const typeResource = storage.getByResourceIdentifier(
|
|
765
763
|
projectKey,
|
|
766
764
|
draft.type
|
|
@@ -843,8 +841,7 @@ var createTypedMoney = (value) => {
|
|
|
843
841
|
return result;
|
|
844
842
|
};
|
|
845
843
|
var resolveStoreReference = (ref, projectKey, storage) => {
|
|
846
|
-
if (!ref)
|
|
847
|
-
return void 0;
|
|
844
|
+
if (!ref) return void 0;
|
|
848
845
|
const resource = storage.getByResourceIdentifier(projectKey, ref);
|
|
849
846
|
if (!resource) {
|
|
850
847
|
throw new Error("No such store");
|
|
@@ -912,8 +909,7 @@ var getRepositoryContext = (request) => ({
|
|
|
912
909
|
storeKey: request.params.storeKey
|
|
913
910
|
});
|
|
914
911
|
var createAssociate = (a, projectKey, storage) => {
|
|
915
|
-
if (!a)
|
|
916
|
-
return void 0;
|
|
912
|
+
if (!a) return void 0;
|
|
917
913
|
if (!a.associateRoleAssignments) {
|
|
918
914
|
throw new Error("AssociateRoleAssignments is required");
|
|
919
915
|
}
|
|
@@ -1000,6 +996,10 @@ var markMatchingShippingRatePriceTiers = (cart, tiers) => {
|
|
|
1000
996
|
switch (tierType) {
|
|
1001
997
|
case "CartValue":
|
|
1002
998
|
return markMatchingCartValueTiers(cart, tiers);
|
|
999
|
+
// case 'CartClassification':
|
|
1000
|
+
// return markMatchingCartClassificationTiers(cart, tiers)
|
|
1001
|
+
// case 'CartScore':
|
|
1002
|
+
// return markMatchingCartScoreTiers(cart, tiers)
|
|
1003
1003
|
default:
|
|
1004
1004
|
throw new Error(`Unsupported tier type: ${tierType}`);
|
|
1005
1005
|
}
|
|
@@ -1012,8 +1012,7 @@ var markMatchingCartValueTiers = (cart, tiers) => {
|
|
|
1012
1012
|
let hasMatchingTier = false;
|
|
1013
1013
|
for (const tier of sortedTiers) {
|
|
1014
1014
|
const isMatching = !hasMatchingTier && cart.totalPrice.currencyCode === tier.price.currencyCode && cart.totalPrice.centAmount >= tier.minimumCentAmount;
|
|
1015
|
-
if (isMatching)
|
|
1016
|
-
hasMatchingTier = true;
|
|
1015
|
+
if (isMatching) hasMatchingTier = true;
|
|
1017
1016
|
result[tier.minimumCentAmount] = {
|
|
1018
1017
|
...tier,
|
|
1019
1018
|
isMatching
|
|
@@ -1125,10 +1124,8 @@ var CartUpdateHandler = class extends AbstractUpdateHandler {
|
|
|
1125
1124
|
product.masterData.current.masterVariant,
|
|
1126
1125
|
...product.masterData.current.variants
|
|
1127
1126
|
].find((x) => {
|
|
1128
|
-
if (sku)
|
|
1129
|
-
|
|
1130
|
-
if (variantId)
|
|
1131
|
-
return x.id === variantId;
|
|
1127
|
+
if (sku) return x.sku === sku;
|
|
1128
|
+
if (variantId) return x.id === variantId;
|
|
1132
1129
|
return false;
|
|
1133
1130
|
});
|
|
1134
1131
|
if (!variant) {
|
|
@@ -1656,10 +1653,8 @@ var CartRepository = class extends AbstractResourceRepository {
|
|
|
1656
1653
|
product.masterData.current.masterVariant,
|
|
1657
1654
|
...product.masterData.current.variants
|
|
1658
1655
|
].find((x) => {
|
|
1659
|
-
if (sku)
|
|
1660
|
-
|
|
1661
|
-
if (variantId)
|
|
1662
|
-
return x.id === variantId;
|
|
1656
|
+
if (sku) return x.sku === sku;
|
|
1657
|
+
if (variantId) return x.id === variantId;
|
|
1663
1658
|
return false;
|
|
1664
1659
|
});
|
|
1665
1660
|
if (!variant) {
|
|
@@ -1701,7 +1696,7 @@ var CartRepository = class extends AbstractResourceRepository {
|
|
|
1701
1696
|
};
|
|
1702
1697
|
|
|
1703
1698
|
// src/repositories/order/index.ts
|
|
1704
|
-
import assert from "assert";
|
|
1699
|
+
import assert from "node:assert";
|
|
1705
1700
|
|
|
1706
1701
|
// src/repositories/order/actions.ts
|
|
1707
1702
|
var OrderUpdateHandler = class extends AbstractUpdateHandler {
|
|
@@ -1841,8 +1836,7 @@ var OrderUpdateHandler = class extends AbstractUpdateHandler {
|
|
|
1841
1836
|
);
|
|
1842
1837
|
}
|
|
1843
1838
|
setStore(context, resource, { store }) {
|
|
1844
|
-
if (!store)
|
|
1845
|
-
return;
|
|
1839
|
+
if (!store) return;
|
|
1846
1840
|
const resolvedType = this._storage.getByResourceIdentifier(
|
|
1847
1841
|
context.projectKey,
|
|
1848
1842
|
store
|
|
@@ -1873,8 +1867,7 @@ var OrderUpdateHandler = class extends AbstractUpdateHandler {
|
|
|
1873
1867
|
};
|
|
1874
1868
|
}
|
|
1875
1869
|
updateSyncInfo(context, resource, { channel, externalId, syncedAt }) {
|
|
1876
|
-
if (!channel)
|
|
1877
|
-
return;
|
|
1870
|
+
if (!channel) return;
|
|
1878
1871
|
const resolvedType = this._storage.getByResourceIdentifier(
|
|
1879
1872
|
context.projectKey,
|
|
1880
1873
|
channel
|
|
@@ -2103,11 +2096,125 @@ var OrderRepository = class extends AbstractResourceRepository {
|
|
|
2103
2096
|
}
|
|
2104
2097
|
};
|
|
2105
2098
|
|
|
2099
|
+
// src/repositories/quote-request/index.ts
|
|
2100
|
+
import assert2 from "node:assert";
|
|
2101
|
+
|
|
2102
|
+
// src/repositories/quote-request/actions.ts
|
|
2103
|
+
var QuoteRequestUpdateHandler = class extends AbstractUpdateHandler {
|
|
2104
|
+
setCustomField(context, resource, { name, value }) {
|
|
2105
|
+
if (!resource.custom) {
|
|
2106
|
+
throw new Error("Resource has no custom field");
|
|
2107
|
+
}
|
|
2108
|
+
resource.custom.fields[name] = value;
|
|
2109
|
+
}
|
|
2110
|
+
setCustomType(context, resource, { type, fields }) {
|
|
2111
|
+
if (!type) {
|
|
2112
|
+
resource.custom = void 0;
|
|
2113
|
+
} else {
|
|
2114
|
+
const resolvedType = this._storage.getByResourceIdentifier(
|
|
2115
|
+
context.projectKey,
|
|
2116
|
+
type
|
|
2117
|
+
);
|
|
2118
|
+
if (!resolvedType) {
|
|
2119
|
+
throw new Error(`Type ${type} not found`);
|
|
2120
|
+
}
|
|
2121
|
+
resource.custom = {
|
|
2122
|
+
type: {
|
|
2123
|
+
typeId: "type",
|
|
2124
|
+
id: resolvedType.id
|
|
2125
|
+
},
|
|
2126
|
+
fields: fields || {}
|
|
2127
|
+
};
|
|
2128
|
+
}
|
|
2129
|
+
}
|
|
2130
|
+
transitionState(context, resource, { state, force }) {
|
|
2131
|
+
let stateReference = void 0;
|
|
2132
|
+
if (state) {
|
|
2133
|
+
stateReference = getReferenceFromResourceIdentifier(
|
|
2134
|
+
state,
|
|
2135
|
+
context.projectKey,
|
|
2136
|
+
this._storage
|
|
2137
|
+
);
|
|
2138
|
+
resource.state = stateReference;
|
|
2139
|
+
} else {
|
|
2140
|
+
throw new CommercetoolsError(
|
|
2141
|
+
{
|
|
2142
|
+
code: "InvalidJsonInput",
|
|
2143
|
+
message: "Request body does not contain valid JSON.",
|
|
2144
|
+
detailedErrorMessage: "actions -> state: Missing required value"
|
|
2145
|
+
},
|
|
2146
|
+
400
|
|
2147
|
+
);
|
|
2148
|
+
}
|
|
2149
|
+
return resource;
|
|
2150
|
+
}
|
|
2151
|
+
};
|
|
2152
|
+
|
|
2153
|
+
// src/repositories/quote-request/index.ts
|
|
2154
|
+
var QuoteRequestRepository = class extends AbstractResourceRepository {
|
|
2155
|
+
constructor(config) {
|
|
2156
|
+
super("quote-request", config);
|
|
2157
|
+
this.actions = new QuoteRequestUpdateHandler(config.storage);
|
|
2158
|
+
}
|
|
2159
|
+
create(context, draft) {
|
|
2160
|
+
if ("cartId" in draft) {
|
|
2161
|
+
return this.createFromCart(context, {
|
|
2162
|
+
id: draft.cartId,
|
|
2163
|
+
typeId: "cart"
|
|
2164
|
+
});
|
|
2165
|
+
}
|
|
2166
|
+
assert2(draft.cart, "draft.cart is missing");
|
|
2167
|
+
return this.createFromCart(context, {
|
|
2168
|
+
id: draft.cart.id,
|
|
2169
|
+
typeId: "cart"
|
|
2170
|
+
});
|
|
2171
|
+
}
|
|
2172
|
+
createFromCart(context, cartReference) {
|
|
2173
|
+
const cart = this._storage.getByResourceIdentifier(
|
|
2174
|
+
context.projectKey,
|
|
2175
|
+
cartReference
|
|
2176
|
+
);
|
|
2177
|
+
if (!cart) {
|
|
2178
|
+
throw new Error("Cannot find cart");
|
|
2179
|
+
}
|
|
2180
|
+
if (!cart.customerId) {
|
|
2181
|
+
throw new Error("Cart does not have a customer");
|
|
2182
|
+
}
|
|
2183
|
+
const resource = {
|
|
2184
|
+
...getBaseResourceProperties(),
|
|
2185
|
+
billingAddress: cart.billingAddress,
|
|
2186
|
+
cart: cartReference,
|
|
2187
|
+
country: cart.country,
|
|
2188
|
+
custom: cart.custom,
|
|
2189
|
+
customer: {
|
|
2190
|
+
typeId: "customer",
|
|
2191
|
+
id: cart.customerId
|
|
2192
|
+
},
|
|
2193
|
+
customerGroup: cart.customerGroup,
|
|
2194
|
+
customLineItems: [],
|
|
2195
|
+
directDiscounts: cart.directDiscounts,
|
|
2196
|
+
lineItems: cart.lineItems,
|
|
2197
|
+
paymentInfo: cart.paymentInfo,
|
|
2198
|
+
quoteRequestState: "Submitted",
|
|
2199
|
+
shippingAddress: cart.shippingAddress,
|
|
2200
|
+
taxCalculationMode: cart.taxCalculationMode,
|
|
2201
|
+
taxedPrice: cart.taxedPrice,
|
|
2202
|
+
taxMode: cart.taxMode,
|
|
2203
|
+
taxRoundingMode: cart.taxRoundingMode,
|
|
2204
|
+
totalPrice: cart.totalPrice,
|
|
2205
|
+
store: cart.store
|
|
2206
|
+
};
|
|
2207
|
+
return this.saveNew(context, resource);
|
|
2208
|
+
}
|
|
2209
|
+
};
|
|
2210
|
+
|
|
2106
2211
|
// src/repositories/as-associate.ts
|
|
2107
2212
|
var AsAssociateOrderRepository = class extends OrderRepository {
|
|
2108
2213
|
};
|
|
2109
2214
|
var AsAssociateCartRepository = class extends CartRepository {
|
|
2110
2215
|
};
|
|
2216
|
+
var AsAssociateQuoteRequestRepository = class extends QuoteRequestRepository {
|
|
2217
|
+
};
|
|
2111
2218
|
|
|
2112
2219
|
// src/repositories/associate-role.ts
|
|
2113
2220
|
var AssociateRoleRepository = class extends AbstractResourceRepository {
|
|
@@ -2843,7 +2950,7 @@ var CustomObjectRepository = class extends AbstractResourceRepository {
|
|
|
2843
2950
|
};
|
|
2844
2951
|
|
|
2845
2952
|
// src/repositories/customer/actions.ts
|
|
2846
|
-
import
|
|
2953
|
+
import assert3 from "node:assert";
|
|
2847
2954
|
var CustomerUpdateHandler = class extends AbstractUpdateHandler {
|
|
2848
2955
|
addAddress(_context, resource, { address }) {
|
|
2849
2956
|
resource.addresses.push({
|
|
@@ -2853,7 +2960,7 @@ var CustomerUpdateHandler = class extends AbstractUpdateHandler {
|
|
|
2853
2960
|
}
|
|
2854
2961
|
addBillingAddressId(_context, resource, { addressId, addressKey }) {
|
|
2855
2962
|
const address = this._findAddress(resource, addressId, addressKey, true);
|
|
2856
|
-
|
|
2963
|
+
assert3(address?.id);
|
|
2857
2964
|
if (resource.billingAddressIds === void 0) {
|
|
2858
2965
|
resource.billingAddressIds = [];
|
|
2859
2966
|
}
|
|
@@ -2863,7 +2970,7 @@ var CustomerUpdateHandler = class extends AbstractUpdateHandler {
|
|
|
2863
2970
|
}
|
|
2864
2971
|
addShippingAddressId(_context, resource, { addressId, addressKey }) {
|
|
2865
2972
|
const address = this._findAddress(resource, addressId, addressKey, true);
|
|
2866
|
-
|
|
2973
|
+
assert3(address?.id);
|
|
2867
2974
|
if (resource.shippingAddressIds === void 0) {
|
|
2868
2975
|
resource.shippingAddressIds = [];
|
|
2869
2976
|
}
|
|
@@ -2877,7 +2984,7 @@ var CustomerUpdateHandler = class extends AbstractUpdateHandler {
|
|
|
2877
2984
|
}
|
|
2878
2985
|
changeAddress(context, resource, { addressId, addressKey, address }) {
|
|
2879
2986
|
const current = this._findAddress(resource, addressId, addressKey, true);
|
|
2880
|
-
|
|
2987
|
+
assert3(current?.id);
|
|
2881
2988
|
const oldAddressIndex = resource.addresses.findIndex(
|
|
2882
2989
|
(a) => a.id === current.id
|
|
2883
2990
|
);
|
|
@@ -2903,7 +3010,7 @@ var CustomerUpdateHandler = class extends AbstractUpdateHandler {
|
|
|
2903
3010
|
action.addressKey,
|
|
2904
3011
|
true
|
|
2905
3012
|
);
|
|
2906
|
-
|
|
3013
|
+
assert3(address?.id);
|
|
2907
3014
|
resource.addresses = resource.addresses.filter((a) => a.id !== address.id);
|
|
2908
3015
|
}
|
|
2909
3016
|
removeBillingAddressId(context, resource, action) {
|
|
@@ -2913,7 +3020,7 @@ var CustomerUpdateHandler = class extends AbstractUpdateHandler {
|
|
|
2913
3020
|
action.addressKey,
|
|
2914
3021
|
true
|
|
2915
3022
|
);
|
|
2916
|
-
|
|
3023
|
+
assert3(address?.id);
|
|
2917
3024
|
resource.billingAddressIds = resource.billingAddressIds?.filter(
|
|
2918
3025
|
(id) => id !== address.id
|
|
2919
3026
|
);
|
|
@@ -2928,7 +3035,7 @@ var CustomerUpdateHandler = class extends AbstractUpdateHandler {
|
|
|
2928
3035
|
action.addressKey,
|
|
2929
3036
|
true
|
|
2930
3037
|
);
|
|
2931
|
-
|
|
3038
|
+
assert3(address?.id);
|
|
2932
3039
|
resource.shippingAddressIds = resource.shippingAddressIds?.filter(
|
|
2933
3040
|
(id) => id !== address.id
|
|
2934
3041
|
);
|
|
@@ -3030,7 +3137,7 @@ var CustomerUpdateHandler = class extends AbstractUpdateHandler {
|
|
|
3030
3137
|
action.addressKey,
|
|
3031
3138
|
true
|
|
3032
3139
|
);
|
|
3033
|
-
|
|
3140
|
+
assert3(address?.id);
|
|
3034
3141
|
resource.defaultBillingAddressId = address.id;
|
|
3035
3142
|
if (resource.billingAddressIds === void 0) {
|
|
3036
3143
|
resource.billingAddressIds = [];
|
|
@@ -3046,7 +3153,7 @@ var CustomerUpdateHandler = class extends AbstractUpdateHandler {
|
|
|
3046
3153
|
action.addressKey,
|
|
3047
3154
|
true
|
|
3048
3155
|
);
|
|
3049
|
-
|
|
3156
|
+
assert3(address?.id);
|
|
3050
3157
|
resource.defaultShippingAddressId = address.id;
|
|
3051
3158
|
if (resource.shippingAddressIds === void 0) {
|
|
3052
3159
|
resource.shippingAddressIds = [];
|
|
@@ -3679,10 +3786,10 @@ var MyCustomerRepository = class extends CustomerRepository {
|
|
|
3679
3786
|
};
|
|
3680
3787
|
|
|
3681
3788
|
// src/repositories/my-order.ts
|
|
3682
|
-
import
|
|
3789
|
+
import assert4 from "node:assert";
|
|
3683
3790
|
var MyOrderRepository = class extends OrderRepository {
|
|
3684
3791
|
create(context, draft) {
|
|
3685
|
-
|
|
3792
|
+
assert4(draft.id, "draft.id is missing");
|
|
3686
3793
|
const cartIdentifier = {
|
|
3687
3794
|
id: draft.id,
|
|
3688
3795
|
typeId: "cart"
|
|
@@ -3987,19 +4094,16 @@ function toRegExp(str) {
|
|
|
3987
4094
|
return new RegExp(str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&"));
|
|
3988
4095
|
}
|
|
3989
4096
|
function normalize(regex) {
|
|
3990
|
-
if (typeof regex === "string")
|
|
3991
|
-
regex = toRegExp(regex);
|
|
4097
|
+
if (typeof regex === "string") regex = toRegExp(regex);
|
|
3992
4098
|
if (!regex.source.startsWith("^"))
|
|
3993
4099
|
return new RegExp(`^${regex.source}`, regex.flags);
|
|
3994
|
-
else
|
|
3995
|
-
return regex;
|
|
4100
|
+
else return regex;
|
|
3996
4101
|
}
|
|
3997
4102
|
function first(arr, predicate) {
|
|
3998
4103
|
let i = 0;
|
|
3999
4104
|
for (const item of arr) {
|
|
4000
4105
|
const result = predicate(item, i++);
|
|
4001
|
-
if (result)
|
|
4002
|
-
return { item, result };
|
|
4106
|
+
if (result) return { item, result };
|
|
4003
4107
|
}
|
|
4004
4108
|
}
|
|
4005
4109
|
var TokenTypes = class {
|
|
@@ -4163,8 +4267,7 @@ var Lexer = class {
|
|
|
4163
4267
|
*/
|
|
4164
4268
|
peek(position = this._state.position) {
|
|
4165
4269
|
const read = (i = position) => {
|
|
4166
|
-
if (i >= this._state.source.length)
|
|
4167
|
-
return EOF(this);
|
|
4270
|
+
if (i >= this._state.source.length) return EOF(this);
|
|
4168
4271
|
const n = this._tokenTypes.peek(this._state.source, i);
|
|
4169
4272
|
if (!n || !n.result) {
|
|
4170
4273
|
throw new Error(
|
|
@@ -4184,8 +4287,7 @@ var Lexer = class {
|
|
|
4184
4287
|
) : null;
|
|
4185
4288
|
};
|
|
4186
4289
|
const t = read();
|
|
4187
|
-
if (t)
|
|
4188
|
-
return t;
|
|
4290
|
+
if (t) return t;
|
|
4189
4291
|
let unexpected = this._state.source.substring(position, position + 1);
|
|
4190
4292
|
try {
|
|
4191
4293
|
this.peek(position + 1);
|
|
@@ -4207,8 +4309,7 @@ var Lexer = class {
|
|
|
4207
4309
|
*/
|
|
4208
4310
|
strpos(i) {
|
|
4209
4311
|
let lines = this._state.source.substring(0, i).split(/\r?\n/);
|
|
4210
|
-
if (!Array.isArray(lines))
|
|
4211
|
-
lines = [lines];
|
|
4312
|
+
if (!Array.isArray(lines)) lines = [lines];
|
|
4212
4313
|
const line = lines.length;
|
|
4213
4314
|
const column = lines[lines.length - 1].length + 1;
|
|
4214
4315
|
return { line, column };
|
|
@@ -4307,8 +4408,7 @@ var Parser = class {
|
|
|
4307
4408
|
* @returns {number} The binding power of the specified token type
|
|
4308
4409
|
*/
|
|
4309
4410
|
bp(tokenOrType) {
|
|
4310
|
-
if (tokenOrType == null)
|
|
4311
|
-
return Number.NEGATIVE_INFINITY;
|
|
4411
|
+
if (tokenOrType == null) return Number.NEGATIVE_INFINITY;
|
|
4312
4412
|
if (tokenOrType && typeof tokenOrType.isEof == "function" && tokenOrType.isEof())
|
|
4313
4413
|
return Number.NEGATIVE_INFINITY;
|
|
4314
4414
|
const type = this._type(tokenOrType);
|
|
@@ -4353,27 +4453,21 @@ var Parser = class {
|
|
|
4353
4453
|
parse(opts = { terminals: [0] }) {
|
|
4354
4454
|
const stop = opts.stop = opts.stop || createStop();
|
|
4355
4455
|
const check = () => {
|
|
4356
|
-
if (stop.isStopped())
|
|
4357
|
-
return false;
|
|
4456
|
+
if (stop.isStopped()) return false;
|
|
4358
4457
|
const t = this.lexer.peek();
|
|
4359
4458
|
const bp = this.bp(t);
|
|
4360
4459
|
return opts.terminals.reduce((canContinue, rbpOrType) => {
|
|
4361
|
-
if (!canContinue)
|
|
4362
|
-
|
|
4363
|
-
if (typeof rbpOrType == "
|
|
4364
|
-
return rbpOrType < bp;
|
|
4365
|
-
if (typeof rbpOrType == "string")
|
|
4366
|
-
return t.type != rbpOrType;
|
|
4460
|
+
if (!canContinue) return false;
|
|
4461
|
+
if (typeof rbpOrType == "number") return rbpOrType < bp;
|
|
4462
|
+
if (typeof rbpOrType == "string") return t.type != rbpOrType;
|
|
4367
4463
|
}, true);
|
|
4368
4464
|
};
|
|
4369
4465
|
const mkinfo = (token) => {
|
|
4370
4466
|
const bp = this.bp(token);
|
|
4371
4467
|
return { token, bp, stop, ctx: opts.ctx, options: opts };
|
|
4372
4468
|
};
|
|
4373
|
-
if (!opts.terminals)
|
|
4374
|
-
|
|
4375
|
-
if (opts.terminals.length == 0)
|
|
4376
|
-
opts.terminals.push(0);
|
|
4469
|
+
if (!opts.terminals) opts.terminals = [0];
|
|
4470
|
+
if (opts.terminals.length == 0) opts.terminals.push(0);
|
|
4377
4471
|
let left = this.nud(mkinfo(this.lexer.next()));
|
|
4378
4472
|
while (check()) {
|
|
4379
4473
|
const operator = this.lexer.next();
|
|
@@ -4576,8 +4670,7 @@ var generateMatchFunc = (filter) => {
|
|
|
4576
4670
|
throw new Error(`Syntax error while parsing '${filter}'.`);
|
|
4577
4671
|
}
|
|
4578
4672
|
return (obj) => {
|
|
4579
|
-
if (!result.children)
|
|
4580
|
-
return false;
|
|
4673
|
+
if (!result.children) return false;
|
|
4581
4674
|
return result.children.some((c) => c.match(obj));
|
|
4582
4675
|
};
|
|
4583
4676
|
};
|
|
@@ -6188,8 +6281,7 @@ var generateMatchFunc2 = (predicate) => {
|
|
|
6188
6281
|
const expr = parser.parse({ terminals: [")"] });
|
|
6189
6282
|
return (obj, vars) => {
|
|
6190
6283
|
const value = resolveValue(obj, left);
|
|
6191
|
-
if (!value)
|
|
6192
|
-
return false;
|
|
6284
|
+
if (!value) return false;
|
|
6193
6285
|
const maxDistance = resolveSymbol(expr[2], vars);
|
|
6194
6286
|
const distance = haversineDistance(
|
|
6195
6287
|
{
|
|
@@ -6327,8 +6419,7 @@ var ProductProjectionSearch = class {
|
|
|
6327
6419
|
};
|
|
6328
6420
|
}
|
|
6329
6421
|
getFacets(params, products) {
|
|
6330
|
-
if (!params.facet)
|
|
6331
|
-
return {};
|
|
6422
|
+
if (!params.facet) return {};
|
|
6332
6423
|
const result = {};
|
|
6333
6424
|
const regexp = new RegExp(/ counting products$/);
|
|
6334
6425
|
for (let facet of params.facet) {
|
|
@@ -6905,112 +6996,6 @@ var QuoteRepository = class extends AbstractResourceRepository {
|
|
|
6905
6996
|
}
|
|
6906
6997
|
};
|
|
6907
6998
|
|
|
6908
|
-
// src/repositories/quote-request/index.ts
|
|
6909
|
-
import assert4 from "assert";
|
|
6910
|
-
|
|
6911
|
-
// src/repositories/quote-request/actions.ts
|
|
6912
|
-
var QuoteRequestUpdateHandler = class extends AbstractUpdateHandler {
|
|
6913
|
-
setCustomField(context, resource, { name, value }) {
|
|
6914
|
-
if (!resource.custom) {
|
|
6915
|
-
throw new Error("Resource has no custom field");
|
|
6916
|
-
}
|
|
6917
|
-
resource.custom.fields[name] = value;
|
|
6918
|
-
}
|
|
6919
|
-
setCustomType(context, resource, { type, fields }) {
|
|
6920
|
-
if (!type) {
|
|
6921
|
-
resource.custom = void 0;
|
|
6922
|
-
} else {
|
|
6923
|
-
const resolvedType = this._storage.getByResourceIdentifier(
|
|
6924
|
-
context.projectKey,
|
|
6925
|
-
type
|
|
6926
|
-
);
|
|
6927
|
-
if (!resolvedType) {
|
|
6928
|
-
throw new Error(`Type ${type} not found`);
|
|
6929
|
-
}
|
|
6930
|
-
resource.custom = {
|
|
6931
|
-
type: {
|
|
6932
|
-
typeId: "type",
|
|
6933
|
-
id: resolvedType.id
|
|
6934
|
-
},
|
|
6935
|
-
fields: fields || {}
|
|
6936
|
-
};
|
|
6937
|
-
}
|
|
6938
|
-
}
|
|
6939
|
-
transitionState(context, resource, { state, force }) {
|
|
6940
|
-
let stateReference = void 0;
|
|
6941
|
-
if (state) {
|
|
6942
|
-
stateReference = getReferenceFromResourceIdentifier(
|
|
6943
|
-
state,
|
|
6944
|
-
context.projectKey,
|
|
6945
|
-
this._storage
|
|
6946
|
-
);
|
|
6947
|
-
resource.state = stateReference;
|
|
6948
|
-
} else {
|
|
6949
|
-
throw new CommercetoolsError(
|
|
6950
|
-
{
|
|
6951
|
-
code: "InvalidJsonInput",
|
|
6952
|
-
message: "Request body does not contain valid JSON.",
|
|
6953
|
-
detailedErrorMessage: "actions -> state: Missing required value"
|
|
6954
|
-
},
|
|
6955
|
-
400
|
|
6956
|
-
);
|
|
6957
|
-
}
|
|
6958
|
-
return resource;
|
|
6959
|
-
}
|
|
6960
|
-
};
|
|
6961
|
-
|
|
6962
|
-
// src/repositories/quote-request/index.ts
|
|
6963
|
-
var QuoteRequestRepository = class extends AbstractResourceRepository {
|
|
6964
|
-
constructor(config) {
|
|
6965
|
-
super("quote-request", config);
|
|
6966
|
-
this.actions = new QuoteRequestUpdateHandler(config.storage);
|
|
6967
|
-
}
|
|
6968
|
-
create(context, draft) {
|
|
6969
|
-
assert4(draft.cart, "draft.cart is missing");
|
|
6970
|
-
return this.createFromCart(context, {
|
|
6971
|
-
id: draft.cart.id,
|
|
6972
|
-
typeId: "cart"
|
|
6973
|
-
});
|
|
6974
|
-
}
|
|
6975
|
-
createFromCart(context, cartReference) {
|
|
6976
|
-
const cart = this._storage.getByResourceIdentifier(
|
|
6977
|
-
context.projectKey,
|
|
6978
|
-
cartReference
|
|
6979
|
-
);
|
|
6980
|
-
if (!cart) {
|
|
6981
|
-
throw new Error("Cannot find cart");
|
|
6982
|
-
}
|
|
6983
|
-
if (!cart.customerId) {
|
|
6984
|
-
throw new Error("Cart does not have a customer");
|
|
6985
|
-
}
|
|
6986
|
-
const resource = {
|
|
6987
|
-
...getBaseResourceProperties(),
|
|
6988
|
-
billingAddress: cart.billingAddress,
|
|
6989
|
-
cart: cartReference,
|
|
6990
|
-
country: cart.country,
|
|
6991
|
-
custom: cart.custom,
|
|
6992
|
-
customer: {
|
|
6993
|
-
typeId: "customer",
|
|
6994
|
-
id: cart.customerId
|
|
6995
|
-
},
|
|
6996
|
-
customerGroup: cart.customerGroup,
|
|
6997
|
-
customLineItems: [],
|
|
6998
|
-
directDiscounts: cart.directDiscounts,
|
|
6999
|
-
lineItems: cart.lineItems,
|
|
7000
|
-
paymentInfo: cart.paymentInfo,
|
|
7001
|
-
quoteRequestState: "Submitted",
|
|
7002
|
-
shippingAddress: cart.shippingAddress,
|
|
7003
|
-
taxCalculationMode: cart.taxCalculationMode,
|
|
7004
|
-
taxedPrice: cart.taxedPrice,
|
|
7005
|
-
taxMode: cart.taxMode,
|
|
7006
|
-
taxRoundingMode: cart.taxRoundingMode,
|
|
7007
|
-
totalPrice: cart.totalPrice,
|
|
7008
|
-
store: cart.store
|
|
7009
|
-
};
|
|
7010
|
-
return this.saveNew(context, resource);
|
|
7011
|
-
}
|
|
7012
|
-
};
|
|
7013
|
-
|
|
7014
6999
|
// src/repositories/quote-staged/actions.ts
|
|
7015
7000
|
var StagedQuoteUpdateHandler = class extends AbstractUpdateHandler {
|
|
7016
7001
|
setCustomField(context, resource, { name, value }) {
|
|
@@ -7102,8 +7087,7 @@ var ReviewRepository = class extends AbstractResourceRepository {
|
|
|
7102
7087
|
super("review", config);
|
|
7103
7088
|
}
|
|
7104
7089
|
create(context, draft) {
|
|
7105
|
-
if (!draft.target)
|
|
7106
|
-
throw new Error("Missing target");
|
|
7090
|
+
if (!draft.target) throw new Error("Missing target");
|
|
7107
7091
|
const resource = {
|
|
7108
7092
|
...getBaseResourceProperties(),
|
|
7109
7093
|
locale: draft.locale,
|
|
@@ -7709,8 +7693,7 @@ var StoreRepository = class extends AbstractResourceRepository {
|
|
|
7709
7693
|
}
|
|
7710
7694
|
};
|
|
7711
7695
|
var transformChannels = (context, storage, channels) => {
|
|
7712
|
-
if (!channels)
|
|
7713
|
-
return [];
|
|
7696
|
+
if (!channels) return [];
|
|
7714
7697
|
return channels.map(
|
|
7715
7698
|
(ref) => getReferenceFromResourceIdentifier(
|
|
7716
7699
|
ref,
|
|
@@ -8007,7 +7990,8 @@ var ZoneUpdateHandler = class extends AbstractUpdateHandler {
|
|
|
8007
7990
|
var createRepositories = (config) => ({
|
|
8008
7991
|
"as-associate": {
|
|
8009
7992
|
cart: new AsAssociateCartRepository(config),
|
|
8010
|
-
order: new AsAssociateOrderRepository(config)
|
|
7993
|
+
order: new AsAssociateOrderRepository(config),
|
|
7994
|
+
"quote-request": new AsAssociateQuoteRequestRepository(config)
|
|
8011
7995
|
},
|
|
8012
7996
|
"associate-role": new AssociateRoleRepository(config),
|
|
8013
7997
|
"attribute-group": new AttributeGroupRepository(config),
|
|
@@ -8053,7 +8037,7 @@ var createRepositories = (config) => ({
|
|
|
8053
8037
|
});
|
|
8054
8038
|
|
|
8055
8039
|
// src/services/as-associate.ts
|
|
8056
|
-
import { Router as
|
|
8040
|
+
import { Router as Router5 } from "express";
|
|
8057
8041
|
|
|
8058
8042
|
// src/services/as-associate-cart.ts
|
|
8059
8043
|
import { Router as Router2 } from "express";
|
|
@@ -8127,14 +8111,25 @@ var AbstractService = class {
|
|
|
8127
8111
|
}
|
|
8128
8112
|
}
|
|
8129
8113
|
const result = this.repository.query(getRepositoryContext(request), params);
|
|
8130
|
-
|
|
8114
|
+
response.status(200).send(result);
|
|
8115
|
+
return;
|
|
8131
8116
|
}
|
|
8132
8117
|
getWithId(request, response) {
|
|
8133
8118
|
const result = this._expandWithId(request, request.params.id);
|
|
8134
8119
|
if (!result) {
|
|
8135
|
-
|
|
8120
|
+
response.status(404).send({
|
|
8121
|
+
statusCode: 404,
|
|
8122
|
+
message: `The Resource with ID '${request.params.id} was not found.`,
|
|
8123
|
+
errors: [
|
|
8124
|
+
{
|
|
8125
|
+
code: "ResourceNotFound",
|
|
8126
|
+
message: `The Resource with ID '${request.params.id} was not found.`
|
|
8127
|
+
}
|
|
8128
|
+
]
|
|
8129
|
+
});
|
|
8130
|
+
return;
|
|
8136
8131
|
}
|
|
8137
|
-
|
|
8132
|
+
response.status(200).send(result);
|
|
8138
8133
|
}
|
|
8139
8134
|
getWithKey(request, response) {
|
|
8140
8135
|
const result = this.repository.getByKey(
|
|
@@ -8144,9 +8139,20 @@ var AbstractService = class {
|
|
|
8144
8139
|
expand: this._parseParam(request.query.expand)
|
|
8145
8140
|
}
|
|
8146
8141
|
);
|
|
8147
|
-
if (!result)
|
|
8148
|
-
|
|
8149
|
-
|
|
8142
|
+
if (!result) {
|
|
8143
|
+
response.status(404).send({
|
|
8144
|
+
statusCode: 404,
|
|
8145
|
+
message: `The Resource with key '${request.params.id} was not found.`,
|
|
8146
|
+
errors: [
|
|
8147
|
+
{
|
|
8148
|
+
code: "ResourceNotFound",
|
|
8149
|
+
message: `The Resource with key '${request.params.id} was not found.`
|
|
8150
|
+
}
|
|
8151
|
+
]
|
|
8152
|
+
});
|
|
8153
|
+
return;
|
|
8154
|
+
}
|
|
8155
|
+
response.status(200).send(result);
|
|
8150
8156
|
}
|
|
8151
8157
|
deleteWithId(request, response) {
|
|
8152
8158
|
const result = this.repository.delete(
|
|
@@ -8157,9 +8163,10 @@ var AbstractService = class {
|
|
|
8157
8163
|
}
|
|
8158
8164
|
);
|
|
8159
8165
|
if (!result) {
|
|
8160
|
-
|
|
8166
|
+
response.sendStatus(404);
|
|
8167
|
+
return;
|
|
8161
8168
|
}
|
|
8162
|
-
|
|
8169
|
+
response.status(200).send(result);
|
|
8163
8170
|
}
|
|
8164
8171
|
deleteWithKey(request, response) {
|
|
8165
8172
|
const resource = this.repository.getByKey(
|
|
@@ -8167,7 +8174,8 @@ var AbstractService = class {
|
|
|
8167
8174
|
request.params.key
|
|
8168
8175
|
);
|
|
8169
8176
|
if (!resource) {
|
|
8170
|
-
|
|
8177
|
+
response.sendStatus(404);
|
|
8178
|
+
return;
|
|
8171
8179
|
}
|
|
8172
8180
|
const result = this.repository.delete(
|
|
8173
8181
|
getRepositoryContext(request),
|
|
@@ -8177,9 +8185,10 @@ var AbstractService = class {
|
|
|
8177
8185
|
}
|
|
8178
8186
|
);
|
|
8179
8187
|
if (!result) {
|
|
8180
|
-
|
|
8188
|
+
response.sendStatus(404);
|
|
8189
|
+
return;
|
|
8181
8190
|
}
|
|
8182
|
-
|
|
8191
|
+
response.status(200).send(result);
|
|
8183
8192
|
}
|
|
8184
8193
|
post(request, response) {
|
|
8185
8194
|
const draft = request.body;
|
|
@@ -8188,7 +8197,7 @@ var AbstractService = class {
|
|
|
8188
8197
|
draft
|
|
8189
8198
|
);
|
|
8190
8199
|
const result = this._expandWithId(request, resource.id);
|
|
8191
|
-
|
|
8200
|
+
response.status(this.createStatusCode).send(result);
|
|
8192
8201
|
}
|
|
8193
8202
|
postWithId(request, response) {
|
|
8194
8203
|
const updateRequest = validateData(
|
|
@@ -8200,7 +8209,8 @@ var AbstractService = class {
|
|
|
8200
8209
|
request.params.id
|
|
8201
8210
|
);
|
|
8202
8211
|
if (!resource) {
|
|
8203
|
-
|
|
8212
|
+
response.sendStatus(404);
|
|
8213
|
+
return;
|
|
8204
8214
|
}
|
|
8205
8215
|
const updatedResource = this.repository.processUpdateActions(
|
|
8206
8216
|
getRepositoryContext(request),
|
|
@@ -8209,7 +8219,7 @@ var AbstractService = class {
|
|
|
8209
8219
|
updateRequest.actions
|
|
8210
8220
|
);
|
|
8211
8221
|
const result = this._expandWithId(request, updatedResource.id);
|
|
8212
|
-
|
|
8222
|
+
response.status(200).send(result);
|
|
8213
8223
|
}
|
|
8214
8224
|
postWithKey(request, response) {
|
|
8215
8225
|
const updateRequest = validateData(
|
|
@@ -8221,7 +8231,8 @@ var AbstractService = class {
|
|
|
8221
8231
|
request.params.key
|
|
8222
8232
|
);
|
|
8223
8233
|
if (!resource) {
|
|
8224
|
-
|
|
8234
|
+
response.sendStatus(404);
|
|
8235
|
+
return;
|
|
8225
8236
|
}
|
|
8226
8237
|
const updatedResource = this.repository.processUpdateActions(
|
|
8227
8238
|
getRepositoryContext(request),
|
|
@@ -8230,7 +8241,7 @@ var AbstractService = class {
|
|
|
8230
8241
|
updateRequest.actions
|
|
8231
8242
|
);
|
|
8232
8243
|
const result = this._expandWithId(request, updatedResource.id);
|
|
8233
|
-
|
|
8244
|
+
response.status(200).send(result);
|
|
8234
8245
|
}
|
|
8235
8246
|
_expandWithId(request, resourceId) {
|
|
8236
8247
|
const result = this.repository.get(
|
|
@@ -8295,15 +8306,43 @@ var AsAssociateOrderService = class extends AbstractService {
|
|
|
8295
8306
|
}
|
|
8296
8307
|
};
|
|
8297
8308
|
|
|
8309
|
+
// src/services/as-associate-quote-request.ts
|
|
8310
|
+
import { Router as Router4 } from "express";
|
|
8311
|
+
var AsAssociateQuoteRequestService = class extends AbstractService {
|
|
8312
|
+
repository;
|
|
8313
|
+
constructor(parent, repository) {
|
|
8314
|
+
super(parent);
|
|
8315
|
+
this.repository = repository;
|
|
8316
|
+
}
|
|
8317
|
+
getBasePath() {
|
|
8318
|
+
return "quote-requests";
|
|
8319
|
+
}
|
|
8320
|
+
registerRoutes(parent) {
|
|
8321
|
+
const basePath = this.getBasePath();
|
|
8322
|
+
const router = Router4({ mergeParams: true });
|
|
8323
|
+
this.extraRoutes(router);
|
|
8324
|
+
router.get("/", this.get.bind(this));
|
|
8325
|
+
router.get("/:id", this.getWithId.bind(this));
|
|
8326
|
+
router.delete("/:id", this.deleteWithId.bind(this));
|
|
8327
|
+
router.post("/", this.post.bind(this));
|
|
8328
|
+
router.post("/:id", this.postWithId.bind(this));
|
|
8329
|
+
parent.use(`/${basePath}`, router);
|
|
8330
|
+
}
|
|
8331
|
+
};
|
|
8332
|
+
|
|
8298
8333
|
// src/services/as-associate.ts
|
|
8299
8334
|
var AsAssociateService = class {
|
|
8300
8335
|
router;
|
|
8301
8336
|
subServices;
|
|
8302
8337
|
constructor(parent, repositories) {
|
|
8303
|
-
this.router =
|
|
8338
|
+
this.router = Router5({ mergeParams: true });
|
|
8304
8339
|
this.subServices = {
|
|
8305
8340
|
order: new AsAssociateOrderService(this.router, repositories.order),
|
|
8306
|
-
cart: new AsAssociateCartService(this.router, repositories.cart)
|
|
8341
|
+
cart: new AsAssociateCartService(this.router, repositories.cart),
|
|
8342
|
+
"quote-request": new AsAssociateQuoteRequestService(
|
|
8343
|
+
this.router,
|
|
8344
|
+
repositories["quote-request"]
|
|
8345
|
+
)
|
|
8307
8346
|
};
|
|
8308
8347
|
parent.use(
|
|
8309
8348
|
"/as-associate/:associateId/in-business-unit/key=:businessUnitId",
|
|
@@ -8367,7 +8406,8 @@ var CartService = class extends AbstractService {
|
|
|
8367
8406
|
const context = getRepositoryContext(request);
|
|
8368
8407
|
const cartOrOrder = request.body.reference.typeId === "order" ? this.orderRepository.get(context, request.body.reference.id) : this.repository.get(context, request.body.reference.id);
|
|
8369
8408
|
if (!cartOrOrder) {
|
|
8370
|
-
|
|
8409
|
+
response.status(400).send();
|
|
8410
|
+
return;
|
|
8371
8411
|
}
|
|
8372
8412
|
const cartDraft = {
|
|
8373
8413
|
...cartOrOrder,
|
|
@@ -8382,7 +8422,7 @@ var CartService = class extends AbstractService {
|
|
|
8382
8422
|
}))
|
|
8383
8423
|
};
|
|
8384
8424
|
const newCart = this.repository.create(context, cartDraft);
|
|
8385
|
-
|
|
8425
|
+
response.status(200).send(newCart);
|
|
8386
8426
|
}
|
|
8387
8427
|
};
|
|
8388
8428
|
|
|
@@ -8454,7 +8494,7 @@ var CustomObjectService = class extends AbstractService {
|
|
|
8454
8494
|
offset: offset !== void 0 ? Number(offset) : void 0
|
|
8455
8495
|
}
|
|
8456
8496
|
);
|
|
8457
|
-
|
|
8497
|
+
response.status(200).send(result);
|
|
8458
8498
|
}
|
|
8459
8499
|
getWithContainerAndKey(request, response) {
|
|
8460
8500
|
const result = this.repository.getWithContainerAndKey(
|
|
@@ -8463,9 +8503,10 @@ var CustomObjectService = class extends AbstractService {
|
|
|
8463
8503
|
request.params.key
|
|
8464
8504
|
);
|
|
8465
8505
|
if (!result) {
|
|
8466
|
-
|
|
8506
|
+
response.sendStatus(404);
|
|
8507
|
+
return;
|
|
8467
8508
|
}
|
|
8468
|
-
|
|
8509
|
+
response.status(200).send(result);
|
|
8469
8510
|
}
|
|
8470
8511
|
createWithContainerAndKey(request, response) {
|
|
8471
8512
|
const draft = {
|
|
@@ -8474,7 +8515,7 @@ var CustomObjectService = class extends AbstractService {
|
|
|
8474
8515
|
container: request.params.container
|
|
8475
8516
|
};
|
|
8476
8517
|
const result = this.repository.create(getRepositoryContext(request), draft);
|
|
8477
|
-
|
|
8518
|
+
response.status(200).send(result);
|
|
8478
8519
|
}
|
|
8479
8520
|
deleteWithContainerAndKey(request, response) {
|
|
8480
8521
|
const current = this.repository.getWithContainerAndKey(
|
|
@@ -8483,13 +8524,14 @@ var CustomObjectService = class extends AbstractService {
|
|
|
8483
8524
|
request.params.key
|
|
8484
8525
|
);
|
|
8485
8526
|
if (!current) {
|
|
8486
|
-
|
|
8527
|
+
response.sendStatus(404);
|
|
8528
|
+
return;
|
|
8487
8529
|
}
|
|
8488
8530
|
const result = this.repository.delete(
|
|
8489
8531
|
getRepositoryContext(request),
|
|
8490
8532
|
current.id
|
|
8491
8533
|
);
|
|
8492
|
-
|
|
8534
|
+
response.status(200).send(result);
|
|
8493
8535
|
}
|
|
8494
8536
|
};
|
|
8495
8537
|
|
|
@@ -8518,21 +8560,21 @@ var CustomerService = class extends AbstractService {
|
|
|
8518
8560
|
const result = {
|
|
8519
8561
|
customer: expanded
|
|
8520
8562
|
};
|
|
8521
|
-
|
|
8563
|
+
response.status(this.createStatusCode).send(result);
|
|
8522
8564
|
}
|
|
8523
8565
|
passwordResetToken(request, response) {
|
|
8524
8566
|
const customer = this.repository.passwordResetToken(
|
|
8525
8567
|
getRepositoryContext(request),
|
|
8526
8568
|
request.body
|
|
8527
8569
|
);
|
|
8528
|
-
|
|
8570
|
+
response.status(200).send(customer);
|
|
8529
8571
|
}
|
|
8530
8572
|
passwordReset(request, response) {
|
|
8531
8573
|
const customer = this.repository.passwordReset(
|
|
8532
8574
|
getRepositoryContext(request),
|
|
8533
8575
|
request.body
|
|
8534
8576
|
);
|
|
8535
|
-
|
|
8577
|
+
response.status(200).send(customer);
|
|
8536
8578
|
}
|
|
8537
8579
|
confirmEmailToken(request, response) {
|
|
8538
8580
|
const id = request.body.id;
|
|
@@ -8540,7 +8582,7 @@ var CustomerService = class extends AbstractService {
|
|
|
8540
8582
|
getRepositoryContext(request),
|
|
8541
8583
|
id
|
|
8542
8584
|
);
|
|
8543
|
-
|
|
8585
|
+
response.status(200).send(token);
|
|
8544
8586
|
}
|
|
8545
8587
|
};
|
|
8546
8588
|
|
|
@@ -8593,7 +8635,7 @@ var InventoryEntryService = class extends AbstractService {
|
|
|
8593
8635
|
};
|
|
8594
8636
|
|
|
8595
8637
|
// src/services/my-business-unit.ts
|
|
8596
|
-
import { Router as
|
|
8638
|
+
import { Router as Router6 } from "express";
|
|
8597
8639
|
var MyBusinessUnitService = class extends AbstractService {
|
|
8598
8640
|
repository;
|
|
8599
8641
|
constructor(parent, repository) {
|
|
@@ -8605,7 +8647,7 @@ var MyBusinessUnitService = class extends AbstractService {
|
|
|
8605
8647
|
}
|
|
8606
8648
|
registerRoutes(parent) {
|
|
8607
8649
|
const basePath = this.getBasePath();
|
|
8608
|
-
const router =
|
|
8650
|
+
const router = Router6({ mergeParams: true });
|
|
8609
8651
|
this.extraRoutes(router);
|
|
8610
8652
|
router.get("/business-units/", this.get.bind(this));
|
|
8611
8653
|
parent.use(`/${basePath}`, router);
|
|
@@ -8613,7 +8655,7 @@ var MyBusinessUnitService = class extends AbstractService {
|
|
|
8613
8655
|
};
|
|
8614
8656
|
|
|
8615
8657
|
// src/services/my-cart.ts
|
|
8616
|
-
import { Router as
|
|
8658
|
+
import { Router as Router7 } from "express";
|
|
8617
8659
|
var MyCartService = class extends AbstractService {
|
|
8618
8660
|
repository;
|
|
8619
8661
|
constructor(parent, repository) {
|
|
@@ -8625,7 +8667,7 @@ var MyCartService = class extends AbstractService {
|
|
|
8625
8667
|
}
|
|
8626
8668
|
registerRoutes(parent) {
|
|
8627
8669
|
const basePath = this.getBasePath();
|
|
8628
|
-
const router =
|
|
8670
|
+
const router = Router7({ mergeParams: true });
|
|
8629
8671
|
this.extraRoutes(router);
|
|
8630
8672
|
router.get("/active-cart", this.activeCart.bind(this));
|
|
8631
8673
|
router.get("/carts/", this.get.bind(this));
|
|
@@ -8638,14 +8680,15 @@ var MyCartService = class extends AbstractService {
|
|
|
8638
8680
|
activeCart(request, response) {
|
|
8639
8681
|
const resource = this.repository.getActiveCart(request.params.projectKey);
|
|
8640
8682
|
if (!resource) {
|
|
8641
|
-
|
|
8683
|
+
response.sendStatus(404);
|
|
8684
|
+
return;
|
|
8642
8685
|
}
|
|
8643
|
-
|
|
8686
|
+
response.status(200).send(resource);
|
|
8644
8687
|
}
|
|
8645
8688
|
};
|
|
8646
8689
|
|
|
8647
8690
|
// src/services/my-customer.ts
|
|
8648
|
-
import { Router as
|
|
8691
|
+
import { Router as Router8 } from "express";
|
|
8649
8692
|
var MyCustomerService = class extends AbstractService {
|
|
8650
8693
|
repository;
|
|
8651
8694
|
constructor(parent, repository) {
|
|
@@ -8657,7 +8700,7 @@ var MyCustomerService = class extends AbstractService {
|
|
|
8657
8700
|
}
|
|
8658
8701
|
registerRoutes(parent) {
|
|
8659
8702
|
const basePath = this.getBasePath();
|
|
8660
|
-
const router =
|
|
8703
|
+
const router = Router8({ mergeParams: true });
|
|
8661
8704
|
this.extraRoutes(router);
|
|
8662
8705
|
router.get("", this.getMe.bind(this));
|
|
8663
8706
|
router.post("", this.updateMe.bind(this));
|
|
@@ -8672,14 +8715,16 @@ var MyCustomerService = class extends AbstractService {
|
|
|
8672
8715
|
getMe(request, response) {
|
|
8673
8716
|
const resource = this.repository.getMe(getRepositoryContext(request));
|
|
8674
8717
|
if (!resource) {
|
|
8675
|
-
|
|
8718
|
+
response.sendStatus(404);
|
|
8719
|
+
return;
|
|
8676
8720
|
}
|
|
8677
|
-
|
|
8721
|
+
response.status(200).send(resource);
|
|
8678
8722
|
}
|
|
8679
8723
|
updateMe(request, response) {
|
|
8680
8724
|
const resource = this.repository.getMe(getRepositoryContext(request));
|
|
8681
8725
|
if (!resource) {
|
|
8682
|
-
|
|
8726
|
+
response.sendStatus(404);
|
|
8727
|
+
return;
|
|
8683
8728
|
}
|
|
8684
8729
|
const updateRequest = validateData(
|
|
8685
8730
|
request.body,
|
|
@@ -8692,14 +8737,15 @@ var MyCustomerService = class extends AbstractService {
|
|
|
8692
8737
|
updateRequest.actions
|
|
8693
8738
|
);
|
|
8694
8739
|
const result = this._expandWithId(request, updatedResource.id);
|
|
8695
|
-
|
|
8740
|
+
response.status(200).send(result);
|
|
8696
8741
|
}
|
|
8697
8742
|
deleteMe(request, response) {
|
|
8698
8743
|
const resource = this.repository.deleteMe(getRepositoryContext(request));
|
|
8699
8744
|
if (!resource) {
|
|
8700
|
-
|
|
8745
|
+
response.sendStatus(404);
|
|
8746
|
+
return;
|
|
8701
8747
|
}
|
|
8702
|
-
|
|
8748
|
+
response.status(200).send(resource);
|
|
8703
8749
|
}
|
|
8704
8750
|
signUp(request, response) {
|
|
8705
8751
|
const draft = request.body;
|
|
@@ -8708,28 +8754,28 @@ var MyCustomerService = class extends AbstractService {
|
|
|
8708
8754
|
draft
|
|
8709
8755
|
);
|
|
8710
8756
|
const result = this._expandWithId(request, resource.id);
|
|
8711
|
-
|
|
8757
|
+
response.status(this.createStatusCode).send({ customer: result });
|
|
8712
8758
|
}
|
|
8713
8759
|
changePassword(request, response) {
|
|
8714
8760
|
const customer = this.repository.changePassword(
|
|
8715
8761
|
getRepositoryContext(request),
|
|
8716
8762
|
request.body
|
|
8717
8763
|
);
|
|
8718
|
-
|
|
8764
|
+
response.status(200).send(customer);
|
|
8719
8765
|
}
|
|
8720
8766
|
resetPassword(request, response) {
|
|
8721
8767
|
const customer = this.repository.passwordReset(
|
|
8722
8768
|
getRepositoryContext(request),
|
|
8723
8769
|
request.body
|
|
8724
8770
|
);
|
|
8725
|
-
|
|
8771
|
+
response.status(200).send(customer);
|
|
8726
8772
|
}
|
|
8727
8773
|
emailConfirm(request, response) {
|
|
8728
8774
|
const customer = this.repository.confirmEmail(
|
|
8729
8775
|
getRepositoryContext(request),
|
|
8730
8776
|
request.body
|
|
8731
8777
|
);
|
|
8732
|
-
|
|
8778
|
+
response.status(200).send(customer);
|
|
8733
8779
|
}
|
|
8734
8780
|
signIn(request, response) {
|
|
8735
8781
|
const { email, password } = request.body;
|
|
@@ -8738,7 +8784,7 @@ var MyCustomerService = class extends AbstractService {
|
|
|
8738
8784
|
where: [`email = "${email}"`, `password = "${encodedPassword}"`]
|
|
8739
8785
|
});
|
|
8740
8786
|
if (result.count === 0) {
|
|
8741
|
-
|
|
8787
|
+
response.status(400).send({
|
|
8742
8788
|
message: "Account with the given credentials not found.",
|
|
8743
8789
|
errors: [
|
|
8744
8790
|
{
|
|
@@ -8747,13 +8793,14 @@ var MyCustomerService = class extends AbstractService {
|
|
|
8747
8793
|
}
|
|
8748
8794
|
]
|
|
8749
8795
|
});
|
|
8796
|
+
return;
|
|
8750
8797
|
}
|
|
8751
|
-
|
|
8798
|
+
response.status(200).send({ customer: result.results[0] });
|
|
8752
8799
|
}
|
|
8753
8800
|
};
|
|
8754
8801
|
|
|
8755
8802
|
// src/services/my-order.ts
|
|
8756
|
-
import { Router as
|
|
8803
|
+
import { Router as Router9 } from "express";
|
|
8757
8804
|
var MyOrderService = class extends AbstractService {
|
|
8758
8805
|
repository;
|
|
8759
8806
|
constructor(parent, repository) {
|
|
@@ -8765,7 +8812,7 @@ var MyOrderService = class extends AbstractService {
|
|
|
8765
8812
|
}
|
|
8766
8813
|
registerRoutes(parent) {
|
|
8767
8814
|
const basePath = this.getBasePath();
|
|
8768
|
-
const router =
|
|
8815
|
+
const router = Router9({ mergeParams: true });
|
|
8769
8816
|
this.extraRoutes(router);
|
|
8770
8817
|
router.get("/orders/", this.get.bind(this));
|
|
8771
8818
|
router.get("/orders/:id", this.getWithId.bind(this));
|
|
@@ -8823,7 +8870,7 @@ var OrderService = class extends AbstractService {
|
|
|
8823
8870
|
getRepositoryContext(request),
|
|
8824
8871
|
importDraft
|
|
8825
8872
|
);
|
|
8826
|
-
|
|
8873
|
+
response.status(200).send(resource);
|
|
8827
8874
|
}
|
|
8828
8875
|
getWithOrderNumber(request, response) {
|
|
8829
8876
|
const resource = this.repository.getWithOrderNumber(
|
|
@@ -8833,9 +8880,10 @@ var OrderService = class extends AbstractService {
|
|
|
8833
8880
|
request.query
|
|
8834
8881
|
);
|
|
8835
8882
|
if (resource) {
|
|
8836
|
-
|
|
8883
|
+
response.status(200).send(resource);
|
|
8884
|
+
return;
|
|
8837
8885
|
}
|
|
8838
|
-
|
|
8886
|
+
response.sendStatus(404);
|
|
8839
8887
|
}
|
|
8840
8888
|
};
|
|
8841
8889
|
|
|
@@ -8870,7 +8918,7 @@ var ProductService = class extends AbstractService {
|
|
|
8870
8918
|
getRepositoryContext(request),
|
|
8871
8919
|
searchBody
|
|
8872
8920
|
);
|
|
8873
|
-
|
|
8921
|
+
response.status(200).send(resource);
|
|
8874
8922
|
}
|
|
8875
8923
|
};
|
|
8876
8924
|
|
|
@@ -8909,7 +8957,7 @@ var ProductProjectionService = class extends AbstractService {
|
|
|
8909
8957
|
limit: limit !== void 0 ? Number(limit) : void 0,
|
|
8910
8958
|
offset: offset !== void 0 ? Number(offset) : void 0
|
|
8911
8959
|
});
|
|
8912
|
-
|
|
8960
|
+
response.status(200).send(result);
|
|
8913
8961
|
}
|
|
8914
8962
|
search(request, response) {
|
|
8915
8963
|
const query = request.query;
|
|
@@ -8932,7 +8980,7 @@ var ProductProjectionService = class extends AbstractService {
|
|
|
8932
8980
|
getRepositoryContext(request),
|
|
8933
8981
|
searchParams
|
|
8934
8982
|
);
|
|
8935
|
-
|
|
8983
|
+
response.status(200).send(resource);
|
|
8936
8984
|
}
|
|
8937
8985
|
};
|
|
8938
8986
|
|
|
@@ -9025,7 +9073,8 @@ var ShippingMethodService = class extends AbstractService {
|
|
|
9025
9073
|
matchingCart(request, response) {
|
|
9026
9074
|
const cartId = queryParamsValue(request.query.cartId);
|
|
9027
9075
|
if (!cartId) {
|
|
9028
|
-
|
|
9076
|
+
response.status(400).send();
|
|
9077
|
+
return;
|
|
9029
9078
|
}
|
|
9030
9079
|
const result = this.repository.matchingCart(
|
|
9031
9080
|
getRepositoryContext(request),
|
|
@@ -9034,7 +9083,8 @@ var ShippingMethodService = class extends AbstractService {
|
|
|
9034
9083
|
expand: this._parseParam(request.query.expand)
|
|
9035
9084
|
}
|
|
9036
9085
|
);
|
|
9037
|
-
|
|
9086
|
+
response.status(200).send(result);
|
|
9087
|
+
return;
|
|
9038
9088
|
}
|
|
9039
9089
|
};
|
|
9040
9090
|
|
|
@@ -9218,7 +9268,7 @@ var ProjectService = class {
|
|
|
9218
9268
|
}
|
|
9219
9269
|
get(request, response) {
|
|
9220
9270
|
const project = this.repository.get(getRepositoryContext(request));
|
|
9221
|
-
|
|
9271
|
+
response.status(200).send(project);
|
|
9222
9272
|
}
|
|
9223
9273
|
post(request, response) {
|
|
9224
9274
|
const updateRequest = validateData(
|
|
@@ -9227,7 +9277,8 @@ var ProjectService = class {
|
|
|
9227
9277
|
);
|
|
9228
9278
|
const project = this.repository.get(getRepositoryContext(request));
|
|
9229
9279
|
if (!project) {
|
|
9230
|
-
|
|
9280
|
+
response.sendStatus(404);
|
|
9281
|
+
return;
|
|
9231
9282
|
}
|
|
9232
9283
|
const updatedResource = this.repository.processUpdateActions(
|
|
9233
9284
|
getRepositoryContext(request),
|
|
@@ -9235,7 +9286,7 @@ var ProjectService = class {
|
|
|
9235
9286
|
updateRequest.version,
|
|
9236
9287
|
updateRequest.actions
|
|
9237
9288
|
);
|
|
9238
|
-
|
|
9289
|
+
response.status(200).send(updatedResource);
|
|
9239
9290
|
}
|
|
9240
9291
|
};
|
|
9241
9292
|
|
|
@@ -9244,7 +9295,7 @@ var AbstractStorage = class {
|
|
|
9244
9295
|
};
|
|
9245
9296
|
|
|
9246
9297
|
// src/storage/in-memory.ts
|
|
9247
|
-
import assert5 from "assert";
|
|
9298
|
+
import assert5 from "node:assert";
|
|
9248
9299
|
var InMemoryStorage = class extends AbstractStorage {
|
|
9249
9300
|
resources = {};
|
|
9250
9301
|
projects = {};
|
|
@@ -9291,8 +9342,7 @@ var InMemoryStorage = class extends AbstractStorage {
|
|
|
9291
9342
|
getProject = (projectKey) => this.addProject(projectKey);
|
|
9292
9343
|
// Expand resolves a nested reference and injects the object in the given obj
|
|
9293
9344
|
expand = (projectKey, obj, clause) => {
|
|
9294
|
-
if (!clause)
|
|
9295
|
-
return obj;
|
|
9345
|
+
if (!clause) return obj;
|
|
9296
9346
|
const newObj = cloneObject(obj);
|
|
9297
9347
|
if (Array.isArray(clause)) {
|
|
9298
9348
|
for (const c of clause) {
|
|
@@ -9323,15 +9373,13 @@ var InMemoryStorage = class extends AbstractStorage {
|
|
|
9323
9373
|
this._resolveReference(projectKey, reference, params.rest);
|
|
9324
9374
|
} else if (params.index === "*") {
|
|
9325
9375
|
const reference = obj[params.element];
|
|
9326
|
-
if (reference === void 0 || !Array.isArray(reference))
|
|
9327
|
-
return;
|
|
9376
|
+
if (reference === void 0 || !Array.isArray(reference)) return;
|
|
9328
9377
|
for (const itemRef of reference) {
|
|
9329
9378
|
this._resolveReference(projectKey, itemRef, params.rest);
|
|
9330
9379
|
}
|
|
9331
9380
|
} else {
|
|
9332
9381
|
const reference = obj[params.element][params.index];
|
|
9333
|
-
if (reference === void 0)
|
|
9334
|
-
return;
|
|
9382
|
+
if (reference === void 0) return;
|
|
9335
9383
|
this._resolveReference(projectKey, reference, params.rest);
|
|
9336
9384
|
}
|
|
9337
9385
|
};
|
|
@@ -9542,8 +9590,7 @@ var InMemoryStorage = class extends AbstractStorage {
|
|
|
9542
9590
|
});
|
|
9543
9591
|
}
|
|
9544
9592
|
_resolveReference(projectKey, reference, expand) {
|
|
9545
|
-
if (reference === void 0)
|
|
9546
|
-
return;
|
|
9593
|
+
if (reference === void 0) return;
|
|
9547
9594
|
if (reference.typeId !== void 0 && (reference.id !== void 0 || reference.key !== void 0)) {
|
|
9548
9595
|
if (!reference.obj) {
|
|
9549
9596
|
reference.obj = this.getByResourceIdentifier(projectKey, {
|
|
@@ -9685,22 +9732,25 @@ var CommercetoolsMock = class {
|
|
|
9685
9732
|
app.use((err, req, resp, next) => {
|
|
9686
9733
|
if (err instanceof CommercetoolsError) {
|
|
9687
9734
|
if (err.errors?.length > 0) {
|
|
9688
|
-
|
|
9735
|
+
resp.status(err.statusCode).send({
|
|
9689
9736
|
statusCode: err.statusCode,
|
|
9690
9737
|
message: err.message,
|
|
9691
9738
|
errors: err.errors
|
|
9692
9739
|
});
|
|
9740
|
+
return;
|
|
9693
9741
|
}
|
|
9694
|
-
|
|
9742
|
+
resp.status(err.statusCode).send({
|
|
9695
9743
|
statusCode: err.statusCode,
|
|
9696
9744
|
message: err.message,
|
|
9697
9745
|
errors: [err.info]
|
|
9698
9746
|
});
|
|
9747
|
+
return;
|
|
9699
9748
|
}
|
|
9700
9749
|
console.error(err);
|
|
9701
|
-
|
|
9750
|
+
resp.status(500).send({
|
|
9702
9751
|
error: err.message
|
|
9703
9752
|
});
|
|
9753
|
+
return;
|
|
9704
9754
|
});
|
|
9705
9755
|
return app;
|
|
9706
9756
|
}
|