]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - client/src/app/shared/shared-main/video/video.service.ts
Add ability to display all channel/account videos
[github/Chocobozzz/PeerTube.git] / client / src / app / shared / shared-main / video / video.service.ts
index 0e2d36081b56a84f90e690763b73f3f9f946abb4..c8a3ec043a7c9f3bef5da72b2a9f0b3be71fa39e 100644 (file)
@@ -134,16 +134,28 @@ export class VideoService implements VideosProvider {
                )
   }
 
-  getAccountVideos (
+  getAccountVideos (parameters: {
     account: Account,
     videoPagination: ComponentPaginationLight,
     sort: VideoSortField
-  ): Observable<ResultList<Video>> {
+    nsfwPolicy?: NSFWPolicyType
+    videoFilter?: VideoFilter
+  }): Observable<ResultList<Video>> {
+    const { account, videoPagination, sort, videoFilter, nsfwPolicy } = parameters
+
     const pagination = this.restService.componentPaginationToRestPagination(videoPagination)
 
     let params = new HttpParams()
     params = this.restService.addRestGetParams(params, pagination, sort)
 
+    if (nsfwPolicy) {
+      params = params.set('nsfw', this.nsfwPolicyToParam(nsfwPolicy))
+    }
+
+    if (videoFilter) {
+      params = params.set('filter', videoFilter)
+    }
+
     return this.authHttp
                .get<ResultList<Video>>(AccountService.BASE_ACCOUNT_URL + account.nameWithHost + '/videos', { params })
                .pipe(
@@ -152,12 +164,15 @@ export class VideoService implements VideosProvider {
                )
   }
 
-  getVideoChannelVideos (
+  getVideoChannelVideos (parameters: {
     videoChannel: VideoChannel,
     videoPagination: ComponentPaginationLight,
     sort: VideoSortField,
     nsfwPolicy?: NSFWPolicyType
-  ): Observable<ResultList<Video>> {
+    videoFilter?: VideoFilter
+  }): Observable<ResultList<Video>> {
+    const { videoChannel, videoPagination, sort, nsfwPolicy, videoFilter } = parameters
+
     const pagination = this.restService.componentPaginationToRestPagination(videoPagination)
 
     let params = new HttpParams()
@@ -167,6 +182,10 @@ export class VideoService implements VideosProvider {
       params = params.set('nsfw', this.nsfwPolicyToParam(nsfwPolicy))
     }
 
+    if (videoFilter) {
+      params = params.set('filter', videoFilter)
+    }
+
     return this.authHttp
                .get<ResultList<Video>>(VideoChannelService.BASE_VIDEO_CHANNEL_URL + videoChannel.nameWithHost + '/videos', { params })
                .pipe(