+ reportVideo(id: string, reason: string) {
+ const url = VideoService.BASE_VIDEO_URL + id + '/abuse';
+ const body = {
+ reason
+ };
+
+ return this.authHttp.post(url, body)
+ .map(this.restExtractor.extractDataBool)
+ .catch((res) => this.restExtractor.handleError(res));
+ }
+
+ setVideoLike(id: string) {
+ return this.setVideoRate(id, 'like');
+ }
+
+ setVideoDislike(id: string) {
+ return this.setVideoRate(id, 'dislike');
+ }
+
+ getUserVideoRating(id: string) {
+ const url = UserService.BASE_USERS_URL + '/me/videos/' + id + '/rating';
+
+ return this.authHttp.get(url)
+ .map(this.restExtractor.extractDataGet)
+ .catch((res) => this.restExtractor.handleError(res));
+ }
+
+ private setVideoRate(id: string, rateType: RateType) {
+ const url = VideoService.BASE_VIDEO_URL + id + '/rate';
+ const body = {
+ rating: rateType
+ };
+
+ return this.authHttp.put(url, body)
+ .map(this.restExtractor.extractDataBool)
+ .catch((res) => this.restExtractor.handleError(res));
+ }
+