aboutsummaryrefslogtreecommitdiffhomepage
path: root/client/src/app/+admin/moderation/registration-list/admin-registration.service.ts
diff options
context:
space:
mode:
authorChocobozzz <me@florianbigard.com>2023-01-19 09:29:47 +0100
committerChocobozzz <chocobozzz@cpy.re>2023-01-19 13:53:40 +0100
commit9589907c89d29a6c0acd52c8cb789af9f93ce9af (patch)
treef1d238e6144231bbfbed5614e05a21eca8aa6fc2 /client/src/app/+admin/moderation/registration-list/admin-registration.service.ts
parentb379759f55a35837b803a3b988674972db2903d1 (diff)
downloadPeerTube-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.ts63
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 @@
1import { SortMeta } from 'primeng/api'
2import { catchError } from 'rxjs/operators'
3import { HttpClient, HttpParams } from '@angular/common/http'
4import { Injectable } from '@angular/core'
5import { RestExtractor, RestPagination, RestService } from '@app/core'
6import { ResultList, UserRegistration } from '@shared/models'
7import { environment } from '../../../../environments/environment'
8
9@Injectable()
10export 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}