+ getPlaylistVideos (
+ videoPlaylistId: number | string,
+ componentPagination: ComponentPagination
+ ): Observable<ResultList<VideoPlaylistElement>> {
+ const path = VideoPlaylistService.BASE_VIDEO_PLAYLIST_URL + videoPlaylistId + '/videos'
+ const pagination = this.restService.componentPaginationToRestPagination(componentPagination)
+
+ let params = new HttpParams()
+ params = this.restService.addRestGetParams(params, pagination)
+
+ return this.authHttp
+ .get<ResultList<ServerVideoPlaylistElement>>(path, { params })
+ .pipe(
+ switchMap(res => this.extractVideoPlaylistElements(res)),
+ catchError(err => this.restExtractor.handleError(err))
+ )
+ }
+
+ listenToMyAccountPlaylistsChange () {
+ return this.myAccountPlaylistCacheSubject.asObservable()
+ }
+
+ listenToVideoPlaylistChange (videoId: number) {
+ if (this.videoExistsObservableCache[ videoId ]) {
+ return this.videoExistsObservableCache[ videoId ]
+ }
+
+ const obs = this.videoExistsInPlaylistObservable
+ .pipe(
+ map(existsResult => existsResult[ videoId ]),
+ filter(r => !!r),
+ tap(result => this.videoExistsCache[ videoId ] = result)
+ )