X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=client%2Fsrc%2Fapp%2F%2Badmin%2Ffollows%2Fshared%2Ffollow.service.ts;h=c2b8ef006de53ea33dfaeacf4b260bbf81b42cf7;hb=0dc647775881eb1378b213a530996cd096de24ea;hp=0bfbe8eb60e4437297dd400a87ab0a2a9f9c9fe5;hpb=7e9334c34db23e5ad1e118151b24c720dd985984;p=github%2FChocobozzz%2FPeerTube.git diff --git a/client/src/app/+admin/follows/shared/follow.service.ts b/client/src/app/+admin/follows/shared/follow.service.ts index 0bfbe8eb6..c2b8ef006 100644 --- a/client/src/app/+admin/follows/shared/follow.service.ts +++ b/client/src/app/+admin/follows/shared/follow.service.ts @@ -1,40 +1,47 @@ -import { Injectable } from '@angular/core' +import { catchError, map } from 'rxjs/operators' import { HttpClient, HttpParams } from '@angular/common/http' -import { Observable } from 'rxjs/Observable' -import 'rxjs/add/operator/catch' -import 'rxjs/add/operator/map' - +import { Injectable } from '@angular/core' import { SortMeta } from 'primeng/primeng' - +import { Observable } from 'rxjs' +import { ActorFollow, ResultList } from '../../../../../../shared' +import { environment } from '../../../../environments/environment' import { RestExtractor, RestPagination, RestService } from '../../../shared' -import { AccountFollow, ResultList } from '../../../../../../shared' @Injectable() export class FollowService { - private static BASE_APPLICATION_URL = API_URL + '/api/v1/server' + private static BASE_APPLICATION_URL = environment.apiUrl + '/api/v1/server' constructor ( private authHttp: HttpClient, private restService: RestService, private restExtractor: RestExtractor - ) {} + ) { + } - getFollowing (pagination: RestPagination, sort: SortMeta): Observable> { + getFollowing (pagination: RestPagination, sort: SortMeta, search?: string): Observable> { let params = new HttpParams() params = this.restService.addRestGetParams(params, pagination, sort) - return this.authHttp.get>(FollowService.BASE_APPLICATION_URL + '/following', { params }) - .map(res => this.restExtractor.convertResultListDateToHuman(res)) - .catch(res => this.restExtractor.handleError(res)) + if (search) params = params.append('search', search) + + return this.authHttp.get>(FollowService.BASE_APPLICATION_URL + '/following', { params }) + .pipe( + map(res => this.restExtractor.convertResultListDateToHuman(res)), + catchError(res => this.restExtractor.handleError(res)) + ) } - getFollowers (pagination: RestPagination, sort: SortMeta): Observable> { + getFollowers (pagination: RestPagination, sort: SortMeta, search?: string): Observable> { let params = new HttpParams() params = this.restService.addRestGetParams(params, pagination, sort) - return this.authHttp.get>(FollowService.BASE_APPLICATION_URL + '/followers', { params }) - .map(res => this.restExtractor.convertResultListDateToHuman(res)) - .catch(res => this.restExtractor.handleError(res)) + if (search) params = params.append('search', search) + + return this.authHttp.get>(FollowService.BASE_APPLICATION_URL + '/followers', { params }) + .pipe( + map(res => this.restExtractor.convertResultListDateToHuman(res)), + catchError(res => this.restExtractor.handleError(res)) + ) } follow (notEmptyHosts: string[]) { @@ -43,13 +50,47 @@ export class FollowService { } return this.authHttp.post(FollowService.BASE_APPLICATION_URL + '/following', body) - .map(this.restExtractor.extractDataBool) - .catch(res => this.restExtractor.handleError(res)) + .pipe( + map(this.restExtractor.extractDataBool), + catchError(res => this.restExtractor.handleError(res)) + ) + } + + unfollow (follow: ActorFollow) { + return this.authHttp.delete(FollowService.BASE_APPLICATION_URL + '/following/' + follow.following.host) + .pipe( + map(this.restExtractor.extractDataBool), + catchError(res => this.restExtractor.handleError(res)) + ) + } + + acceptFollower (follow: ActorFollow) { + const handle = follow.follower.name + '@' + follow.follower.host + + return this.authHttp.post(`${FollowService.BASE_APPLICATION_URL}/followers/${handle}/accept`, {}) + .pipe( + map(this.restExtractor.extractDataBool), + catchError(res => this.restExtractor.handleError(res)) + ) } - unfollow (follow: AccountFollow) { - return this.authHttp.delete(FollowService.BASE_APPLICATION_URL + '/following/' + follow.following.id) - .map(this.restExtractor.extractDataBool) - .catch(res => this.restExtractor.handleError(res)) + rejectFollower (follow: ActorFollow) { + const handle = follow.follower.name + '@' + follow.follower.host + + return this.authHttp.post(`${FollowService.BASE_APPLICATION_URL}/followers/${handle}/reject`, {}) + .pipe( + map(this.restExtractor.extractDataBool), + catchError(res => this.restExtractor.handleError(res)) + ) + } + + removeFollower (follow: ActorFollow) { + const handle = follow.follower.name + '@' + follow.follower.host + + return this.authHttp.delete(`${FollowService.BASE_APPLICATION_URL}/followers/${handle}`) + .pipe( + map(this.restExtractor.extractDataBool), + catchError(res => this.restExtractor.handleError(res)) + ) } }