X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=client%2Fsrc%2Fapp%2Fvideos%2F%2Bvideo-watch%2Fcomment%2Fvideo-comment.service.ts;h=0b071539075aa43b648fcc642251462145a19d9a;hb=be27ef3b4682c5639039474c39ee0d234d16f482;hp=b8e5878c5b9c8391dedd419b70984e5eb5d222b6;hpb=88108880bbdba473cfe36ecbebc1c3c4f972e102;p=github%2FChocobozzz%2FPeerTube.git 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 b8e5878c5..0b0715390 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 @@ -3,17 +3,18 @@ import { HttpClient, HttpParams } from '@angular/common/http' import { Injectable } from '@angular/core' import { objectLineFeedToHtml } from '@app/shared/misc/utils' import { Observable } from 'rxjs' -import { ResultList, FeedFormat } from '../../../../../../shared/models' +import { FeedFormat, ResultList } from '../../../../../../shared/models' import { VideoComment as VideoCommentServerModel, VideoCommentCreate, - VideoCommentThreadTree + VideoCommentThreadTree as VideoCommentThreadTreeServerModel } from '../../../../../../shared/models/videos/video-comment.model' import { environment } from '../../../../environments/environment' import { RestExtractor, RestService } from '../../../shared/rest' -import { ComponentPagination } from '../../../shared/rest/component-pagination.model' -import { VideoSortField } from '../../../shared/video/sort-field.type' +import { ComponentPaginationLight } from '../../../shared/rest/component-pagination.model' +import { CommentSortField } from '../../../shared/video/sort-field.type' import { VideoComment } from './video-comment.model' +import { VideoCommentThreadTree } from '@app/videos/+video-watch/comment/video-comment-thread-tree.model' @Injectable() export class VideoCommentService { @@ -48,32 +49,37 @@ export class VideoCommentService { ) } - getVideoCommentThreads ( + getVideoCommentThreads (parameters: { videoId: number | string, - componentPagination: ComponentPagination, - sort: VideoSortField - ): Observable<{ comments: VideoComment[], totalComments: number}> { + componentPagination: ComponentPaginationLight, + sort: CommentSortField + }): Observable> { + const { videoId, componentPagination, sort } = parameters + const pagination = this.restService.componentPaginationToRestPagination(componentPagination) let params = new HttpParams() params = this.restService.addRestGetParams(params, pagination, sort) const url = VideoCommentService.BASE_VIDEO_URL + videoId + '/comment-threads' - return this.authHttp - .get(url, { params }) + return this.authHttp.get>(url, { params }) .pipe( - map(this.extractVideoComments), + map(result => this.extractVideoComments(result)), catchError(err => this.restExtractor.handleError(err)) ) } - getVideoThreadComments (videoId: number | string, threadId: number): Observable { + getVideoThreadComments (parameters: { + videoId: number | string, + threadId: number + }): Observable { + const { videoId, threadId } = parameters const url = `${VideoCommentService.BASE_VIDEO_URL + videoId}/comment-threads/${threadId}` return this.authHttp - .get(url) + .get(url) .pipe( - map(tree => this.extractVideoCommentTree(tree as VideoCommentThreadTree)), + map(tree => this.extractVideoCommentTree(tree)), catchError(err => this.restExtractor.handleError(err)) ) } @@ -130,15 +136,15 @@ export class VideoCommentService { comments.push(new VideoComment(videoCommentJson)) } - return { comments, totalComments } + return { data: comments, total: totalComments } } - private extractVideoCommentTree (tree: VideoCommentThreadTree) { - if (!tree) return tree + private extractVideoCommentTree (tree: VideoCommentThreadTreeServerModel) { + if (!tree) return tree as VideoCommentThreadTree tree.comment = new VideoComment(tree.comment) tree.children.forEach(c => this.extractVideoCommentTree(c)) - return tree + return tree as VideoCommentThreadTree } }