From fd45e8f43c2638478599ca75632518054461da85 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Tue, 31 Oct 2017 11:52:52 +0100 Subject: Add video privacy setting --- .../src/app/videos/shared/video-details.model.ts | 7 ++- client/src/app/videos/shared/video-edit.model.ts | 6 ++- client/src/app/videos/shared/video.service.ts | 55 ++++++++++++++-------- 3 files changed, 47 insertions(+), 21 deletions(-) (limited to 'client/src/app/videos/shared') diff --git a/client/src/app/videos/shared/video-details.model.ts b/client/src/app/videos/shared/video-details.model.ts index 68ded5210..84f96a25f 100644 --- a/client/src/app/videos/shared/video-details.model.ts +++ b/client/src/app/videos/shared/video-details.model.ts @@ -5,7 +5,8 @@ import { VideoFile, VideoChannel, VideoResolution, - UserRight + UserRight, + VideoPrivacy } from '../../../../../shared' export class VideoDetails extends Video implements VideoDetailsServerModel { @@ -41,10 +42,14 @@ export class VideoDetails extends Video implements VideoDetailsServerModel { descriptionPath: string files: VideoFile[] channel: VideoChannel + privacy: VideoPrivacy + privacyLabel: string constructor (hash: VideoDetailsServerModel) { super(hash) + this.privacy = hash.privacy + this.privacyLabel = hash.privacyLabel this.descriptionPath = hash.descriptionPath this.files = hash.files this.channel = hash.channel diff --git a/client/src/app/videos/shared/video-edit.model.ts b/client/src/app/videos/shared/video-edit.model.ts index e0b7bf130..88d23a59f 100644 --- a/client/src/app/videos/shared/video-edit.model.ts +++ b/client/src/app/videos/shared/video-edit.model.ts @@ -1,4 +1,5 @@ import { VideoDetails } from './video-details.model' +import { VideoPrivacy } from '../../../../../shared/models/videos/video-privacy.enum' export class VideoEdit { category: number @@ -9,6 +10,7 @@ export class VideoEdit { tags: string[] nsfw: boolean channel: number + privacy: VideoPrivacy uuid?: string id?: number @@ -23,6 +25,7 @@ export class VideoEdit { this.tags = videoDetails.tags this.nsfw = videoDetails.nsfw this.channel = videoDetails.channel.id + this.privacy = videoDetails.privacy } patch (values: Object) { @@ -40,7 +43,8 @@ export class VideoEdit { name: this.name, tags: this.tags, nsfw: this.nsfw, - channel: this.channel + channel: this.channel, + privacy: this.privacy } } } diff --git a/client/src/app/videos/shared/video.service.ts b/client/src/app/videos/shared/video.service.ts index 7d5372334..8459aa0d3 100644 --- a/client/src/app/videos/shared/video.service.ts +++ b/client/src/app/videos/shared/video.service.ts @@ -19,7 +19,6 @@ import { UserVideoRate, VideoRateType, VideoUpdate, - VideoAbuseCreate, UserVideoRateUpdate, Video as VideoServerModel, VideoDetails as VideoDetailsServerModel, @@ -51,6 +50,7 @@ export class VideoService { licence: video.licence, language, description: video.description, + privacy: video.privacy, tags: video.tags, nsfw: video.nsfw } @@ -63,22 +63,35 @@ export class VideoService { uploadVideo (video: FormData) { const req = new HttpRequest('POST', VideoService.BASE_VIDEO_URL + 'upload', video, { reportProgress: true }) - return this.authHttp.request(req) - .catch(this.restExtractor.handleError) + return this.authHttp + .request(req) + .catch(this.restExtractor.handleError) } - getVideos (videoPagination: VideoPagination, sort: SortField) { + getMyVideos (videoPagination: VideoPagination, sort: SortField): Observable<{ videos: Video[], totalVideos: number}> { const pagination = this.videoPaginationToRestPagination(videoPagination) let params = new HttpParams() params = this.restService.addRestGetParams(params, pagination, sort) - return this.authHttp.get(VideoService.BASE_VIDEO_URL, { params }) - .map(this.extractVideos) - .catch((res) => this.restExtractor.handleError(res)) + return this.authHttp.get(UserService.BASE_USERS_URL + '/me/videos', { params }) + .map(this.extractVideos) + .catch((res) => this.restExtractor.handleError(res)) } - searchVideos (search: Search, videoPagination: VideoPagination, sort: SortField) { + getVideos (videoPagination: VideoPagination, sort: SortField): Observable<{ videos: Video[], totalVideos: number}> { + const pagination = this.videoPaginationToRestPagination(videoPagination) + + let params = new HttpParams() + params = this.restService.addRestGetParams(params, pagination, sort) + + return this.authHttp + .get(VideoService.BASE_VIDEO_URL, { params }) + .map(this.extractVideos) + .catch((res) => this.restExtractor.handleError(res)) + } + + searchVideos (search: Search, videoPagination: VideoPagination, sort: SortField): Observable<{ videos: Video[], totalVideos: number}> { const url = VideoService.BASE_VIDEO_URL + 'search/' + encodeURIComponent(search.value) const pagination = this.videoPaginationToRestPagination(videoPagination) @@ -88,15 +101,17 @@ export class VideoService { if (search.field) params.set('field', search.field) - return this.authHttp.get>(url, { params }) - .map(this.extractVideos) - .catch((res) => this.restExtractor.handleError(res)) + return this.authHttp + .get>(url, { params }) + .map(this.extractVideos) + .catch((res) => this.restExtractor.handleError(res)) } removeVideo (id: number) { - return this.authHttp.delete(VideoService.BASE_VIDEO_URL + id) - .map(this.restExtractor.extractDataBool) - .catch((res) => this.restExtractor.handleError(res)) + return this.authHttp + .delete(VideoService.BASE_VIDEO_URL + id) + .map(this.restExtractor.extractDataBool) + .catch((res) => this.restExtractor.handleError(res)) } loadCompleteDescription (descriptionPath: string) { @@ -117,8 +132,9 @@ export class VideoService { getUserVideoRating (id: number): Observable { const url = UserService.BASE_USERS_URL + 'me/videos/' + id + '/rating' - return this.authHttp.get(url) - .catch(res => this.restExtractor.handleError(res)) + return this.authHttp + .get(url) + .catch(res => this.restExtractor.handleError(res)) } private videoPaginationToRestPagination (videoPagination: VideoPagination) { @@ -134,9 +150,10 @@ export class VideoService { rating: rateType } - return this.authHttp.put(url, body) - .map(this.restExtractor.extractDataBool) - .catch(res => this.restExtractor.handleError(res)) + return this.authHttp + .put(url, body) + .map(this.restExtractor.extractDataBool) + .catch(res => this.restExtractor.handleError(res)) } private extractVideos (result: ResultList) { -- cgit v1.2.3