24 lines
878 B
JavaScript
24 lines
878 B
JavaScript
module.exports = function registerSlidesRoutes(app, deps) {
|
|
const pages = deps.pages;
|
|
const common = deps.common;
|
|
const pool = deps.pool;
|
|
const { buildPagination } = require('../../../lib/pagination');
|
|
const requirePermission = deps.requirePermission;
|
|
|
|
const LIST_PAGE_SIZE = 10;
|
|
|
|
app.get('/slides', requirePermission('slides.read'), async function (req, res, next) {
|
|
try {
|
|
const page = Math.max(1, Math.floor(Number(req.query.page) || 1));
|
|
const data = await common.fetchSlidesPage(pool, page, LIST_PAGE_SIZE);
|
|
res.send(pages.renderSlidesPage({
|
|
slides: data.slides || [],
|
|
pagination: buildPagination(data.totalItems, data.currentPage, 'page', {}, LIST_PAGE_SIZE, 'slides', 'Slide pages')
|
|
}, req.query.message ? String(req.query.message) : '', req.currentUser));
|
|
} catch (error) {
|
|
next(error);
|
|
}
|
|
});
|
|
};
|
|
|