X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Fmiddlewares%2Fsort.ts;h=0600ccd15567fd74f37f8fb0049330fafcbdd2bf;hb=d4a8e7a65f97bb3257facc13e1ae8ffdbad61ddb;hp=632b2fae4158fd2bbfa0ff18e4dbb23844f9d0ca;hpb=69818c9394366b954b6ba3bd697bd9d2b09f2a16;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/middlewares/sort.ts b/server/middlewares/sort.ts index 632b2fae4..0600ccd15 100644 --- a/server/middlewares/sort.ts +++ b/server/middlewares/sort.ts @@ -1,28 +1,50 @@ -import 'express-validator' import * as express from 'express' +import { SortType } from '../models/utils' -function setUsersSort (req: express.Request, res: express.Response, next: express.NextFunction) { - if (!req.query.sort) req.query.sort = '-createdAt' +const setDefaultSort = setDefaultSortFactory('-createdAt') +const setDefaultVideosSort = setDefaultSortFactory('-publishedAt') - return next() -} +const setDefaultVideoRedundanciesSort = setDefaultSortFactory('name') -function setVideoAbusesSort (req: express.Request, res: express.Response, next: express.NextFunction) { - if (!req.query.sort) req.query.sort = '-createdAt' +const setDefaultSearchSort = setDefaultSortFactory('-match') - return next() -} +function setBlacklistSort (req: express.Request, res: express.Response, next: express.NextFunction) { + const newSort: SortType = { sortModel: undefined, sortValue: '' } -function setVideosSort (req: express.Request, res: express.Response, next: express.NextFunction) { if (!req.query.sort) req.query.sort = '-createdAt' + // Set model we want to sort onto + if (req.query.sort === '-createdAt' || req.query.sort === 'createdAt' || + req.query.sort === '-id' || req.query.sort === 'id') { + // If we want to sort onto the BlacklistedVideos relation, we won't specify it in the query parameter... + newSort.sortModel = undefined + } else { + newSort.sortModel = 'Video' + } + + newSort.sortValue = req.query.sort + + req.query.sort = newSort + return next() } // --------------------------------------------------------------------------- export { - setUsersSort, - setVideoAbusesSort, - setVideosSort + setDefaultSort, + setDefaultSearchSort, + setDefaultVideosSort, + setDefaultVideoRedundanciesSort, + setBlacklistSort +} + +// --------------------------------------------------------------------------- + +function setDefaultSortFactory (sort: string) { + return (req: express.Request, res: express.Response, next: express.NextFunction) => { + if (!req.query.sort) req.query.sort = sort + + return next() + } }