X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=client%2Fsrc%2Fapp%2Fshared%2Fvideo-abuse%2Fvideo-abuse.service.ts;h=61b7e1b9880dfbbdeacd1e3b6f229229eaf6af7c;hb=3dfa84940273619ae00f11a5f419a5e4876b2f53;hp=da7b2ef8a34f8bb0356a646b45aa99a180817fbe;hpb=1840c2f7c91f5f89602a3683d85b0a9df1454855;p=github%2FChocobozzz%2FPeerTube.git diff --git a/client/src/app/shared/video-abuse/video-abuse.service.ts b/client/src/app/shared/video-abuse/video-abuse.service.ts index da7b2ef8a..61b7e1b98 100644 --- a/client/src/app/shared/video-abuse/video-abuse.service.ts +++ b/client/src/app/shared/video-abuse/video-abuse.service.ts @@ -1,42 +1,64 @@ -import { Injectable } from '@angular/core'; -import { Http } from '@angular/http'; -import { Observable } from 'rxjs/Observable'; -import 'rxjs/add/operator/catch'; -import 'rxjs/add/operator/map'; - -import { AuthService } from '../core'; -import { AuthHttp } from '../auth'; -import { RestDataSource, RestExtractor, ResultList } from '../rest'; -import { VideoAbuse } from './video-abuse.model'; +import { catchError, map } from 'rxjs/operators' +import { HttpClient, HttpParams } from '@angular/common/http' +import { Injectable } from '@angular/core' +import { SortMeta } from 'primeng/components/common/sortmeta' +import { Observable } from 'rxjs' +import { ResultList, VideoAbuse, VideoAbuseUpdate } from '../../../../../shared' +import { environment } from '../../../environments/environment' +import { RestExtractor, RestPagination, RestService } from '../rest' @Injectable() export class VideoAbuseService { - private static BASE_VIDEO_ABUSE_URL = API_URL + '/api/v1/videos/'; + private static BASE_VIDEO_ABUSE_URL = environment.apiUrl + '/api/v1/videos/' - constructor( - private authHttp: AuthHttp, + constructor ( + private authHttp: HttpClient, + private restService: RestService, private restExtractor: RestExtractor ) {} - getDataSource() { - return new RestDataSource(this.authHttp, VideoAbuseService.BASE_VIDEO_ABUSE_URL + 'abuse'); + getVideoAbuses (pagination: RestPagination, sort: SortMeta): Observable> { + const url = VideoAbuseService.BASE_VIDEO_ABUSE_URL + 'abuse' + + let params = new HttpParams() + params = this.restService.addRestGetParams(params, pagination, sort) + + return this.authHttp.get>(url, { params }) + .pipe( + map(res => this.restExtractor.convertResultListDateToHuman(res)), + catchError(res => this.restExtractor.handleError(res)) + ) } - reportVideo(id: string, reason: string) { + reportVideo (id: number, reason: string) { + const url = VideoAbuseService.BASE_VIDEO_ABUSE_URL + id + '/abuse' const body = { reason - }; - const url = VideoAbuseService.BASE_VIDEO_ABUSE_URL + id + '/abuse'; + } return this.authHttp.post(url, body) - .map(this.restExtractor.extractDataBool) - .catch((res) => this.restExtractor.handleError(res)); + .pipe( + map(this.restExtractor.extractDataBool), + catchError(res => this.restExtractor.handleError(res)) + ) } - private extractVideoAbuses(result: ResultList) { - const videoAbuses: VideoAbuse[] = result.data; - const totalVideoAbuses = result.total; + updateVideoAbuse (videoAbuse: VideoAbuse, abuseUpdate: VideoAbuseUpdate) { + const url = VideoAbuseService.BASE_VIDEO_ABUSE_URL + videoAbuse.video.uuid + '/abuse/' + videoAbuse.id - return { videoAbuses, totalVideoAbuses }; + return this.authHttp.put(url, abuseUpdate) + .pipe( + map(this.restExtractor.extractDataBool), + catchError(res => this.restExtractor.handleError(res)) + ) } -} + + removeVideoAbuse (videoAbuse: VideoAbuse) { + const url = VideoAbuseService.BASE_VIDEO_ABUSE_URL + videoAbuse.video.uuid + '/abuse/' + videoAbuse.id + + return this.authHttp.delete(url) + .pipe( + map(this.restExtractor.extractDataBool), + catchError(res => this.restExtractor.handleError(res)) + ) + }}