1
0
mirror of https://github.com/bitwarden/browser.git synced 2024-10-09 05:57:40 +02:00
bitwarden-browser/src/app/accounts/verify-email-token.component.ts

53 lines
2.0 KiB
TypeScript
Raw Normal View History

2018-07-12 20:19:47 +02:00
import {
Component,
OnInit,
} from '@angular/core';
import {
ActivatedRoute,
Router,
} from '@angular/router';
import { first } from 'rxjs/operators';
2018-07-12 20:19:47 +02:00
import { ToasterService } from 'angular2-toaster';
import { ApiService } from 'jslib-common/abstractions/api.service';
import { I18nService } from 'jslib-common/abstractions/i18n.service';
import { LogService } from 'jslib-common/abstractions/log.service';
import { UserService } from 'jslib-common/abstractions/user.service';
2018-07-12 20:19:47 +02:00
import { VerifyEmailRequest } from 'jslib-common/models/request/verifyEmailRequest';
2018-07-12 20:19:47 +02:00
@Component({
selector: 'app-verify-email-token',
templateUrl: 'verify-email-token.component.html',
})
export class VerifyEmailTokenComponent implements OnInit {
constructor(private router: Router, private toasterService: ToasterService,
private i18nService: I18nService, private route: ActivatedRoute,
private apiService: ApiService, private userService: UserService,
private logService: LogService) { }
2018-07-12 20:19:47 +02:00
ngOnInit() {
this.route.queryParams.pipe(first()).subscribe(async qParams => {
2018-07-12 20:19:47 +02:00
if (qParams.userId != null && qParams.token != null) {
try {
await this.apiService.postAccountVerifyEmailToken(
new VerifyEmailRequest(qParams.userId, qParams.token));
const authed = await this.userService.isAuthenticated();
if (authed) {
await this.apiService.refreshIdentityToken();
}
this.toasterService.popAsync('success', null, this.i18nService.t('emailVerified'));
this.router.navigate(['/']);
return;
} catch (e) {
this.logService.error(e);
}
2018-07-12 20:19:47 +02:00
}
this.toasterService.popAsync('error', null, this.i18nService.t('emailVerifiedFailed'));
this.router.navigate(['/']);
});
}
}