X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;ds=sidebyside;f=server%2Fhelpers%2Fquery.ts;fp=server%2Fhelpers%2Fquery.ts;h=e711b15f2cde7bcd5e15545b5c5d8c49d2e76d86;hb=d6886027109af42be2e3ec5d14ad166199add11d;hp=0000000000000000000000000000000000000000;hpb=b033851fb54241bb703f86add025229e68cc6f59;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/helpers/query.ts b/server/helpers/query.ts new file mode 100644 index 000000000..e711b15f2 --- /dev/null +++ b/server/helpers/query.ts @@ -0,0 +1,74 @@ +import { pick } from '@shared/core-utils' +import { + VideoChannelsSearchQueryAfterSanitize, + VideoPlaylistsSearchQueryAfterSanitize, + VideosCommonQueryAfterSanitize, + VideosSearchQueryAfterSanitize +} from '@shared/models' + +function pickCommonVideoQuery (query: VideosCommonQueryAfterSanitize) { + return pick(query, [ + 'start', + 'count', + 'sort', + 'nsfw', + 'isLive', + 'categoryOneOf', + 'licenceOneOf', + 'languageOneOf', + 'tagsOneOf', + 'tagsAllOf', + 'filter', + 'skipCount' + ]) +} + +function pickSearchVideoQuery (query: VideosSearchQueryAfterSanitize) { + return { + ...pickCommonVideoQuery(query), + + ...pick(query, [ + 'searchTarget', + 'search', + 'host', + 'startDate', + 'endDate', + 'originallyPublishedStartDate', + 'originallyPublishedEndDate', + 'durationMin', + 'durationMax', + 'uuids' + ]) + } +} + +function pickSearchChannelQuery (query: VideoChannelsSearchQueryAfterSanitize) { + return pick(query, [ + 'searchTarget', + 'search', + 'start', + 'count', + 'sort', + 'host', + 'handles' + ]) +} + +function pickSearchPlaylistQuery (query: VideoPlaylistsSearchQueryAfterSanitize) { + return pick(query, [ + 'searchTarget', + 'search', + 'start', + 'count', + 'sort', + 'host', + 'uuids' + ]) +} + +export { + pickCommonVideoQuery, + pickSearchVideoQuery, + pickSearchPlaylistQuery, + pickSearchChannelQuery +}