From cab0a65772af9bbf49494d0c90addc80ee73ced1 Mon Sep 17 00:00:00 2001 From: 17-313 Date: Thu, 5 Sep 2024 20:43:03 +0300 Subject: [PATCH 1/2] refactoring attempt1 --- src/controllers/category.js | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/controllers/category.js b/src/controllers/category.js index 487ea21cce..5c02caae1a 100644 --- a/src/controllers/category.js +++ b/src/controllers/category.js @@ -29,7 +29,7 @@ categoryController.get = async function (req, res, next) { let currentPage = parseInt(req.query.page, 10) || 1; let topicIndex = utils.isNumber(req.params.topic_index) ? parseInt(req.params.topic_index, 10) - 1 : 0; - if ((req.params.topic_index && !utils.isNumber(req.params.topic_index)) || !utils.isNumber(cid)) { + if (isInvalidCatOrInd(req)) { return next(); } @@ -41,9 +41,7 @@ categoryController.get = async function (req, res, next) { user.auth.getFeedToken(req.uid), ]); - if (!categoryFields.slug || - (categoryFields && categoryFields.disabled) || - (userSettings.usePagination && currentPage < 1)) { + if (Cat(categoryFields, userSettings, currentPage)) { return next(); } if (topicIndex < 0) { @@ -158,6 +156,16 @@ categoryController.get = async function (req, res, next) { res.render('category', categoryData); }; +function isInvalidCatOrInd(req, cid) { + return (req.params.topic_index && !utils.isNumber(req.params.topic_index)) || !utils.isNumber(cid); +} + +function Cat(categoryFields, userSettings, currentPage) { + return (!categoryFields.slug || + (categoryFields && categoryFields.disabled) || + (userSettings.usePagination && currentPage < 1)); +} + async function buildBreadcrumbs(req, categoryData) { const breadcrumbs = [ { @@ -227,3 +235,4 @@ function addTags(categoryData, res, currentPage) { }); } } + From 0300f8b1cf3fc354e667b20017abef387642833e Mon Sep 17 00:00:00 2001 From: 17-313 Date: Thu, 5 Sep 2024 23:28:19 +0300 Subject: [PATCH 2/2] Fixed 139 to reduce complexity --- dump.rdb | Bin 0 -> 36743 bytes src/controllers/category.js | 22 +++++++++------------- 2 files changed, 9 insertions(+), 13 deletions(-) create mode 100644 dump.rdb diff --git a/dump.rdb b/dump.rdb new file mode 100644 index 0000000000000000000000000000000000000000..d9e536776d6d77095e1d2e0459bb38dacb85938d GIT binary patch literal 36743 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 M=z*Uch`r