mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2026-07-29 20:51:48 +00:00
Add pagination to /me/sessions endpoint & sessions account page table
This commit is contained in:
parent
71c5d27ea5
commit
a7b380cd7a
2 changed files with 42 additions and 6 deletions
|
|
@ -35,21 +35,30 @@ class MeController {
|
|||
* @param {Response} res
|
||||
*/
|
||||
async getSessions(req, res) {
|
||||
const page = Math.max(0, toNumber(req.query.page, 0))
|
||||
const itemsPerPage = Math.max(1, toNumber(req.query.itemsPerPage, 10))
|
||||
|
||||
if (req.user.isGuest) {
|
||||
return res.json({ sessions: [] })
|
||||
return res.json({ sessions: [], total: 0, numPages: 0, page, itemsPerPage })
|
||||
}
|
||||
|
||||
const refreshToken = req.cookies.refresh_token || req.headers['x-refresh-token']
|
||||
const sessions = await Database.sessionModel.findAll({
|
||||
const { rows, count } = await Database.sessionModel.findAndCountAll({
|
||||
where: {
|
||||
userId: req.user.id,
|
||||
expiresAt: { [Op.gt]: new Date() }
|
||||
},
|
||||
order: [['updatedAt', 'DESC']]
|
||||
order: [['updatedAt', 'DESC']],
|
||||
limit: itemsPerPage,
|
||||
offset: itemsPerPage * page
|
||||
})
|
||||
|
||||
res.json({
|
||||
sessions: sessions.map((session) => ({
|
||||
total: count,
|
||||
numPages: Math.ceil(count / itemsPerPage),
|
||||
page,
|
||||
itemsPerPage,
|
||||
sessions: rows.map((session) => ({
|
||||
id: session.id,
|
||||
ipAddress: session.ipAddress,
|
||||
userAgent: session.userAgent,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue