+ if (skipCount) params = params.set('skipCount', skipCount + '')
+
+ return this.authHttp
+ .get<ResultList<Video>>(UserSubscriptionService.BASE_USER_SUBSCRIPTIONS_URL + '/videos', { params })
+ .pipe(
+ switchMap(res => this.extractVideos(res)),
+ catchError(err => this.restExtractor.handleError(err))
+ )
+ }
+
+ getVideos (parameters: {
+ videoPagination: ComponentPaginationLight,
+ sort: VideoSortField,
+ filter?: VideoFilter,
+ categoryOneOf?: number,
+ languageOneOf?: string[],
+ skipCount?: boolean,
+ nsfw?: boolean
+ }): Observable<ResultList<Video>> {
+ const { videoPagination, sort, filter, categoryOneOf, languageOneOf, skipCount, nsfw } = parameters
+
+ const pagination = this.restService.componentPaginationToRestPagination(videoPagination)
+
+ let params = new HttpParams()
+ params = this.restService.addRestGetParams(params, pagination, sort)
+
+ if (filter) params = params.set('filter', filter)
+ if (categoryOneOf) params = params.set('categoryOneOf', categoryOneOf + '')
+ if (skipCount) params = params.set('skipCount', skipCount + '')
+
+ if (nsfw) {
+ params = params.set('nsfw', nsfw + '')
+ } else {
+ const nsfwPolicy = this.authService.isLoggedIn()
+ ? this.authService.getUser().nsfwPolicy
+ : this.userService.getAnonymousUser().nsfwPolicy
+ if (this.nsfwPolicyToFilter(nsfwPolicy)) params.set('nsfw', 'false')
+ }
+
+ if (languageOneOf) {
+ for (const l of languageOneOf) {
+ params = params.append('languageOneOf[]', l)
+ }