query.ts 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. import { pick } from '@shared/core-utils'
  2. import {
  3. VideoChannelsSearchQueryAfterSanitize,
  4. VideoPlaylistsSearchQueryAfterSanitize,
  5. VideosCommonQueryAfterSanitize,
  6. VideosSearchQueryAfterSanitize
  7. } from '@shared/models'
  8. function pickCommonVideoQuery (query: VideosCommonQueryAfterSanitize) {
  9. return pick(query, [
  10. 'start',
  11. 'count',
  12. 'sort',
  13. 'nsfw',
  14. 'isLive',
  15. 'categoryOneOf',
  16. 'licenceOneOf',
  17. 'languageOneOf',
  18. 'privacyOneOf',
  19. 'tagsOneOf',
  20. 'tagsAllOf',
  21. 'isLocal',
  22. 'include',
  23. 'skipCount',
  24. 'hasHLSFiles',
  25. 'hasWebtorrentFiles',
  26. 'search'
  27. ])
  28. }
  29. function pickSearchVideoQuery (query: VideosSearchQueryAfterSanitize) {
  30. return {
  31. ...pickCommonVideoQuery(query),
  32. ...pick(query, [
  33. 'searchTarget',
  34. 'host',
  35. 'startDate',
  36. 'endDate',
  37. 'originallyPublishedStartDate',
  38. 'originallyPublishedEndDate',
  39. 'durationMin',
  40. 'durationMax',
  41. 'uuids'
  42. ])
  43. }
  44. }
  45. function pickSearchChannelQuery (query: VideoChannelsSearchQueryAfterSanitize) {
  46. return pick(query, [
  47. 'searchTarget',
  48. 'search',
  49. 'start',
  50. 'count',
  51. 'sort',
  52. 'host',
  53. 'handles'
  54. ])
  55. }
  56. function pickSearchPlaylistQuery (query: VideoPlaylistsSearchQueryAfterSanitize) {
  57. return pick(query, [
  58. 'searchTarget',
  59. 'search',
  60. 'start',
  61. 'count',
  62. 'sort',
  63. 'host',
  64. 'uuids'
  65. ])
  66. }
  67. export {
  68. pickCommonVideoQuery,
  69. pickSearchVideoQuery,
  70. pickSearchPlaylistQuery,
  71. pickSearchChannelQuery
  72. }