]>
Commit | Line | Data |
---|---|---|
a877d5ac C |
1 | 'use strict' |
2 | ||
3 | const checkErrors = require('./utils').checkErrors | |
4 | const constants = require('../../initializers/constants') | |
5 | const logger = require('../../helpers/logger') | |
6 | ||
fc51fde0 | 7 | const validatorsSort = { |
c4403b29 | 8 | usersSort, |
55fa55a9 | 9 | videoAbusesSort, |
c4403b29 | 10 | videosSort |
a877d5ac C |
11 | } |
12 | ||
9c2c18f3 C |
13 | // Initialize constants here for better performances |
14 | const SORTABLE_USERS_COLUMNS = createSortableColumns(constants.SORTABLE_COLUMNS.USERS) | |
15 | const SORTABLE_VIDEO_ABUSES_COLUMNS = createSortableColumns(constants.SORTABLE_COLUMNS.VIDEO_ABUSES) | |
16 | const SORTABLE_VIDEOS_COLUMNS = createSortableColumns(constants.SORTABLE_COLUMNS.VIDEOS) | |
5c39adb7 | 17 | |
9c2c18f3 C |
18 | function usersSort (req, res, next) { |
19 | checkSort(req, res, next, SORTABLE_USERS_COLUMNS) | |
55fa55a9 | 20 | } |
5c39adb7 | 21 | |
55fa55a9 | 22 | function videoAbusesSort (req, res, next) { |
9c2c18f3 | 23 | checkSort(req, res, next, SORTABLE_VIDEO_ABUSES_COLUMNS) |
5c39adb7 C |
24 | } |
25 | ||
a877d5ac | 26 | function videosSort (req, res, next) { |
9c2c18f3 | 27 | checkSort(req, res, next, SORTABLE_VIDEOS_COLUMNS) |
55fa55a9 C |
28 | } |
29 | ||
30 | // --------------------------------------------------------------------------- | |
31 | ||
32 | module.exports = validatorsSort | |
33 | ||
34 | // --------------------------------------------------------------------------- | |
35 | ||
36 | function checkSort (req, res, next, sortableColumns) { | |
a877d5ac C |
37 | req.checkQuery('sort', 'Should have correct sortable column').optional().isIn(sortableColumns) |
38 | ||
39 | logger.debug('Checking sort parameters', { parameters: req.query }) | |
40 | ||
41 | checkErrors(req, res, next) | |
42 | } | |
9c2c18f3 C |
43 | |
44 | function createSortableColumns (sortableColumns) { | |
45 | const sortableColumnDesc = sortableColumns.map(sortableColumn => '-' + sortableColumn) | |
46 | ||
47 | return sortableColumns.concat(sortableColumnDesc) | |
48 | } |