Server: little sort refractoring
authorChocobozzz <florian.bigard@gmail.com>
Sun, 26 Feb 2017 18:26:57 +0000 (19:26 +0100)
committerChocobozzz <florian.bigard@gmail.com>
Sun, 26 Feb 2017 19:01:26 +0000 (20:01 +0100)
server/initializers/constants.js
server/middlewares/validators/sort.js

index b99186e13714e2aed4922b6dbcb6aff49f20bc06..e332291637615b7891478b49813a6f1a91424ea0 100644 (file)
@@ -22,9 +22,9 @@ const SEARCHABLE_COLUMNS = {
 
 // Sortable columns per schema
 const SORTABLE_COLUMNS = {
-  USERS: [ 'id', '-id', 'username', '-username', 'createdAt', '-createdAt' ],
-  VIDEO_ABUSES: [ 'id', '-id', 'createdAt', '-createdAt' ],
-  VIDEOS: [ 'name', '-name', 'duration', '-duration', 'createdAt', '-createdAt', 'views', '-views' ]
+  USERS: [ 'id', 'username', 'createdAt' ],
+  VIDEO_ABUSES: [ 'id', 'createdAt' ],
+  VIDEOS: [ 'name', 'duration', 'createdAt', 'views' ]
 }
 
 const OAUTH_LIFETIME = {
index b7eec031615597a549c17ed92dd5457b83c69e75..017d266e6cc2cf023828d5d3d192a8b6afec1e33 100644 (file)
@@ -10,22 +10,21 @@ const validatorsSort = {
   videosSort
 }
 
-function usersSort (req, res, next) {
-  const sortableColumns = constants.SORTABLE_COLUMNS.USERS
+// Initialize constants here for better performances
+const SORTABLE_USERS_COLUMNS = createSortableColumns(constants.SORTABLE_COLUMNS.USERS)
+const SORTABLE_VIDEO_ABUSES_COLUMNS = createSortableColumns(constants.SORTABLE_COLUMNS.VIDEO_ABUSES)
+const SORTABLE_VIDEOS_COLUMNS = createSortableColumns(constants.SORTABLE_COLUMNS.VIDEOS)
 
-  checkSort(req, res, next, sortableColumns)
+function usersSort (req, res, next) {
+  checkSort(req, res, next, SORTABLE_USERS_COLUMNS)
 }
 
 function videoAbusesSort (req, res, next) {
-  const sortableColumns = constants.SORTABLE_COLUMNS.VIDEO_ABUSES
-
-  checkSort(req, res, next, sortableColumns)
+  checkSort(req, res, next, SORTABLE_VIDEO_ABUSES_COLUMNS)
 }
 
 function videosSort (req, res, next) {
-  const sortableColumns = constants.SORTABLE_COLUMNS.VIDEOS
-
-  checkSort(req, res, next, sortableColumns)
+  checkSort(req, res, next, SORTABLE_VIDEOS_COLUMNS)
 }
 
 // ---------------------------------------------------------------------------
@@ -41,3 +40,9 @@ function checkSort (req, res, next, sortableColumns) {
 
   checkErrors(req, res, next)
 }
+
+function createSortableColumns (sortableColumns) {
+  const sortableColumnDesc = sortableColumns.map(sortableColumn => '-' + sortableColumn)
+
+  return sortableColumns.concat(sortableColumnDesc)
+}