aboutsummaryrefslogtreecommitdiffhomepage
path: root/client/src/app/videos/+video-watch/comment/video-comment.service.ts
diff options
context:
space:
mode:
Diffstat (limited to 'client/src/app/videos/+video-watch/comment/video-comment.service.ts')
-rw-r--r--client/src/app/videos/+video-watch/comment/video-comment.service.ts44
1 files changed, 26 insertions, 18 deletions
diff --git a/client/src/app/videos/+video-watch/comment/video-comment.service.ts b/client/src/app/videos/+video-watch/comment/video-comment.service.ts
index 0bf7696fe..5b9a991a0 100644
--- a/client/src/app/videos/+video-watch/comment/video-comment.service.ts
+++ b/client/src/app/videos/+video-watch/comment/video-comment.service.ts
@@ -1,10 +1,8 @@
1import { catchError, map } from 'rxjs/operators'
1import { HttpClient, HttpParams } from '@angular/common/http' 2import { HttpClient, HttpParams } from '@angular/common/http'
2import { Injectable } from '@angular/core' 3import { Injectable } from '@angular/core'
3import { lineFeedToHtml } from '@app/shared/misc/utils' 4import { lineFeedToHtml } from '@app/shared/misc/utils'
4import { MarkdownService } from '@app/videos/shared' 5import { Observable } from 'rxjs'
5import 'rxjs/add/operator/catch'
6import 'rxjs/add/operator/map'
7import { Observable } from 'rxjs/Observable'
8import { ResultList } from '../../../../../../shared/models' 6import { ResultList } from '../../../../../../shared/models'
9import { 7import {
10 VideoComment as VideoCommentServerModel, 8 VideoComment as VideoCommentServerModel,
@@ -32,8 +30,10 @@ export class VideoCommentService {
32 const normalizedComment = lineFeedToHtml(comment, 'text') 30 const normalizedComment = lineFeedToHtml(comment, 'text')
33 31
34 return this.authHttp.post(url, normalizedComment) 32 return this.authHttp.post(url, normalizedComment)
35 .map(data => this.extractVideoComment(data['comment'])) 33 .pipe(
36 .catch(this.restExtractor.handleError) 34 map(data => this.extractVideoComment(data['comment'])),
35 catchError(this.restExtractor.handleError)
36 )
37 } 37 }
38 38
39 addCommentReply (videoId: number | string, inReplyToCommentId: number, comment: VideoCommentCreate) { 39 addCommentReply (videoId: number | string, inReplyToCommentId: number, comment: VideoCommentCreate) {
@@ -41,8 +41,10 @@ export class VideoCommentService {
41 const normalizedComment = lineFeedToHtml(comment, 'text') 41 const normalizedComment = lineFeedToHtml(comment, 'text')
42 42
43 return this.authHttp.post(url, normalizedComment) 43 return this.authHttp.post(url, normalizedComment)
44 .map(data => this.extractVideoComment(data['comment'])) 44 .pipe(
45 .catch(this.restExtractor.handleError) 45 map(data => this.extractVideoComment(data[ 'comment' ])),
46 catchError(this.restExtractor.handleError)
47 )
46 } 48 }
47 49
48 getVideoCommentThreads ( 50 getVideoCommentThreads (
@@ -57,27 +59,33 @@ export class VideoCommentService {
57 59
58 const url = VideoCommentService.BASE_VIDEO_URL + videoId + '/comment-threads' 60 const url = VideoCommentService.BASE_VIDEO_URL + videoId + '/comment-threads'
59 return this.authHttp 61 return this.authHttp
60 .get(url, { params }) 62 .get(url, { params })
61 .map(this.extractVideoComments) 63 .pipe(
62 .catch((res) => this.restExtractor.handleError(res)) 64 map(this.extractVideoComments),
65 catchError((res) => this.restExtractor.handleError(res))
66 )
63 } 67 }
64 68
65 getVideoThreadComments (videoId: number | string, threadId: number): Observable<VideoCommentThreadTree> { 69 getVideoThreadComments (videoId: number | string, threadId: number): Observable<VideoCommentThreadTree> {
66 const url = `${VideoCommentService.BASE_VIDEO_URL + videoId}/comment-threads/${threadId}` 70 const url = `${VideoCommentService.BASE_VIDEO_URL + videoId}/comment-threads/${threadId}`
67 71
68 return this.authHttp 72 return this.authHttp
69 .get(url) 73 .get(url)
70 .map(tree => this.extractVideoCommentTree(tree as VideoCommentThreadTree)) 74 .pipe(
71 .catch((res) => this.restExtractor.handleError(res)) 75 map(tree => this.extractVideoCommentTree(tree as VideoCommentThreadTree)),
76 catchError((res) => this.restExtractor.handleError(res))
77 )
72 } 78 }
73 79
74 deleteVideoComment (videoId: number | string, commentId: number) { 80 deleteVideoComment (videoId: number | string, commentId: number) {
75 const url = `${VideoCommentService.BASE_VIDEO_URL + videoId}/comments/${commentId}` 81 const url = `${VideoCommentService.BASE_VIDEO_URL + videoId}/comments/${commentId}`
76 82
77 return this.authHttp 83 return this.authHttp
78 .delete(url) 84 .delete(url)
79 .map(this.restExtractor.extractDataBool) 85 .pipe(
80 .catch((res) => this.restExtractor.handleError(res)) 86 map(this.restExtractor.extractDataBool),
87 catchError((res) => this.restExtractor.handleError(res))
88 )
81 } 89 }
82 90
83 private extractVideoComment (videoComment: VideoCommentServerModel) { 91 private extractVideoComment (videoComment: VideoCommentServerModel) {
@@ -87,7 +95,7 @@ export class VideoCommentService {
87 private extractVideoComments (result: ResultList<VideoCommentServerModel>) { 95 private extractVideoComments (result: ResultList<VideoCommentServerModel>) {
88 const videoCommentsJson = result.data 96 const videoCommentsJson = result.data
89 const totalComments = result.total 97 const totalComments = result.total
90 const comments = [] 98 const comments: VideoComment[] = []
91 99
92 for (const videoCommentJson of videoCommentsJson) { 100 for (const videoCommentJson of videoCommentsJson) {
93 comments.push(new VideoComment(videoCommentJson)) 101 comments.push(new VideoComment(videoCommentJson))