import { UserSubscriptionService } from '@app/shared/user-subscription/user-subscription.service'
import { VideoChannel } from '@app/shared/video-channel/video-channel.model'
import { I18n } from '@ngx-translate/i18n-polyfill'
-import { VideoPlaylist } from '@app/shared/video-playlist/video-playlist.model'
-import { VideoPlaylistService } from '@app/shared/video-playlist/video-playlist.service'
export interface VideosProvider {
getVideos (parameters: {
}
getVideo (options: { videoId: string }): Observable<VideoDetails> {
- return this.serverService.localeObservable
+ return this.serverService.getServerLocale()
.pipe(
switchMap(translations => {
return this.authHttp.get<VideoDetailsServerModel>(VideoService.BASE_VIDEO_URL + options.videoId)
.pipe(catchError(err => this.restExtractor.handleError(err)))
}
- getMyVideos (videoPagination: ComponentPagination, sort: VideoSortField): Observable<ResultList<Video>> {
+ getMyVideos (videoPagination: ComponentPagination, sort: VideoSortField, search?: string): Observable<ResultList<Video>> {
const pagination = this.restService.componentPaginationToRestPagination(videoPagination)
let params = new HttpParams()
params = this.restService.addRestGetParams(params, pagination, sort)
+ params = this.restService.addObjectParams(params, { search })
return this.authHttp
- .get<ResultList<Video>>(UserService.BASE_USERS_URL + '/me/videos', { params })
+ .get<ResultList<Video>>(UserService.BASE_USERS_URL + 'me/videos', { params })
.pipe(
switchMap(res => this.extractVideos(res)),
catchError(err => this.restExtractor.handleError(err))
)
}
- getPlaylistVideos (
- videoPlaylistId: number | string,
- videoPagination: ComponentPagination
- ): Observable<ResultList<Video>> {
- const pagination = this.restService.componentPaginationToRestPagination(videoPagination)
-
- let params = new HttpParams()
- params = this.restService.addRestGetParams(params, pagination)
-
- return this.authHttp
- .get<ResultList<Video>>(VideoPlaylistService.BASE_VIDEO_PLAYLIST_URL + videoPlaylistId + '/videos', { params })
- .pipe(
- switchMap(res => this.extractVideos(res)),
- catchError(err => this.restExtractor.handleError(err))
- )
- }
-
getUserSubscriptionVideos (parameters: {
videoPagination: ComponentPagination,
sort: VideoSortField
}
extractVideos (result: ResultList<VideoServerModel>) {
- return this.serverService.localeObservable
+ return this.serverService.getServerLocale()
.pipe(
map(translations => {
const videosJson = result.data
}
explainedPrivacyLabels (privacies: VideoConstant<VideoPrivacy>[]) {
- const newPrivacies = privacies.slice()
-
- const privatePrivacy = newPrivacies.find(p => p.id === VideoPrivacy.PRIVATE)
- if (privatePrivacy) privatePrivacy.label = this.i18n('Only I can see this video')
-
- const unlistedPrivacy = newPrivacies.find(p => p.id === VideoPrivacy.UNLISTED)
- if (unlistedPrivacy) unlistedPrivacy.label = this.i18n('Only people with the private link can see this video')
-
- const publicPrivacy = newPrivacies.find(p => p.id === VideoPrivacy.PUBLIC)
- if (publicPrivacy) publicPrivacy.label = this.i18n('Anyone can see this video')
+ const base = [
+ {
+ id: VideoPrivacy.PRIVATE,
+ label: this.i18n('Only I can see this video')
+ },
+ {
+ id: VideoPrivacy.UNLISTED,
+ label: this.i18n('Only people with the private link can see this video')
+ },
+ {
+ id: VideoPrivacy.PUBLIC,
+ label: this.i18n('Anyone can see this video')
+ },
+ {
+ id: VideoPrivacy.INTERNAL,
+ label: this.i18n('Only users of this instance can see this video')
+ }
+ ]
- return privacies
+ return base.filter(o => !!privacies.find(p => p.id === o.id))
}
private setVideoRate (id: number, rateType: UserVideoRateType) {