diff --git a/dist/functions/getItems/index.js b/dist/functions/getItems/index.js index ec66569..f49109d 100644 --- a/dist/functions/getItems/index.js +++ b/dist/functions/getItems/index.js @@ -54,14 +54,14 @@ var getItems = function (config) { return function (req, res) { return __awaiter case 0: transactionHandler = defaultTo_1.default(config.defaultTransactionHandler)(config.beforeGetItems); return [4 /*yield*/, transactionHandler({ req: req, res: res }, function () { return __awaiter(_this, void 0, void 0, function () { - var _a, _b, _c, filter, sort, limit, createdFilter, _d, cursor, items, totalCount, responseHeaders, responseData, nestedObject, enveloped, responseObject, headers; + var _a, _b, _c, filter, sort, limit, createdFilter, _d, cursor, items, totalCount, count, responseHeaders, responseData, nestedObject, enveloped, responseObject, headers; return __generator(this, function (_e) { switch (_e.label) { case 0: filter = getJsonQueryParam_1.default(req.query, 'filter'); sort = !isNil_1.default(req.query.sort) ? getJsonQueryParam_1.default(req.query, 'sort') - : config.defaultSort; + : /* istanbul ignore next */ config.defaultSort; limit = getNumberQueryParam_1.default(req.query, 'limit', config.defaultPaginationLimit); createdFilter = config.createFilter({ filter: filter, req: req, res: res }); return [4 /*yield*/, config.service.getItems({ @@ -75,11 +75,15 @@ var getItems = function (config) { return function (req, res) { return __awaiter })]; case 1: _d = _e.sent(), cursor = _d.cursor, items = _d.items; + if (!(config.service.countItems !== undefined)) return [3 /*break*/, 3]; return [4 /*yield*/, config.service.countItems({ filter: createdFilter, })]; case 2: - totalCount = (_e.sent()).count; + count = (_e.sent()).count; + totalCount = count; + _e.label = 3; + case 3: responseHeaders = (_a = {}, _a[config.afterHeaderName] = cursor.after, _a[config.beforeHeaderName] = cursor.before, diff --git a/dist/functions/getItems/index.js.map b/dist/functions/getItems/index.js.map index 4fc0a25..4e5ce1e 100644 --- a/dist/functions/getItems/index.js.map +++ b/dist/functions/getItems/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/functions/getItems/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/functions/getItems/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 6bd35bf..c1e38f1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -425,9 +425,9 @@ } }, "@js-items/foundation": { - "version": "1.0.24", - "resolved": "https://registry.npmjs.org/@js-items/foundation/-/foundation-1.0.24.tgz", - "integrity": "sha512-Ukxq6nROGt4cdqN8QlVrDZyoSMnj2eLF3u9relAzelDq1B/TXz/64HIP3gtLBIAXwSbssvq6zDcsRBOkPKqZLQ==", + "version": "1.0.25", + "resolved": "https://registry.npmjs.org/@js-items/foundation/-/foundation-1.0.25.tgz", + "integrity": "sha512-xaBedVz/u+F1ZB9dB6jMQFJKWSZprlVTS/cFGPkhP7DaWNR84SiWBrAzaEE7RJ836+N4rKHlQYbeMsDBXLFh/w==", "dev": true, "requires": { "atob": "^2.1.2", @@ -3075,8 +3075,7 @@ "ansi-regex": { "version": "2.1.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "aproba": { "version": "1.2.0", @@ -3097,14 +3096,12 @@ "balanced-match": { "version": "1.0.0", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, "dev": true, - "optional": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -3119,20 +3116,17 @@ "code-point-at": { "version": "1.1.0", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "concat-map": { "version": "0.0.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "console-control-strings": { "version": "1.1.0", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "core-util-is": { "version": "1.0.2", @@ -3249,8 +3243,7 @@ "inherits": { "version": "2.0.3", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "ini": { "version": "1.3.5", @@ -3262,7 +3255,6 @@ "version": "1.0.0", "bundled": true, "dev": true, - "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -3277,7 +3269,6 @@ "version": "3.0.4", "bundled": true, "dev": true, - "optional": true, "requires": { "brace-expansion": "^1.1.7" } @@ -3285,14 +3276,12 @@ "minimist": { "version": "0.0.8", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "minipass": { "version": "2.3.5", "bundled": true, "dev": true, - "optional": true, "requires": { "safe-buffer": "^5.1.2", "yallist": "^3.0.0" @@ -3311,7 +3300,6 @@ "version": "0.5.1", "bundled": true, "dev": true, - "optional": true, "requires": { "minimist": "0.0.8" } @@ -3392,8 +3380,7 @@ "number-is-nan": { "version": "1.0.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "object-assign": { "version": "4.1.1", @@ -3405,7 +3392,6 @@ "version": "1.4.0", "bundled": true, "dev": true, - "optional": true, "requires": { "wrappy": "1" } @@ -3491,8 +3477,7 @@ "safe-buffer": { "version": "5.1.2", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "safer-buffer": { "version": "2.1.2", @@ -3528,7 +3513,6 @@ "version": "1.0.2", "bundled": true, "dev": true, - "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -3548,7 +3532,6 @@ "version": "3.0.1", "bundled": true, "dev": true, - "optional": true, "requires": { "ansi-regex": "^2.0.0" } @@ -3592,14 +3575,12 @@ "wrappy": { "version": "1.0.2", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "yallist": { "version": "3.0.3", "bundled": true, - "dev": true, - "optional": true + "dev": true } } }, diff --git a/package.json b/package.json index 80f9810..0a7f630 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,7 @@ }, "homepage": "https://github.com/js-items/express#readme", "devDependencies": { - "@js-items/foundation": "1.0.24", + "@js-items/foundation": "1.0.25", "@kube-js/semantic-release": "1.0.7", "@kube-js/tscommons": "1.0.5", "@types/dotenv": "6.1.1", diff --git a/src/functions/getItems/index.ts b/src/functions/getItems/index.ts index 9d2ee75..611fa8e 100644 --- a/src/functions/getItems/index.ts +++ b/src/functions/getItems/index.ts @@ -43,9 +43,15 @@ const getItems: RequestHandlerFactory = ( sort, }); - const { count: totalCount } = await config.service.countItems({ - filter: createdFilter, - }); + let totalCount; + + if (config.service.countItems !== undefined) { + const { count } = await config.service.countItems({ + filter: createdFilter, + }); + + totalCount = count; + } const responseHeaders: OutgoingHttpHeaders = { [config.afterHeaderName]: cursor.after,