X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Fmiddlewares%2Fsort.ts;h=77a532276d26de286b44ccb7c8700d82a4270504;hb=8c4bbd946d2247c2e239cbbf8773d2d31c1a57aa;hp=fdd6d419fb87f43495bff0e8bebb3da89f0f0915;hpb=da854ddd502cd70685ef779c673b9e63757b8aa0;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/middlewares/sort.ts b/server/middlewares/sort.ts index fdd6d419f..77a532276 100644 --- a/server/middlewares/sort.ts +++ b/server/middlewares/sort.ts @@ -1,86 +1,29 @@ -import * as express from 'express' -import 'express-validator' -import { SortType } from '../helpers/utils' +import express from 'express' -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() -} - -function setJobsSort (req: express.Request, res: express.Response, next: express.NextFunction) { - if (!req.query.sort) req.query.sort = '-createdAt' - - return next() -} - -function setVideoAbusesSort (req: express.Request, res: express.Response, next: express.NextFunction) { - if (!req.query.sort) req.query.sort = '-createdAt' - - return next() -} - -function setVideoChannelsSort (req: express.Request, res: express.Response, next: express.NextFunction) { - if (!req.query.sort) req.query.sort = '-createdAt' +const setDefaultVideoRedundanciesSort = setDefaultSortFactory('name') - return next() -} - -function setVideosSort (req: express.Request, res: express.Response, next: express.NextFunction) { - if (!req.query.sort) req.query.sort = '-createdAt' - - return next() -} - -function setVideoCommentThreadsSort (req: express.Request, res: express.Response, next: express.NextFunction) { - if (!req.query.sort) req.query.sort = '-createdAt' - - return next() -} +const setDefaultSearchSort = setDefaultSortFactory('-match') +const setBlacklistSort = setDefaultSortFactory('-createdAt') -function setFollowersSort (req: express.Request, res: express.Response, next: express.NextFunction) { - if (!req.query.sort) req.query.sort = '-createdAt' - - return next() -} - -function setFollowingSort (req: express.Request, res: express.Response, next: express.NextFunction) { - if (!req.query.sort) req.query.sort = '-createdAt' +// --------------------------------------------------------------------------- - return next() +export { + setDefaultSort, + setDefaultSearchSort, + setDefaultVideosSort, + setDefaultVideoRedundanciesSort, + setBlacklistSort } -function setBlacklistSort (req: express.Request, res: express.Response, next: express.NextFunction) { - let newSort: SortType = { sortModel: undefined, sortValue: undefined } +// --------------------------------------------------------------------------- - if (!req.query.sort) req.query.sort = '-createdAt' +function setDefaultSortFactory (sort: string) { + return (req: express.Request, res: express.Response, next: express.NextFunction) => { + if (!req.query.sort) req.query.sort = sort - // 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' + return next() } - - newSort.sortValue = req.query.sort - - req.query.sort = newSort - - return next() -} - -// --------------------------------------------------------------------------- - -export { - setUsersSort, - setVideoAbusesSort, - setVideoChannelsSort, - setVideosSort, - setBlacklistSort, - setFollowersSort, - setFollowingSort, - setJobsSort, - setVideoCommentThreadsSort }