diff --git a/packages/analytics/src/controllers/commands.js b/packages/analytics/src/controllers/commands.js index 36d2f21..b570504 100644 --- a/packages/analytics/src/controllers/commands.js +++ b/packages/analytics/src/controllers/commands.js @@ -8,12 +8,15 @@ export async function commandListController(req, res) { const itemsPerPage = 100 try { - const payload = await errorCommands( - new Pagination(order, itemsPerPage, nextKey) - ) + const pagination = new Pagination(order, itemsPerPage, nextKey) + const payload = await errorCommands(pagination) const newNextKey = payload[payload.length - 1]?._id - res.render('commands', { errorCommands: payload, nextKey: newNextKey }) + res.render('commands', { + errorCommands: payload, + nextKey: newNextKey, + order: pagination.getOrder(), + }) } catch (error) { console.error(error) res.status(500).send('Error fetching data') diff --git a/packages/analytics/src/controllers/sessions.js b/packages/analytics/src/controllers/sessions.js index 765f1f7..a4dbe89 100644 --- a/packages/analytics/src/controllers/sessions.js +++ b/packages/analytics/src/controllers/sessions.js @@ -6,15 +6,15 @@ export async function sessionListController(req, res) { const itemsPerPage = 50 try { - // const totalSessions = await sessionCount() - // const maxPages = Math.ceil(totalSessions / itemsPerPage) - - const sessions = await sessionList( - new Pagination(order, itemsPerPage, nextKey) - ) + const pagination = new Pagination(order, itemsPerPage, nextKey) + const sessions = await sessionList(pagination) const newNextKey = sessions[sessions.length - 1]?._id - res.render('sessions', { sessions, nextKey: newNextKey }) + res.render('sessions', { + sessions, + nextKey: newNextKey, + order: pagination.getOrder(), + }) } catch (error) { console.log(error) res.status(500).send('Error fetching session data') diff --git a/packages/analytics/src/controllers/users.js b/packages/analytics/src/controllers/users.js index 96d198c..220bb3b 100644 --- a/packages/analytics/src/controllers/users.js +++ b/packages/analytics/src/controllers/users.js @@ -6,10 +6,15 @@ export async function userListController(req, res) { const itemsPerPage = 50 try { - const users = await userList(new Pagination(order, itemsPerPage, nextKey)) + const pagination = new Pagination(order, itemsPerPage, nextKey) + const users = await userList(pagination) const newNextKey = users[users.length - 1]?._id - res.render('users', { users, nextKey: newNextKey }) + res.render('users', { + users, + nextKey: newNextKey, + order: pagination.getOrder(), + }) } catch (error) { console.error(error) res.status(500).send('Error fetching user data') diff --git a/packages/analytics/src/models/pagination.js b/packages/analytics/src/models/pagination.js index d253bec..255d9fd 100644 --- a/packages/analytics/src/models/pagination.js +++ b/packages/analytics/src/models/pagination.js @@ -14,6 +14,10 @@ class Asc { getOrder() { return 1 } + + getName() { + return ASC + } } class Desc { @@ -24,6 +28,10 @@ class Desc { getOrder() { return -1 } + + getName() { + return DESC + } } export default class Pagination { @@ -59,4 +67,8 @@ export default class Pagination { limit() { return { $limit: this.itemsPerPage } } + + getOrder() { + return this.order.getName() + } } diff --git a/packages/analytics/tests/pagination.test.js b/packages/analytics/tests/pagination.test.js index 9c1db98..6d138d1 100644 --- a/packages/analytics/tests/pagination.test.js +++ b/packages/analytics/tests/pagination.test.js @@ -3,7 +3,8 @@ import Pagination, { ASC, DESC } from '../src/models/pagination.js' describe('Pagination', () => { it('should failed when not provide order', () => { - expect(() => new Pagination()).toThrow('order must be asc or desc') + expect(new Pagination('').getOrder()).toBe(DESC) + expect(() => new Pagination('Hahaha')).toThrow() }) it('should return correct limit', () => { const pagination = new Pagination(DESC, 10) diff --git a/packages/analytics/views/commands.handlebars b/packages/analytics/views/commands.handlebars index 1d7034f..f2252cd 100644 --- a/packages/analytics/views/commands.handlebars +++ b/packages/analytics/views/commands.handlebars @@ -1,6 +1,10 @@