From c1e909632c2f59cce44da8d25c59ac11ca5fa55c Mon Sep 17 00:00:00 2001 From: Sarim Faraz Date: Mon, 2 Sep 2024 15:18:00 +0300 Subject: [PATCH 1/4] made new functions in settings to make code complexity go from 16 to 15 and fixed some style issues --- src/user/settings.js | 43 +++++++++++++++++++++---------------------- 1 file changed, 21 insertions(+), 22 deletions(-) diff --git a/src/user/settings.js b/src/user/settings.js index d85a712ba6..6a8678c1b3 100644 --- a/src/user/settings.js +++ b/src/user/settings.js @@ -1,8 +1,6 @@ - 'use strict'; const validator = require('validator'); - const meta = require('../meta'); const db = require('../database'); const plugins = require('../plugins'); @@ -16,6 +14,7 @@ module.exports = function (User) { postsPerPage: 20, topicsPerPage: 20, }; + User.getSettings = async function (uid) { if (parseInt(uid, 10) <= 0) { const isSpider = parseInt(uid, 10) === -1; @@ -96,32 +95,30 @@ module.exports = function (User) { return defaultValue; } + // Co-pilot assisted code + function validatePaginationValue(value, max) { + if (!value || parseInt(value, 10) <= 1 || parseInt(value, 10) > max) { + throw new Error(`[[error:invalid-pagination-value, 2, ${max}]]`); + } + } + + function validateLanguage(value, languageCodes) { + if (value && !languageCodes.includes(value)) { + throw new Error('[[error:invalid-language]]'); + } + } + User.saveSettings = async function (uid, data) { const maxPostsPerPage = meta.config.maxPostsPerPage || 20; - if ( - !data.postsPerPage || - parseInt(data.postsPerPage, 10) <= 1 || - parseInt(data.postsPerPage, 10) > maxPostsPerPage - ) { - throw new Error(`[[error:invalid-pagination-value, 2, ${maxPostsPerPage}]]`); - } + validatePaginationValue(data.postsPerPage, maxPostsPerPage); const maxTopicsPerPage = meta.config.maxTopicsPerPage || 20; - if ( - !data.topicsPerPage || - parseInt(data.topicsPerPage, 10) <= 1 || - parseInt(data.topicsPerPage, 10) > maxTopicsPerPage - ) { - throw new Error(`[[error:invalid-pagination-value, 2, ${maxTopicsPerPage}]]`); - } + validatePaginationValue(data.topicsPerPage, maxTopicsPerPage); const languageCodes = await languages.listCodes(); - if (data.userLang && !languageCodes.includes(data.userLang)) { - throw new Error('[[error:invalid-language]]'); - } - if (data.acpLang && !languageCodes.includes(data.acpLang)) { - throw new Error('[[error:invalid-language]]'); - } + validateLanguage(data.userLang, languageCodes); + validateLanguage(data.acpLang, languageCodes); + data.userLang = data.userLang || meta.config.defaultLang; plugins.hooks.fire('action:user.saveSettings', { uid: uid, settings: data }); @@ -149,12 +146,14 @@ module.exports = function (User) { categoryTopicSort: data.categoryTopicSort, topicPostSort: data.topicPostSort, }; + const notificationTypes = await notifications.getAllNotificationTypes(); notificationTypes.forEach((notificationType) => { if (data[notificationType]) { settings[notificationType] = data[notificationType]; } }); + const result = await plugins.hooks.fire('filter:user.saveSettings', { uid: uid, settings: settings, data: data }); await db.setObject(`user:${uid}:settings`, result.settings); await User.updateDigestSetting(uid, data.dailyDigestFreq); From db8300a3fc51b3819e929d9e4c0e96c89a3c91ef Mon Sep 17 00:00:00 2001 From: Sarim Faraz Date: Mon, 2 Sep 2024 17:10:28 +0300 Subject: [PATCH 2/4] dummy commit to trigger SC --- src/user/settings.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/user/settings.js b/src/user/settings.js index 6a8678c1b3..1b6847ffdb 100644 --- a/src/user/settings.js +++ b/src/user/settings.js @@ -102,6 +102,7 @@ module.exports = function (User) { } } + // Dummy comment to trigger SC function validateLanguage(value, languageCodes) { if (value && !languageCodes.includes(value)) { throw new Error('[[error:invalid-language]]'); From 22a7c58f72cabcd65fb1bb4254df73b8292288fd Mon Sep 17 00:00:00 2001 From: Sarim Faraz Date: Tue, 3 Sep 2024 09:05:22 +0300 Subject: [PATCH 3/4] added comments --- src/user/settings.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/user/settings.js b/src/user/settings.js index 1b6847ffdb..b66ab723d8 100644 --- a/src/user/settings.js +++ b/src/user/settings.js @@ -102,13 +102,14 @@ module.exports = function (User) { } } - // Dummy comment to trigger SC + // Co-pilot assisted code function validateLanguage(value, languageCodes) { if (value && !languageCodes.includes(value)) { throw new Error('[[error:invalid-language]]'); } } + // Co-pilot assisted code User.saveSettings = async function (uid, data) { const maxPostsPerPage = meta.config.maxPostsPerPage || 20; validatePaginationValue(data.postsPerPage, maxPostsPerPage); From 6687c8d9c2c17a4cadc339f08678e41c535ef3d2 Mon Sep 17 00:00:00 2001 From: Sarim Faraz Date: Wed, 4 Sep 2024 19:11:29 +0300 Subject: [PATCH 4/4] finished adding comments, retested by running npm run lint and npm run test, and checked manual testing by checking user settings --- dump.rdb | Bin 0 -> 131623 bytes src/user/settings.js | 2 ++ 2 files changed, 2 insertions(+) create mode 100644 dump.rdb diff --git a/dump.rdb b/dump.rdb new file mode 100644 index 0000000000000000000000000000000000000000..1cb88e2b6508c45dfe74456e4ffc7254ae99fd81 GIT binary patch literal 131623 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 literal 0 HcmV?d00001 diff --git a/src/user/settings.js b/src/user/settings.js index b66ab723d8..a45d823dab 100644 --- a/src/user/settings.js +++ b/src/user/settings.js @@ -97,6 +97,7 @@ module.exports = function (User) { // Co-pilot assisted code function validatePaginationValue(value, max) { + console.log('pagination is saved'); if (!value || parseInt(value, 10) <= 1 || parseInt(value, 10) > max) { throw new Error(`[[error:invalid-pagination-value, 2, ${max}]]`); } @@ -104,6 +105,7 @@ module.exports = function (User) { // Co-pilot assisted code function validateLanguage(value, languageCodes) { + console.log('language is saved'); if (value && !languageCodes.includes(value)) { throw new Error('[[error:invalid-language]]'); }