X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=client%2Fsrc%2Fapp%2Fshared%2Fshared-instance%2Finstance-follow.service.ts;h=a83f7c4ad56cae17ba18c71b5826dbb0fcd29e18;hb=eaa529528cafcfb291009f9f99d296c81e792899;hp=f99dced215ed5e3ea9c6f64613f0d11d6ac2e8a8;hpb=0d7c73142c3ed3508ff44ab04505256d5443ab19;p=github%2FChocobozzz%2FPeerTube.git diff --git a/client/src/app/shared/shared-instance/instance-follow.service.ts b/client/src/app/shared/shared-instance/instance-follow.service.ts index f99dced21..a83f7c4ad 100644 --- a/client/src/app/shared/shared-instance/instance-follow.service.ts +++ b/client/src/app/shared/shared-instance/instance-follow.service.ts @@ -4,12 +4,12 @@ import { catchError, map } from 'rxjs/operators' import { HttpClient, HttpParams } from '@angular/common/http' import { Injectable } from '@angular/core' import { RestExtractor, RestPagination, RestService } from '@app/core' -import { ActivityPubActorType, ActorFollow, FollowState, ResultList } from '@shared/models' +import { ActivityPubActorType, ActorFollow, FollowState, ResultList, ServerFollowCreate } from '@shared/models' import { environment } from '../../../environments/environment' @Injectable() export class InstanceFollowService { - private static BASE_APPLICATION_URL = 'https://peertube2.cpy.re' + '/api/v1/server' + private static BASE_APPLICATION_URL = environment.apiUrl + '/api/v1/server' constructor ( private authHttp: HttpClient, @@ -19,10 +19,10 @@ export class InstanceFollowService { } getFollowing (options: { - pagination: RestPagination, - sort: SortMeta, - search?: string, - actorType?: ActivityPubActorType, + pagination: RestPagination + sort: SortMeta + search?: string + actorType?: ActivityPubActorType state?: FollowState }): Observable> { const { pagination, sort, search, state, actorType } = options @@ -42,10 +42,10 @@ export class InstanceFollowService { } getFollowers (options: { - pagination: RestPagination, - sort: SortMeta, - search?: string, - actorType?: ActivityPubActorType, + pagination: RestPagination + sort: SortMeta + search?: string + actorType?: ActivityPubActorType state?: FollowState }): Observable> { const { pagination, sort, search, state, actorType } = options @@ -64,53 +64,41 @@ export class InstanceFollowService { ) } - follow (notEmptyHosts: string[]) { - const body = { - hosts: notEmptyHosts + follow (hostsOrHandles: string[]) { + const body: ServerFollowCreate = { + handles: hostsOrHandles.filter(v => v.includes('@')), + hosts: hostsOrHandles.filter(v => !v.includes('@')) } return this.authHttp.post(InstanceFollowService.BASE_APPLICATION_URL + '/following', body) - .pipe( - map(this.restExtractor.extractDataBool), - catchError(res => this.restExtractor.handleError(res)) - ) + .pipe(catchError(res => this.restExtractor.handleError(res))) } unfollow (follow: ActorFollow) { - return this.authHttp.delete(InstanceFollowService.BASE_APPLICATION_URL + '/following/' + follow.following.host) - .pipe( - map(this.restExtractor.extractDataBool), - catchError(res => this.restExtractor.handleError(res)) - ) + const handle = follow.following.name + '@' + follow.following.host + + return this.authHttp.delete(InstanceFollowService.BASE_APPLICATION_URL + '/following/' + handle) + .pipe(catchError(res => this.restExtractor.handleError(res))) } acceptFollower (follow: ActorFollow) { const handle = follow.follower.name + '@' + follow.follower.host return this.authHttp.post(`${InstanceFollowService.BASE_APPLICATION_URL}/followers/${handle}/accept`, {}) - .pipe( - map(this.restExtractor.extractDataBool), - catchError(res => this.restExtractor.handleError(res)) - ) + .pipe(catchError(res => this.restExtractor.handleError(res))) } rejectFollower (follow: ActorFollow) { const handle = follow.follower.name + '@' + follow.follower.host return this.authHttp.post(`${InstanceFollowService.BASE_APPLICATION_URL}/followers/${handle}/reject`, {}) - .pipe( - map(this.restExtractor.extractDataBool), - catchError(res => this.restExtractor.handleError(res)) - ) + .pipe(catchError(res => this.restExtractor.handleError(res))) } removeFollower (follow: ActorFollow) { const handle = follow.follower.name + '@' + follow.follower.host return this.authHttp.delete(`${InstanceFollowService.BASE_APPLICATION_URL}/followers/${handle}`) - .pipe( - map(this.restExtractor.extractDataBool), - catchError(res => this.restExtractor.handleError(res)) - ) + .pipe(catchError(res => this.restExtractor.handleError(res))) } }