@labdigital/commercetools-mock 2.47.0 → 2.47.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +139 -144
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +142 -147
- 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/services/abstract.ts +25 -15
- 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
|
|
@@ -2843,7 +2836,7 @@ var CustomObjectRepository = class extends AbstractResourceRepository {
|
|
|
2843
2836
|
};
|
|
2844
2837
|
|
|
2845
2838
|
// src/repositories/customer/actions.ts
|
|
2846
|
-
import assert2 from "assert";
|
|
2839
|
+
import assert2 from "node:assert";
|
|
2847
2840
|
var CustomerUpdateHandler = class extends AbstractUpdateHandler {
|
|
2848
2841
|
addAddress(_context, resource, { address }) {
|
|
2849
2842
|
resource.addresses.push({
|
|
@@ -3679,7 +3672,7 @@ var MyCustomerRepository = class extends CustomerRepository {
|
|
|
3679
3672
|
};
|
|
3680
3673
|
|
|
3681
3674
|
// src/repositories/my-order.ts
|
|
3682
|
-
import assert3 from "assert";
|
|
3675
|
+
import assert3 from "node:assert";
|
|
3683
3676
|
var MyOrderRepository = class extends OrderRepository {
|
|
3684
3677
|
create(context, draft) {
|
|
3685
3678
|
assert3(draft.id, "draft.id is missing");
|
|
@@ -3987,19 +3980,16 @@ function toRegExp(str) {
|
|
|
3987
3980
|
return new RegExp(str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&"));
|
|
3988
3981
|
}
|
|
3989
3982
|
function normalize(regex) {
|
|
3990
|
-
if (typeof regex === "string")
|
|
3991
|
-
regex = toRegExp(regex);
|
|
3983
|
+
if (typeof regex === "string") regex = toRegExp(regex);
|
|
3992
3984
|
if (!regex.source.startsWith("^"))
|
|
3993
3985
|
return new RegExp(`^${regex.source}`, regex.flags);
|
|
3994
|
-
else
|
|
3995
|
-
return regex;
|
|
3986
|
+
else return regex;
|
|
3996
3987
|
}
|
|
3997
3988
|
function first(arr, predicate) {
|
|
3998
3989
|
let i = 0;
|
|
3999
3990
|
for (const item of arr) {
|
|
4000
3991
|
const result = predicate(item, i++);
|
|
4001
|
-
if (result)
|
|
4002
|
-
return { item, result };
|
|
3992
|
+
if (result) return { item, result };
|
|
4003
3993
|
}
|
|
4004
3994
|
}
|
|
4005
3995
|
var TokenTypes = class {
|
|
@@ -4163,8 +4153,7 @@ var Lexer = class {
|
|
|
4163
4153
|
*/
|
|
4164
4154
|
peek(position = this._state.position) {
|
|
4165
4155
|
const read = (i = position) => {
|
|
4166
|
-
if (i >= this._state.source.length)
|
|
4167
|
-
return EOF(this);
|
|
4156
|
+
if (i >= this._state.source.length) return EOF(this);
|
|
4168
4157
|
const n = this._tokenTypes.peek(this._state.source, i);
|
|
4169
4158
|
if (!n || !n.result) {
|
|
4170
4159
|
throw new Error(
|
|
@@ -4184,8 +4173,7 @@ var Lexer = class {
|
|
|
4184
4173
|
) : null;
|
|
4185
4174
|
};
|
|
4186
4175
|
const t = read();
|
|
4187
|
-
if (t)
|
|
4188
|
-
return t;
|
|
4176
|
+
if (t) return t;
|
|
4189
4177
|
let unexpected = this._state.source.substring(position, position + 1);
|
|
4190
4178
|
try {
|
|
4191
4179
|
this.peek(position + 1);
|
|
@@ -4207,8 +4195,7 @@ var Lexer = class {
|
|
|
4207
4195
|
*/
|
|
4208
4196
|
strpos(i) {
|
|
4209
4197
|
let lines = this._state.source.substring(0, i).split(/\r?\n/);
|
|
4210
|
-
if (!Array.isArray(lines))
|
|
4211
|
-
lines = [lines];
|
|
4198
|
+
if (!Array.isArray(lines)) lines = [lines];
|
|
4212
4199
|
const line = lines.length;
|
|
4213
4200
|
const column = lines[lines.length - 1].length + 1;
|
|
4214
4201
|
return { line, column };
|
|
@@ -4307,8 +4294,7 @@ var Parser = class {
|
|
|
4307
4294
|
* @returns {number} The binding power of the specified token type
|
|
4308
4295
|
*/
|
|
4309
4296
|
bp(tokenOrType) {
|
|
4310
|
-
if (tokenOrType == null)
|
|
4311
|
-
return Number.NEGATIVE_INFINITY;
|
|
4297
|
+
if (tokenOrType == null) return Number.NEGATIVE_INFINITY;
|
|
4312
4298
|
if (tokenOrType && typeof tokenOrType.isEof == "function" && tokenOrType.isEof())
|
|
4313
4299
|
return Number.NEGATIVE_INFINITY;
|
|
4314
4300
|
const type = this._type(tokenOrType);
|
|
@@ -4353,27 +4339,21 @@ var Parser = class {
|
|
|
4353
4339
|
parse(opts = { terminals: [0] }) {
|
|
4354
4340
|
const stop = opts.stop = opts.stop || createStop();
|
|
4355
4341
|
const check = () => {
|
|
4356
|
-
if (stop.isStopped())
|
|
4357
|
-
return false;
|
|
4342
|
+
if (stop.isStopped()) return false;
|
|
4358
4343
|
const t = this.lexer.peek();
|
|
4359
4344
|
const bp = this.bp(t);
|
|
4360
4345
|
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;
|
|
4346
|
+
if (!canContinue) return false;
|
|
4347
|
+
if (typeof rbpOrType == "number") return rbpOrType < bp;
|
|
4348
|
+
if (typeof rbpOrType == "string") return t.type != rbpOrType;
|
|
4367
4349
|
}, true);
|
|
4368
4350
|
};
|
|
4369
4351
|
const mkinfo = (token) => {
|
|
4370
4352
|
const bp = this.bp(token);
|
|
4371
4353
|
return { token, bp, stop, ctx: opts.ctx, options: opts };
|
|
4372
4354
|
};
|
|
4373
|
-
if (!opts.terminals)
|
|
4374
|
-
|
|
4375
|
-
if (opts.terminals.length == 0)
|
|
4376
|
-
opts.terminals.push(0);
|
|
4355
|
+
if (!opts.terminals) opts.terminals = [0];
|
|
4356
|
+
if (opts.terminals.length == 0) opts.terminals.push(0);
|
|
4377
4357
|
let left = this.nud(mkinfo(this.lexer.next()));
|
|
4378
4358
|
while (check()) {
|
|
4379
4359
|
const operator = this.lexer.next();
|
|
@@ -4576,8 +4556,7 @@ var generateMatchFunc = (filter) => {
|
|
|
4576
4556
|
throw new Error(`Syntax error while parsing '${filter}'.`);
|
|
4577
4557
|
}
|
|
4578
4558
|
return (obj) => {
|
|
4579
|
-
if (!result.children)
|
|
4580
|
-
return false;
|
|
4559
|
+
if (!result.children) return false;
|
|
4581
4560
|
return result.children.some((c) => c.match(obj));
|
|
4582
4561
|
};
|
|
4583
4562
|
};
|
|
@@ -6188,8 +6167,7 @@ var generateMatchFunc2 = (predicate) => {
|
|
|
6188
6167
|
const expr = parser.parse({ terminals: [")"] });
|
|
6189
6168
|
return (obj, vars) => {
|
|
6190
6169
|
const value = resolveValue(obj, left);
|
|
6191
|
-
if (!value)
|
|
6192
|
-
return false;
|
|
6170
|
+
if (!value) return false;
|
|
6193
6171
|
const maxDistance = resolveSymbol(expr[2], vars);
|
|
6194
6172
|
const distance = haversineDistance(
|
|
6195
6173
|
{
|
|
@@ -6327,8 +6305,7 @@ var ProductProjectionSearch = class {
|
|
|
6327
6305
|
};
|
|
6328
6306
|
}
|
|
6329
6307
|
getFacets(params, products) {
|
|
6330
|
-
if (!params.facet)
|
|
6331
|
-
return {};
|
|
6308
|
+
if (!params.facet) return {};
|
|
6332
6309
|
const result = {};
|
|
6333
6310
|
const regexp = new RegExp(/ counting products$/);
|
|
6334
6311
|
for (let facet of params.facet) {
|
|
@@ -6906,7 +6883,7 @@ var QuoteRepository = class extends AbstractResourceRepository {
|
|
|
6906
6883
|
};
|
|
6907
6884
|
|
|
6908
6885
|
// src/repositories/quote-request/index.ts
|
|
6909
|
-
import assert4 from "assert";
|
|
6886
|
+
import assert4 from "node:assert";
|
|
6910
6887
|
|
|
6911
6888
|
// src/repositories/quote-request/actions.ts
|
|
6912
6889
|
var QuoteRequestUpdateHandler = class extends AbstractUpdateHandler {
|
|
@@ -7102,8 +7079,7 @@ var ReviewRepository = class extends AbstractResourceRepository {
|
|
|
7102
7079
|
super("review", config);
|
|
7103
7080
|
}
|
|
7104
7081
|
create(context, draft) {
|
|
7105
|
-
if (!draft.target)
|
|
7106
|
-
throw new Error("Missing target");
|
|
7082
|
+
if (!draft.target) throw new Error("Missing target");
|
|
7107
7083
|
const resource = {
|
|
7108
7084
|
...getBaseResourceProperties(),
|
|
7109
7085
|
locale: draft.locale,
|
|
@@ -7709,8 +7685,7 @@ var StoreRepository = class extends AbstractResourceRepository {
|
|
|
7709
7685
|
}
|
|
7710
7686
|
};
|
|
7711
7687
|
var transformChannels = (context, storage, channels) => {
|
|
7712
|
-
if (!channels)
|
|
7713
|
-
return [];
|
|
7688
|
+
if (!channels) return [];
|
|
7714
7689
|
return channels.map(
|
|
7715
7690
|
(ref) => getReferenceFromResourceIdentifier(
|
|
7716
7691
|
ref,
|
|
@@ -8127,14 +8102,16 @@ var AbstractService = class {
|
|
|
8127
8102
|
}
|
|
8128
8103
|
}
|
|
8129
8104
|
const result = this.repository.query(getRepositoryContext(request), params);
|
|
8130
|
-
|
|
8105
|
+
response.status(200).send(result);
|
|
8106
|
+
return;
|
|
8131
8107
|
}
|
|
8132
8108
|
getWithId(request, response) {
|
|
8133
8109
|
const result = this._expandWithId(request, request.params.id);
|
|
8134
8110
|
if (!result) {
|
|
8135
|
-
|
|
8111
|
+
response.status(404).send();
|
|
8112
|
+
return;
|
|
8136
8113
|
}
|
|
8137
|
-
|
|
8114
|
+
response.status(200).send(result);
|
|
8138
8115
|
}
|
|
8139
8116
|
getWithKey(request, response) {
|
|
8140
8117
|
const result = this.repository.getByKey(
|
|
@@ -8144,9 +8121,11 @@ var AbstractService = class {
|
|
|
8144
8121
|
expand: this._parseParam(request.query.expand)
|
|
8145
8122
|
}
|
|
8146
8123
|
);
|
|
8147
|
-
if (!result)
|
|
8148
|
-
|
|
8149
|
-
|
|
8124
|
+
if (!result) {
|
|
8125
|
+
response.status(404).send();
|
|
8126
|
+
return;
|
|
8127
|
+
}
|
|
8128
|
+
response.status(200).send(result);
|
|
8150
8129
|
}
|
|
8151
8130
|
deleteWithId(request, response) {
|
|
8152
8131
|
const result = this.repository.delete(
|
|
@@ -8157,9 +8136,10 @@ var AbstractService = class {
|
|
|
8157
8136
|
}
|
|
8158
8137
|
);
|
|
8159
8138
|
if (!result) {
|
|
8160
|
-
|
|
8139
|
+
response.status(404).send("Not found");
|
|
8140
|
+
return;
|
|
8161
8141
|
}
|
|
8162
|
-
|
|
8142
|
+
response.status(200).send(result);
|
|
8163
8143
|
}
|
|
8164
8144
|
deleteWithKey(request, response) {
|
|
8165
8145
|
const resource = this.repository.getByKey(
|
|
@@ -8167,7 +8147,8 @@ var AbstractService = class {
|
|
|
8167
8147
|
request.params.key
|
|
8168
8148
|
);
|
|
8169
8149
|
if (!resource) {
|
|
8170
|
-
|
|
8150
|
+
response.status(404).send("Not found");
|
|
8151
|
+
return;
|
|
8171
8152
|
}
|
|
8172
8153
|
const result = this.repository.delete(
|
|
8173
8154
|
getRepositoryContext(request),
|
|
@@ -8177,9 +8158,10 @@ var AbstractService = class {
|
|
|
8177
8158
|
}
|
|
8178
8159
|
);
|
|
8179
8160
|
if (!result) {
|
|
8180
|
-
|
|
8161
|
+
response.status(404).send("Not found");
|
|
8162
|
+
return;
|
|
8181
8163
|
}
|
|
8182
|
-
|
|
8164
|
+
response.status(200).send(result);
|
|
8183
8165
|
}
|
|
8184
8166
|
post(request, response) {
|
|
8185
8167
|
const draft = request.body;
|
|
@@ -8188,7 +8170,7 @@ var AbstractService = class {
|
|
|
8188
8170
|
draft
|
|
8189
8171
|
);
|
|
8190
8172
|
const result = this._expandWithId(request, resource.id);
|
|
8191
|
-
|
|
8173
|
+
response.status(this.createStatusCode).send(result);
|
|
8192
8174
|
}
|
|
8193
8175
|
postWithId(request, response) {
|
|
8194
8176
|
const updateRequest = validateData(
|
|
@@ -8200,7 +8182,8 @@ var AbstractService = class {
|
|
|
8200
8182
|
request.params.id
|
|
8201
8183
|
);
|
|
8202
8184
|
if (!resource) {
|
|
8203
|
-
|
|
8185
|
+
response.status(404).send("Not found");
|
|
8186
|
+
return;
|
|
8204
8187
|
}
|
|
8205
8188
|
const updatedResource = this.repository.processUpdateActions(
|
|
8206
8189
|
getRepositoryContext(request),
|
|
@@ -8209,7 +8192,7 @@ var AbstractService = class {
|
|
|
8209
8192
|
updateRequest.actions
|
|
8210
8193
|
);
|
|
8211
8194
|
const result = this._expandWithId(request, updatedResource.id);
|
|
8212
|
-
|
|
8195
|
+
response.status(200).send(result);
|
|
8213
8196
|
}
|
|
8214
8197
|
postWithKey(request, response) {
|
|
8215
8198
|
const updateRequest = validateData(
|
|
@@ -8221,7 +8204,8 @@ var AbstractService = class {
|
|
|
8221
8204
|
request.params.key
|
|
8222
8205
|
);
|
|
8223
8206
|
if (!resource) {
|
|
8224
|
-
|
|
8207
|
+
response.status(404).send("Not found");
|
|
8208
|
+
return;
|
|
8225
8209
|
}
|
|
8226
8210
|
const updatedResource = this.repository.processUpdateActions(
|
|
8227
8211
|
getRepositoryContext(request),
|
|
@@ -8230,7 +8214,7 @@ var AbstractService = class {
|
|
|
8230
8214
|
updateRequest.actions
|
|
8231
8215
|
);
|
|
8232
8216
|
const result = this._expandWithId(request, updatedResource.id);
|
|
8233
|
-
|
|
8217
|
+
response.status(200).send(result);
|
|
8234
8218
|
}
|
|
8235
8219
|
_expandWithId(request, resourceId) {
|
|
8236
8220
|
const result = this.repository.get(
|
|
@@ -8367,7 +8351,8 @@ var CartService = class extends AbstractService {
|
|
|
8367
8351
|
const context = getRepositoryContext(request);
|
|
8368
8352
|
const cartOrOrder = request.body.reference.typeId === "order" ? this.orderRepository.get(context, request.body.reference.id) : this.repository.get(context, request.body.reference.id);
|
|
8369
8353
|
if (!cartOrOrder) {
|
|
8370
|
-
|
|
8354
|
+
response.status(400).send();
|
|
8355
|
+
return;
|
|
8371
8356
|
}
|
|
8372
8357
|
const cartDraft = {
|
|
8373
8358
|
...cartOrOrder,
|
|
@@ -8382,7 +8367,7 @@ var CartService = class extends AbstractService {
|
|
|
8382
8367
|
}))
|
|
8383
8368
|
};
|
|
8384
8369
|
const newCart = this.repository.create(context, cartDraft);
|
|
8385
|
-
|
|
8370
|
+
response.status(200).send(newCart);
|
|
8386
8371
|
}
|
|
8387
8372
|
};
|
|
8388
8373
|
|
|
@@ -8454,7 +8439,7 @@ var CustomObjectService = class extends AbstractService {
|
|
|
8454
8439
|
offset: offset !== void 0 ? Number(offset) : void 0
|
|
8455
8440
|
}
|
|
8456
8441
|
);
|
|
8457
|
-
|
|
8442
|
+
response.status(200).send(result);
|
|
8458
8443
|
}
|
|
8459
8444
|
getWithContainerAndKey(request, response) {
|
|
8460
8445
|
const result = this.repository.getWithContainerAndKey(
|
|
@@ -8463,9 +8448,10 @@ var CustomObjectService = class extends AbstractService {
|
|
|
8463
8448
|
request.params.key
|
|
8464
8449
|
);
|
|
8465
8450
|
if (!result) {
|
|
8466
|
-
|
|
8451
|
+
response.status(404).send("Not Found");
|
|
8452
|
+
return;
|
|
8467
8453
|
}
|
|
8468
|
-
|
|
8454
|
+
response.status(200).send(result);
|
|
8469
8455
|
}
|
|
8470
8456
|
createWithContainerAndKey(request, response) {
|
|
8471
8457
|
const draft = {
|
|
@@ -8474,7 +8460,7 @@ var CustomObjectService = class extends AbstractService {
|
|
|
8474
8460
|
container: request.params.container
|
|
8475
8461
|
};
|
|
8476
8462
|
const result = this.repository.create(getRepositoryContext(request), draft);
|
|
8477
|
-
|
|
8463
|
+
response.status(200).send(result);
|
|
8478
8464
|
}
|
|
8479
8465
|
deleteWithContainerAndKey(request, response) {
|
|
8480
8466
|
const current = this.repository.getWithContainerAndKey(
|
|
@@ -8483,13 +8469,14 @@ var CustomObjectService = class extends AbstractService {
|
|
|
8483
8469
|
request.params.key
|
|
8484
8470
|
);
|
|
8485
8471
|
if (!current) {
|
|
8486
|
-
|
|
8472
|
+
response.status(404).send("Not Found");
|
|
8473
|
+
return;
|
|
8487
8474
|
}
|
|
8488
8475
|
const result = this.repository.delete(
|
|
8489
8476
|
getRepositoryContext(request),
|
|
8490
8477
|
current.id
|
|
8491
8478
|
);
|
|
8492
|
-
|
|
8479
|
+
response.status(200).send(result);
|
|
8493
8480
|
}
|
|
8494
8481
|
};
|
|
8495
8482
|
|
|
@@ -8518,21 +8505,21 @@ var CustomerService = class extends AbstractService {
|
|
|
8518
8505
|
const result = {
|
|
8519
8506
|
customer: expanded
|
|
8520
8507
|
};
|
|
8521
|
-
|
|
8508
|
+
response.status(this.createStatusCode).send(result);
|
|
8522
8509
|
}
|
|
8523
8510
|
passwordResetToken(request, response) {
|
|
8524
8511
|
const customer = this.repository.passwordResetToken(
|
|
8525
8512
|
getRepositoryContext(request),
|
|
8526
8513
|
request.body
|
|
8527
8514
|
);
|
|
8528
|
-
|
|
8515
|
+
response.status(200).send(customer);
|
|
8529
8516
|
}
|
|
8530
8517
|
passwordReset(request, response) {
|
|
8531
8518
|
const customer = this.repository.passwordReset(
|
|
8532
8519
|
getRepositoryContext(request),
|
|
8533
8520
|
request.body
|
|
8534
8521
|
);
|
|
8535
|
-
|
|
8522
|
+
response.status(200).send(customer);
|
|
8536
8523
|
}
|
|
8537
8524
|
confirmEmailToken(request, response) {
|
|
8538
8525
|
const id = request.body.id;
|
|
@@ -8540,7 +8527,7 @@ var CustomerService = class extends AbstractService {
|
|
|
8540
8527
|
getRepositoryContext(request),
|
|
8541
8528
|
id
|
|
8542
8529
|
);
|
|
8543
|
-
|
|
8530
|
+
response.status(200).send(token);
|
|
8544
8531
|
}
|
|
8545
8532
|
};
|
|
8546
8533
|
|
|
@@ -8638,9 +8625,10 @@ var MyCartService = class extends AbstractService {
|
|
|
8638
8625
|
activeCart(request, response) {
|
|
8639
8626
|
const resource = this.repository.getActiveCart(request.params.projectKey);
|
|
8640
8627
|
if (!resource) {
|
|
8641
|
-
|
|
8628
|
+
response.status(404).send("Not found");
|
|
8629
|
+
return;
|
|
8642
8630
|
}
|
|
8643
|
-
|
|
8631
|
+
response.status(200).send(resource);
|
|
8644
8632
|
}
|
|
8645
8633
|
};
|
|
8646
8634
|
|
|
@@ -8672,14 +8660,16 @@ var MyCustomerService = class extends AbstractService {
|
|
|
8672
8660
|
getMe(request, response) {
|
|
8673
8661
|
const resource = this.repository.getMe(getRepositoryContext(request));
|
|
8674
8662
|
if (!resource) {
|
|
8675
|
-
|
|
8663
|
+
response.status(404).send("Not found");
|
|
8664
|
+
return;
|
|
8676
8665
|
}
|
|
8677
|
-
|
|
8666
|
+
response.status(200).send(resource);
|
|
8678
8667
|
}
|
|
8679
8668
|
updateMe(request, response) {
|
|
8680
8669
|
const resource = this.repository.getMe(getRepositoryContext(request));
|
|
8681
8670
|
if (!resource) {
|
|
8682
|
-
|
|
8671
|
+
response.status(404).send("Not found");
|
|
8672
|
+
return;
|
|
8683
8673
|
}
|
|
8684
8674
|
const updateRequest = validateData(
|
|
8685
8675
|
request.body,
|
|
@@ -8692,14 +8682,15 @@ var MyCustomerService = class extends AbstractService {
|
|
|
8692
8682
|
updateRequest.actions
|
|
8693
8683
|
);
|
|
8694
8684
|
const result = this._expandWithId(request, updatedResource.id);
|
|
8695
|
-
|
|
8685
|
+
response.status(200).send(result);
|
|
8696
8686
|
}
|
|
8697
8687
|
deleteMe(request, response) {
|
|
8698
8688
|
const resource = this.repository.deleteMe(getRepositoryContext(request));
|
|
8699
8689
|
if (!resource) {
|
|
8700
|
-
|
|
8690
|
+
response.status(404).send("Not found");
|
|
8691
|
+
return;
|
|
8701
8692
|
}
|
|
8702
|
-
|
|
8693
|
+
response.status(200).send(resource);
|
|
8703
8694
|
}
|
|
8704
8695
|
signUp(request, response) {
|
|
8705
8696
|
const draft = request.body;
|
|
@@ -8708,28 +8699,28 @@ var MyCustomerService = class extends AbstractService {
|
|
|
8708
8699
|
draft
|
|
8709
8700
|
);
|
|
8710
8701
|
const result = this._expandWithId(request, resource.id);
|
|
8711
|
-
|
|
8702
|
+
response.status(this.createStatusCode).send({ customer: result });
|
|
8712
8703
|
}
|
|
8713
8704
|
changePassword(request, response) {
|
|
8714
8705
|
const customer = this.repository.changePassword(
|
|
8715
8706
|
getRepositoryContext(request),
|
|
8716
8707
|
request.body
|
|
8717
8708
|
);
|
|
8718
|
-
|
|
8709
|
+
response.status(200).send(customer);
|
|
8719
8710
|
}
|
|
8720
8711
|
resetPassword(request, response) {
|
|
8721
8712
|
const customer = this.repository.passwordReset(
|
|
8722
8713
|
getRepositoryContext(request),
|
|
8723
8714
|
request.body
|
|
8724
8715
|
);
|
|
8725
|
-
|
|
8716
|
+
response.status(200).send(customer);
|
|
8726
8717
|
}
|
|
8727
8718
|
emailConfirm(request, response) {
|
|
8728
8719
|
const customer = this.repository.confirmEmail(
|
|
8729
8720
|
getRepositoryContext(request),
|
|
8730
8721
|
request.body
|
|
8731
8722
|
);
|
|
8732
|
-
|
|
8723
|
+
response.status(200).send(customer);
|
|
8733
8724
|
}
|
|
8734
8725
|
signIn(request, response) {
|
|
8735
8726
|
const { email, password } = request.body;
|
|
@@ -8738,7 +8729,7 @@ var MyCustomerService = class extends AbstractService {
|
|
|
8738
8729
|
where: [`email = "${email}"`, `password = "${encodedPassword}"`]
|
|
8739
8730
|
});
|
|
8740
8731
|
if (result.count === 0) {
|
|
8741
|
-
|
|
8732
|
+
response.status(400).send({
|
|
8742
8733
|
message: "Account with the given credentials not found.",
|
|
8743
8734
|
errors: [
|
|
8744
8735
|
{
|
|
@@ -8747,8 +8738,9 @@ var MyCustomerService = class extends AbstractService {
|
|
|
8747
8738
|
}
|
|
8748
8739
|
]
|
|
8749
8740
|
});
|
|
8741
|
+
return;
|
|
8750
8742
|
}
|
|
8751
|
-
|
|
8743
|
+
response.status(200).send({ customer: result.results[0] });
|
|
8752
8744
|
}
|
|
8753
8745
|
};
|
|
8754
8746
|
|
|
@@ -8823,7 +8815,7 @@ var OrderService = class extends AbstractService {
|
|
|
8823
8815
|
getRepositoryContext(request),
|
|
8824
8816
|
importDraft
|
|
8825
8817
|
);
|
|
8826
|
-
|
|
8818
|
+
response.status(200).send(resource);
|
|
8827
8819
|
}
|
|
8828
8820
|
getWithOrderNumber(request, response) {
|
|
8829
8821
|
const resource = this.repository.getWithOrderNumber(
|
|
@@ -8833,9 +8825,10 @@ var OrderService = class extends AbstractService {
|
|
|
8833
8825
|
request.query
|
|
8834
8826
|
);
|
|
8835
8827
|
if (resource) {
|
|
8836
|
-
|
|
8828
|
+
response.status(200).send(resource);
|
|
8829
|
+
return;
|
|
8837
8830
|
}
|
|
8838
|
-
|
|
8831
|
+
response.status(404).send("Not found");
|
|
8839
8832
|
}
|
|
8840
8833
|
};
|
|
8841
8834
|
|
|
@@ -8870,7 +8863,7 @@ var ProductService = class extends AbstractService {
|
|
|
8870
8863
|
getRepositoryContext(request),
|
|
8871
8864
|
searchBody
|
|
8872
8865
|
);
|
|
8873
|
-
|
|
8866
|
+
response.status(200).send(resource);
|
|
8874
8867
|
}
|
|
8875
8868
|
};
|
|
8876
8869
|
|
|
@@ -8909,7 +8902,7 @@ var ProductProjectionService = class extends AbstractService {
|
|
|
8909
8902
|
limit: limit !== void 0 ? Number(limit) : void 0,
|
|
8910
8903
|
offset: offset !== void 0 ? Number(offset) : void 0
|
|
8911
8904
|
});
|
|
8912
|
-
|
|
8905
|
+
response.status(200).send(result);
|
|
8913
8906
|
}
|
|
8914
8907
|
search(request, response) {
|
|
8915
8908
|
const query = request.query;
|
|
@@ -8932,7 +8925,7 @@ var ProductProjectionService = class extends AbstractService {
|
|
|
8932
8925
|
getRepositoryContext(request),
|
|
8933
8926
|
searchParams
|
|
8934
8927
|
);
|
|
8935
|
-
|
|
8928
|
+
response.status(200).send(resource);
|
|
8936
8929
|
}
|
|
8937
8930
|
};
|
|
8938
8931
|
|
|
@@ -9025,7 +9018,8 @@ var ShippingMethodService = class extends AbstractService {
|
|
|
9025
9018
|
matchingCart(request, response) {
|
|
9026
9019
|
const cartId = queryParamsValue(request.query.cartId);
|
|
9027
9020
|
if (!cartId) {
|
|
9028
|
-
|
|
9021
|
+
response.status(400).send();
|
|
9022
|
+
return;
|
|
9029
9023
|
}
|
|
9030
9024
|
const result = this.repository.matchingCart(
|
|
9031
9025
|
getRepositoryContext(request),
|
|
@@ -9034,7 +9028,8 @@ var ShippingMethodService = class extends AbstractService {
|
|
|
9034
9028
|
expand: this._parseParam(request.query.expand)
|
|
9035
9029
|
}
|
|
9036
9030
|
);
|
|
9037
|
-
|
|
9031
|
+
response.status(200).send(result);
|
|
9032
|
+
return;
|
|
9038
9033
|
}
|
|
9039
9034
|
};
|
|
9040
9035
|
|
|
@@ -9218,7 +9213,7 @@ var ProjectService = class {
|
|
|
9218
9213
|
}
|
|
9219
9214
|
get(request, response) {
|
|
9220
9215
|
const project = this.repository.get(getRepositoryContext(request));
|
|
9221
|
-
|
|
9216
|
+
response.status(200).send(project);
|
|
9222
9217
|
}
|
|
9223
9218
|
post(request, response) {
|
|
9224
9219
|
const updateRequest = validateData(
|
|
@@ -9227,7 +9222,8 @@ var ProjectService = class {
|
|
|
9227
9222
|
);
|
|
9228
9223
|
const project = this.repository.get(getRepositoryContext(request));
|
|
9229
9224
|
if (!project) {
|
|
9230
|
-
|
|
9225
|
+
response.status(404).send({});
|
|
9226
|
+
return;
|
|
9231
9227
|
}
|
|
9232
9228
|
const updatedResource = this.repository.processUpdateActions(
|
|
9233
9229
|
getRepositoryContext(request),
|
|
@@ -9235,7 +9231,7 @@ var ProjectService = class {
|
|
|
9235
9231
|
updateRequest.version,
|
|
9236
9232
|
updateRequest.actions
|
|
9237
9233
|
);
|
|
9238
|
-
|
|
9234
|
+
response.status(200).send(updatedResource);
|
|
9239
9235
|
}
|
|
9240
9236
|
};
|
|
9241
9237
|
|
|
@@ -9244,7 +9240,7 @@ var AbstractStorage = class {
|
|
|
9244
9240
|
};
|
|
9245
9241
|
|
|
9246
9242
|
// src/storage/in-memory.ts
|
|
9247
|
-
import assert5 from "assert";
|
|
9243
|
+
import assert5 from "node:assert";
|
|
9248
9244
|
var InMemoryStorage = class extends AbstractStorage {
|
|
9249
9245
|
resources = {};
|
|
9250
9246
|
projects = {};
|
|
@@ -9291,8 +9287,7 @@ var InMemoryStorage = class extends AbstractStorage {
|
|
|
9291
9287
|
getProject = (projectKey) => this.addProject(projectKey);
|
|
9292
9288
|
// Expand resolves a nested reference and injects the object in the given obj
|
|
9293
9289
|
expand = (projectKey, obj, clause) => {
|
|
9294
|
-
if (!clause)
|
|
9295
|
-
return obj;
|
|
9290
|
+
if (!clause) return obj;
|
|
9296
9291
|
const newObj = cloneObject(obj);
|
|
9297
9292
|
if (Array.isArray(clause)) {
|
|
9298
9293
|
for (const c of clause) {
|
|
@@ -9323,15 +9318,13 @@ var InMemoryStorage = class extends AbstractStorage {
|
|
|
9323
9318
|
this._resolveReference(projectKey, reference, params.rest);
|
|
9324
9319
|
} else if (params.index === "*") {
|
|
9325
9320
|
const reference = obj[params.element];
|
|
9326
|
-
if (reference === void 0 || !Array.isArray(reference))
|
|
9327
|
-
return;
|
|
9321
|
+
if (reference === void 0 || !Array.isArray(reference)) return;
|
|
9328
9322
|
for (const itemRef of reference) {
|
|
9329
9323
|
this._resolveReference(projectKey, itemRef, params.rest);
|
|
9330
9324
|
}
|
|
9331
9325
|
} else {
|
|
9332
9326
|
const reference = obj[params.element][params.index];
|
|
9333
|
-
if (reference === void 0)
|
|
9334
|
-
return;
|
|
9327
|
+
if (reference === void 0) return;
|
|
9335
9328
|
this._resolveReference(projectKey, reference, params.rest);
|
|
9336
9329
|
}
|
|
9337
9330
|
};
|
|
@@ -9542,8 +9535,7 @@ var InMemoryStorage = class extends AbstractStorage {
|
|
|
9542
9535
|
});
|
|
9543
9536
|
}
|
|
9544
9537
|
_resolveReference(projectKey, reference, expand) {
|
|
9545
|
-
if (reference === void 0)
|
|
9546
|
-
return;
|
|
9538
|
+
if (reference === void 0) return;
|
|
9547
9539
|
if (reference.typeId !== void 0 && (reference.id !== void 0 || reference.key !== void 0)) {
|
|
9548
9540
|
if (!reference.obj) {
|
|
9549
9541
|
reference.obj = this.getByResourceIdentifier(projectKey, {
|
|
@@ -9685,22 +9677,25 @@ var CommercetoolsMock = class {
|
|
|
9685
9677
|
app.use((err, req, resp, next) => {
|
|
9686
9678
|
if (err instanceof CommercetoolsError) {
|
|
9687
9679
|
if (err.errors?.length > 0) {
|
|
9688
|
-
|
|
9680
|
+
resp.status(err.statusCode).send({
|
|
9689
9681
|
statusCode: err.statusCode,
|
|
9690
9682
|
message: err.message,
|
|
9691
9683
|
errors: err.errors
|
|
9692
9684
|
});
|
|
9685
|
+
return;
|
|
9693
9686
|
}
|
|
9694
|
-
|
|
9687
|
+
resp.status(err.statusCode).send({
|
|
9695
9688
|
statusCode: err.statusCode,
|
|
9696
9689
|
message: err.message,
|
|
9697
9690
|
errors: [err.info]
|
|
9698
9691
|
});
|
|
9692
|
+
return;
|
|
9699
9693
|
}
|
|
9700
9694
|
console.error(err);
|
|
9701
|
-
|
|
9695
|
+
resp.status(500).send({
|
|
9702
9696
|
error: err.message
|
|
9703
9697
|
});
|
|
9698
|
+
return;
|
|
9704
9699
|
});
|
|
9705
9700
|
return app;
|
|
9706
9701
|
}
|