diff options
author | Chocobozzz <me@florianbigard.com> | 2023-01-19 09:29:47 +0100 |
---|---|---|
committer | Chocobozzz <chocobozzz@cpy.re> | 2023-01-19 13:53:40 +0100 |
commit | 9589907c89d29a6c0acd52c8cb789af9f93ce9af (patch) | |
tree | f1d238e6144231bbfbed5614e05a21eca8aa6fc2 /client/src/app/+admin/moderation/registration-list/admin-registration.service.ts | |
parent | b379759f55a35837b803a3b988674972db2903d1 (diff) | |
download | PeerTube-9589907c89d29a6c0acd52c8cb789af9f93ce9af.tar.gz PeerTube-9589907c89d29a6c0acd52c8cb789af9f93ce9af.tar.zst PeerTube-9589907c89d29a6c0acd52c8cb789af9f93ce9af.zip |
Implement signup approval in client
Diffstat (limited to 'client/src/app/+admin/moderation/registration-list/admin-registration.service.ts')
-rw-r--r-- | client/src/app/+admin/moderation/registration-list/admin-registration.service.ts | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/client/src/app/+admin/moderation/registration-list/admin-registration.service.ts b/client/src/app/+admin/moderation/registration-list/admin-registration.service.ts new file mode 100644 index 000000000..012f942b3 --- /dev/null +++ b/client/src/app/+admin/moderation/registration-list/admin-registration.service.ts | |||
@@ -0,0 +1,63 @@ | |||
1 | import { SortMeta } from 'primeng/api' | ||
2 | import { catchError } from 'rxjs/operators' | ||
3 | import { HttpClient, HttpParams } from '@angular/common/http' | ||
4 | import { Injectable } from '@angular/core' | ||
5 | import { RestExtractor, RestPagination, RestService } from '@app/core' | ||
6 | import { ResultList, UserRegistration } from '@shared/models' | ||
7 | import { environment } from '../../../../environments/environment' | ||
8 | |||
9 | @Injectable() | ||
10 | export class AdminRegistrationService { | ||
11 | private static BASE_REGISTRATION_URL = environment.apiUrl + '/api/v1/users/registrations' | ||
12 | |||
13 | constructor ( | ||
14 | private authHttp: HttpClient, | ||
15 | private restExtractor: RestExtractor, | ||
16 | private restService: RestService | ||
17 | ) { } | ||
18 | |||
19 | listRegistrations (options: { | ||
20 | pagination: RestPagination | ||
21 | sort: SortMeta | ||
22 | search?: string | ||
23 | }) { | ||
24 | const { pagination, sort, search } = options | ||
25 | |||
26 | const url = AdminRegistrationService.BASE_REGISTRATION_URL | ||
27 | |||
28 | let params = new HttpParams() | ||
29 | params = this.restService.addRestGetParams(params, pagination, sort) | ||
30 | |||
31 | if (search) { | ||
32 | params = params.append('search', search) | ||
33 | } | ||
34 | |||
35 | return this.authHttp.get<ResultList<UserRegistration>>(url, { params }) | ||
36 | .pipe( | ||
37 | catchError(res => this.restExtractor.handleError(res)) | ||
38 | ) | ||
39 | } | ||
40 | |||
41 | acceptRegistration (registration: UserRegistration, moderationResponse: string) { | ||
42 | const url = AdminRegistrationService.BASE_REGISTRATION_URL + '/' + registration.id + '/accept' | ||
43 | const body = { moderationResponse } | ||
44 | |||
45 | return this.authHttp.post(url, body) | ||
46 | .pipe(catchError(res => this.restExtractor.handleError(res))) | ||
47 | } | ||
48 | |||
49 | rejectRegistration (registration: UserRegistration, moderationResponse: string) { | ||
50 | const url = AdminRegistrationService.BASE_REGISTRATION_URL + '/' + registration.id + '/reject' | ||
51 | const body = { moderationResponse } | ||
52 | |||
53 | return this.authHttp.post(url, body) | ||
54 | .pipe(catchError(res => this.restExtractor.handleError(res))) | ||
55 | } | ||
56 | |||
57 | removeRegistration (registration: UserRegistration) { | ||
58 | const url = AdminRegistrationService.BASE_REGISTRATION_URL + '/' + registration.id | ||
59 | |||
60 | return this.authHttp.delete(url) | ||
61 | .pipe(catchError(res => this.restExtractor.handleError(res))) | ||
62 | } | ||
63 | } | ||