-import { intoArray, toBoolean } from '@app/helpers'
-import { AttributesOnly } from '@shared/core-utils'
-import { BooleanBothQuery, NSFWPolicyType, VideoFilter, VideoSortField } from '@shared/models'
+import { splitIntoArray, toBoolean } from '@app/helpers'
+import { getAllPrivacies } from '@shared/core-utils'
+import { AttributesOnly } from '@shared/typescript-utils'
+import { BooleanBothQuery, NSFWPolicyType, VideoInclude, VideoPrivacy, VideoSortField } from '@shared/models'
type VideoFiltersKeys = {
[ id in keyof AttributesOnly<VideoFilters> ]: any
if (obj.nsfw !== undefined) this.nsfw = obj.nsfw
- if (obj.languageOneOf !== undefined) this.languageOneOf = intoArray(obj.languageOneOf)
- if (obj.categoryOneOf !== undefined) this.categoryOneOf = intoArray(obj.categoryOneOf)
+ if (obj.languageOneOf !== undefined) this.languageOneOf = splitIntoArray(obj.languageOneOf)
+ if (obj.categoryOneOf !== undefined) this.categoryOneOf = splitIntoArray(obj.categoryOneOf)
if (obj.scope !== undefined) this.scope = obj.scope
if (obj.allVideos !== undefined) this.allVideos = toBoolean(obj.allVideos)
}
toVideosAPIObject () {
- let filter: VideoFilter
-
- if (this.scope === 'local' && this.allVideos) {
- filter = 'all-local'
- } else if (this.scope === 'federated' && this.allVideos) {
- filter = 'all'
- } else if (this.scope === 'local') {
- filter = 'local'
+ let isLocal: boolean
+ let include: VideoInclude
+ let privacyOneOf: VideoPrivacy[]
+
+ if (this.scope === 'local') {
+ isLocal = true
+ }
+
+ if (this.allVideos) {
+ include = VideoInclude.NOT_PUBLISHED_STATE
+ privacyOneOf = getAllPrivacies()
}
let isLive: boolean
languageOneOf: this.languageOneOf,
categoryOneOf: this.categoryOneOf,
search: this.search,
- filter,
+ isLocal,
+ include,
+ privacyOneOf,
isLive
}
}