Reduced Parameter Count in getTagTidsByCids under src/topic/tags.js #151
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
P1B: Starter Task: Refactoring PR
Use this pull request template to briefly answer the questions below in one to two sentences each.
Feel free to delete this text at the top after filling out the template.
1. Issue
Link to the associated GitHub issue:
#147
Full path to the refactored file:
src/topic/tags.js
What do you think this file does?
(Your answer does not have to be 100% correct; give a reasonable, evidence‑based guess.)
This file handles operations related to topic tags, probably used for filtering and retrieving topics by tag.
What is the scope of your refactoring within that file?
(Name specific functions/blocks/regions touched.)
I focused the function getTagTidsByCids. I reduced its parameter count from 4 (tag, cids, start, stop) to 3 (tag, cids, {start, stop}) by encapsulating 2 of its parameters into a single object.
Which Qlty‑reported issue did you address?
(Name the rule/metric and include the BEFORE value; e.g., “Cognitive Complexity 18 in render()”.)
Function with many parameters (count = 4) in getTagTidsByCids
2. Refactoring
How did the specific issue you chose impact the codebase’s maintainability?
Four separate parameters made the function slightly more difficult to read and made it difficult to track which values were required.
What changes did you make to resolve the issue?
I combined 'start' and 'stop' into a single object parameter, reducing total number of parameters from 4 to 3.
How do your changes improve maintainability? Did you consider alternatives?
The function is easier to read and less error-prone since related parameters ('start' and 'stop' ) are grouped together. I considered reducing parameter count to 1/2 but I kept some parameters separate at the end to preserve explicitness; grouping related arguments (start and stop) was cleaner.
3. Validation
How did you trigger the refactored code path from the UI?
I created a post, selected the post, selected Topic Tools and clicked on Tag Topic from the dropdown menu. I named the tag (for example, trial). From the home screen, I went to tags and clicked the tag I just created.
Attach a screenshot of the logs and UI demonstrating the trigger.


(If you refactored a public/src/ file (front-end related file), watch logging via DevTools (Ctrl+Shift+I to open and then navigate to the 'Console' tab). If you refactored a src/ file, watch logging via ./nodebb log. Include the relevant UI view. Temporary logs should be removed before final commit.)
Attach a screenshot of


qlty smells --no-snippets <full/path/to/file.js>showing fewer reported issues after the changes.Before:
After:
NOTE: MY qlty smell was removed and I triggered my codepath via the UI to print my name (my name was successfully printed). However the automated checks are not passing on Github. I just wanted to flag this in case it has any impact on the grading since everything appears to be working correctly on my local setup.