X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Fcontrollers%2Fapi%2Fsearch.ts;h=f810c7452b4028348b53ff5de1c9a4303adfe54b;hb=516df59b3bbb0218afeda595ee4966800bff4519;hp=2ff340b597df0ef566035d83918be05f499679de;hpb=57c36b277e68b764dd34cb2e449f6e2ca3d1e9b6;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/controllers/api/search.ts b/server/controllers/api/search.ts index 2ff340b59..f810c7452 100644 --- a/server/controllers/api/search.ts +++ b/server/controllers/api/search.ts @@ -1,9 +1,10 @@ import * as express from 'express' -import { isNSFWHidden } from '../../helpers/express-utils' +import { buildNSFWFilter } from '../../helpers/express-utils' import { getFormattedObjects } from '../../helpers/utils' import { VideoModel } from '../../models/video/video' import { asyncMiddleware, + commonVideosFiltersValidator, optionalAuthenticate, paginationValidator, searchValidator, @@ -11,6 +12,7 @@ import { setDefaultSearchSort, videosSearchSortValidator } from '../../middlewares' +import { VideosSearchQuery } from '../../../shared/models/search' const searchRouter = express.Router() @@ -20,6 +22,7 @@ searchRouter.get('/videos', videosSearchSortValidator, setDefaultSearchSort, optionalAuthenticate, + commonVideosFiltersValidator, searchValidator, asyncMiddleware(searchVideos) ) @@ -31,13 +34,10 @@ export { searchRouter } // --------------------------------------------------------------------------- async function searchVideos (req: express.Request, res: express.Response) { - const resultList = await VideoModel.searchAndPopulateAccountAndServer( - req.query.search as string, - req.query.start as number, - req.query.count as number, - req.query.sort as string, - isNSFWHidden(res) - ) + const query: VideosSearchQuery = req.query + + const options = Object.assign(query, { nsfw: buildNSFWFilter(res, query.nsfw) }) + const resultList = await VideoModel.searchAndPopulateAccountAndServer(options) return res.json(getFormattedObjects(resultList.data, resultList.total)) }