From d92492b731de608ad386c2f1e98ca71902ea4a05 Mon Sep 17 00:00:00 2001 From: Suhaimi Amir Date: Sun, 2 Jul 2017 00:17:55 +0800 Subject: [PATCH 1/2] fix mysql query for pagination. page number should be multiply by limit to get the offset --- lib/api.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/api.js b/lib/api.js index d61163b..d50c214 100644 --- a/lib/api.js +++ b/lib/api.js @@ -461,7 +461,7 @@ app.get('/pool/payments', function (req, res) { let limit = typeof(req.query.limit) !== 'undefined' ? Number(req.query.limit) : 10; let page = typeof(req.query.page) !== 'undefined' ? Number(req.query.page) : 0; let query = "SELECT * FROM transactions ORDER BY id DESC LIMIT ? OFFSET ?"; - global.mysql.query(query, [limit, page]).then(function (rows) { + global.mysql.query(query, [limit, page * limit]).then(function (rows) { if (rows.length === 0) { return res.json([]); } @@ -514,7 +514,7 @@ app.get('/miner/:address/payments', function (req, res) { "payments WHERE payment_address = ? AND payment_id IS ? ORDER BY paid_time DESC LIMIT ? OFFSET ?"; } let response = []; - global.mysql.query(query, [address, payment_id, limit, page]).then(function (rows) { + global.mysql.query(query, [address, payment_id, limit, page * limit]).then(function (rows) { if (rows.length === 0) { return res.json(response); } From a0e6a6e325948d86e129af79a349d46ff2fe7e35 Mon Sep 17 00:00:00 2001 From: Suhaimi Amir Date: Sun, 2 Jul 2017 00:19:39 +0800 Subject: [PATCH 2/2] fix pagination query offset, and also change order by transaction_id from nothing (ASC) to DESC --- lib/api.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/api.js b/lib/api.js index d50c214..bbfd86c 100644 --- a/lib/api.js +++ b/lib/api.js @@ -423,9 +423,9 @@ app.get('/pool/payments/:pool_type', function (req, res) { return res.json({'error': 'Invalid pool type'}); } let paymentIds = []; - let query = "SELECT distinct(transaction_id) as txnID FROM payments WHERE pool_type = ? ORDER BY transaction_id LIMIT ? OFFSET ?"; + let query = "SELECT distinct(transaction_id) as txnID FROM payments WHERE pool_type = ? ORDER BY transaction_id DESC LIMIT ? OFFSET ?"; let response = []; - global.mysql.query(query, [pool_type, limit, page]).then(function (rows) { + global.mysql.query(query, [pool_type, limit, page * limit]).then(function (rows) { if (rows.length === 0) { return res.json([]); }