X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;ds=inline;f=server%2Fcontrollers%2Fapi%2Fsearch%2Fsearch-video-channels.ts;h=089feed65bb81a3bd8d964b0e9a082a7d6f9fa9f;hb=ab632f438efed53e3ed4ba08dd73cc666366af2b;hp=fe9178e691ca29e1c3c8e34d60348e196b4a7f47;hpb=c0e8b12e7fd554ba4d2ceb0c4900804c6a4c63ea;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/controllers/api/search/search-video-channels.ts b/server/controllers/api/search/search-video-channels.ts index fe9178e69..089feed65 100644 --- a/server/controllers/api/search/search-video-channels.ts +++ b/server/controllers/api/search/search-video-channels.ts @@ -1,14 +1,14 @@ -import * as express from 'express' +import express from 'express' import { sanitizeUrl } from '@server/helpers/core-utils' +import { pickSearchChannelQuery } from '@server/helpers/query' import { doJSONRequest } from '@server/helpers/requests' import { CONFIG } from '@server/initializers/config' import { WEBSERVER } from '@server/initializers/constants' import { Hooks } from '@server/lib/plugins/hooks' import { buildMutedForSearchIndex, isSearchIndexSearch, isURISearch } from '@server/lib/search' import { getServerActor } from '@server/models/application/application' -import { HttpStatusCode } from '@shared/models' -import { ResultList, VideoChannel } from '@shared/models' -import { VideoChannelsSearchQuery } from '../../../../shared/models/search' +import { HttpStatusCode, ResultList, VideoChannel } from '@shared/models' +import { VideoChannelsSearchQueryAfterSanitize } from '../../../../shared/models/search' import { isUserAbleToSearchRemoteURI } from '../../../helpers/express-utils' import { logger } from '../../../helpers/logger' import { getFormattedObjects } from '../../../helpers/utils' @@ -46,8 +46,8 @@ export { searchChannelsRouter } // --------------------------------------------------------------------------- function searchVideoChannels (req: express.Request, res: express.Response) { - const query: VideoChannelsSearchQuery = req.query - const search = query.search + const query = pickSearchChannelQuery(req.query) + const search = query.search || '' const parts = search.split('@') @@ -58,7 +58,7 @@ function searchVideoChannels (req: express.Request, res: express.Response) { if (isURISearch(search) || isWebfingerSearch) return searchVideoChannelURI(search, isWebfingerSearch, res) // @username -> username to search in DB - if (query.search.startsWith('@')) query.search = query.search.replace(/^@/, '') + if (search.startsWith('@')) query.search = search.replace(/^@/, '') if (isSearchIndexSearch(query)) { return searchVideoChannelsIndex(query, res) @@ -67,7 +67,7 @@ function searchVideoChannels (req: express.Request, res: express.Response) { return searchVideoChannelsDB(query, res) } -async function searchVideoChannelsIndex (query: VideoChannelsSearchQuery, res: express.Response) { +async function searchVideoChannelsIndex (query: VideoChannelsSearchQueryAfterSanitize, res: express.Response) { const result = await buildMutedForSearchIndex(res) const body = await Hooks.wrapObject(Object.assign(query, result), 'filter:api.search.video-channels.index.list.params') @@ -91,15 +91,13 @@ async function searchVideoChannelsIndex (query: VideoChannelsSearchQuery, res: e } } -async function searchVideoChannelsDB (query: VideoChannelsSearchQuery, res: express.Response) { +async function searchVideoChannelsDB (query: VideoChannelsSearchQueryAfterSanitize, res: express.Response) { const serverActor = await getServerActor() const apiOptions = await Hooks.wrapObject({ - actorId: serverActor.id, - search: query.search, - start: query.start, - count: query.count, - sort: query.sort + ...query, + + actorId: serverActor.id }, 'filter:api.search.video-channels.local.list.params') const resultList = await Hooks.wrapPromiseFun(