]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blob - client/src/app/+verify-account/verify-account-email/verify-account-email.component.ts
add user account email verificiation (#977)
[github/Chocobozzz/PeerTube.git] / client / src / app / +verify-account / verify-account-email / verify-account-email.component.ts
1 import { Component, OnInit } from '@angular/core'
2 import { ActivatedRoute, Router } from '@angular/router'
3 import { I18n } from '@ngx-translate/i18n-polyfill'
4 import { NotificationsService } from 'angular2-notifications'
5 import { UserService } from '@app/shared'
6
7 @Component({
8 selector: 'my-verify-account-email',
9 templateUrl: './verify-account-email.component.html'
10 })
11
12 export class VerifyAccountEmailComponent implements OnInit {
13 success = false
14
15 private userId: number
16 private verificationString: string
17
18 constructor (
19 private userService: UserService,
20 private notificationsService: NotificationsService,
21 private router: Router,
22 private route: ActivatedRoute,
23 private i18n: I18n
24 ) {
25 }
26
27 ngOnInit () {
28
29 this.userId = this.route.snapshot.queryParams['userId']
30 this.verificationString = this.route.snapshot.queryParams['verificationString']
31
32 if (!this.userId || !this.verificationString) {
33 this.notificationsService.error(this.i18n('Error'), this.i18n('Unable to find user id or verification string.'))
34 } else {
35 this.verifyEmail()
36 }
37 }
38
39 verifyEmail () {
40 this.userService.verifyEmail(this.userId, this.verificationString)
41 .subscribe(
42 () => {
43 this.success = true
44 setTimeout(() => {
45 this.router.navigate([ '/login' ])
46 }, 2000)
47 },
48
49 err => {
50 this.notificationsService.error(this.i18n('Error'), err.message)
51 }
52 )
53 }
54 }