Skip to content

Commit c172f6b

Browse files
fix: correctly parse pageNumber in pagination logic
1 parent 8d40ebc commit c172f6b

File tree

2 files changed

+9
-7
lines changed

2 files changed

+9
-7
lines changed

controllers/discordactions.js

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,8 @@ const getPaginatedAllGroupRoles = async (req, res) => {
128128
try {
129129
const { page = 0, size = 10, dev } = req.query;
130130
const limit = Number.parseInt(size, 10) || 10;
131-
const offset = Number.parseInt(page, 10) * limit;
131+
const pageNumber = Number.isNaN(Number.parseInt(page, 10)) ? 0 : Number.parseInt(page, 10);
132+
const offset = pageNumber * limit;
132133

133134
if (limit < 1 || limit > 100) {
134135
return res.boom.badRequest("Invalid size. Must be between 1 and 100.");
@@ -139,8 +140,8 @@ const getPaginatedAllGroupRoles = async (req, res) => {
139140
const { roles, total } = await discordRolesModel.getPaginatedGroupRolesByPage({ offset, limit });
140141
const groupsWithMembershipInfo = await discordRolesModel.enrichGroupDataWithMembershipInfo(discordId, roles);
141142

142-
const nextPage = offset + limit < total ? Number.parseInt(page, 10) + 1 : null;
143-
const prevPage = page > 0 ? Number.parseInt(page, 10) - 1 : null;
143+
const nextPage = offset + limit < total ? pageNumber + 1 : null;
144+
const prevPage = pageNumber > 0 ? pageNumber - 1 : null;
144145

145146
const baseUrl = `${req.baseUrl}${req.path}`;
146147
const next = nextPage !== null ? `${baseUrl}?page=${nextPage}&size=${limit}&dev=true` : null;

controllers/progresses.js

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -116,10 +116,11 @@ const getProgress = async (req, res) => {
116116
try {
117117
if (dev === "true") {
118118
const { progressDocs, totalProgressCount } = await progressesModel.getPaginatedProgressDocument(req.query);
119-
const limit = Number.parseInt(size, 10);
120-
const offset = Number.parseInt(page, 10) * limit;
121-
const nextPage = offset + limit < totalProgressCount ? Number.parseInt(page, 10) + 1 : null;
122-
const prevPage = page > 0 ? Number.parseInt(page, 10) - 1 : null;
119+
const limit = Number.parseInt(size, 10) || 100;
120+
const pageNumber = Number.isNaN(Number.parseInt(page, 10)) ? 0 : Number.parseInt(page, 10);
121+
const offset = pageNumber * limit;
122+
const nextPage = offset + limit < totalProgressCount ? pageNumber + 1 : null;
123+
const prevPage = pageNumber > 0 ? pageNumber - 1 : null;
123124
let baseUrl = `${req.baseUrl}`;
124125
if (type) {
125126
baseUrl += `?type=${type}`;

0 commit comments

Comments
 (0)