mirror of
https://github.com/TomasiDeveloping/PlayerManagement.git
synced 2026-04-16 09:12:20 +00:00
82 lines
2.7 KiB
TypeScript
82 lines
2.7 KiB
TypeScript
import {Component, inject, OnInit} from '@angular/core';
|
|
import {ActivatedRoute} from "@angular/router";
|
|
import {ToastrService} from "ngx-toastr";
|
|
import {AuthenticationService} from "../../services/authentication.service";
|
|
import {ConfirmEmailRequestModel} from "../../models/confirmEmailRequest.model";
|
|
import {EmailConfirmationRequestModel} from "../../models/emailConfirmationRequest.model";
|
|
import {environment} from "../../../environments/environment";
|
|
|
|
@Component({
|
|
selector: 'app-email-confirmation',
|
|
templateUrl: './email-confirmation.component.html',
|
|
styleUrl: './email-confirmation.component.css',
|
|
standalone: false
|
|
})
|
|
export class EmailConfirmationComponent implements OnInit {
|
|
|
|
private readonly _activatedRoute: ActivatedRoute = inject(ActivatedRoute);
|
|
private readonly _toastr: ToastrService = inject(ToastrService);
|
|
private readonly _authenticationService: AuthenticationService = inject(AuthenticationService);
|
|
|
|
public showSuccess: boolean = false;
|
|
public showError: boolean = false;
|
|
public showResendSuccess: boolean = false;
|
|
|
|
public email: string | null = null;
|
|
|
|
ngOnInit() {
|
|
|
|
const token = this._activatedRoute.snapshot.queryParams['token'];
|
|
this.email = this._activatedRoute.snapshot.queryParams['email'];
|
|
|
|
if (!token || !this.email) {
|
|
this.showError = true;
|
|
return;
|
|
}
|
|
|
|
this.confirmEmail(this.email, token);
|
|
}
|
|
|
|
onSendNewConfirmationEmail() {
|
|
if (!this.email) {
|
|
this._toastr.error('No email address found. Please contact support for assistance.', 'Missing Email');
|
|
}
|
|
const emailConfirmation: EmailConfirmationRequestModel = {
|
|
email: this.email!,
|
|
clientUri: environment.emailConfirmUri
|
|
};
|
|
|
|
this._authenticationService.resendConfirmationEmail(emailConfirmation).subscribe({
|
|
next: ((response) => {
|
|
if (response) {
|
|
this._toastr.success('A new confirmation email has been successfully sent to your address.', 'Email Sent');
|
|
this.showResendSuccess = true;
|
|
this.showError = false;
|
|
}
|
|
}),
|
|
error: (error) => {
|
|
console.log(error);
|
|
this._toastr.error('An error occurred while attempting to send the confirmation email. Please try again later.', 'Error Sending Email');
|
|
}
|
|
});
|
|
}
|
|
|
|
confirmEmail(email: string, token: string) {
|
|
const confirmEmailRequest: ConfirmEmailRequestModel = {
|
|
email: email,
|
|
token: token
|
|
}
|
|
this._authenticationService.confirmEmail(confirmEmailRequest).subscribe({
|
|
next: ((response) => {
|
|
if (response) {
|
|
this.showSuccess = true;
|
|
}
|
|
}),
|
|
error: (error) => {
|
|
console.log(error);
|
|
this.showError = true;
|
|
}
|
|
});
|
|
}
|
|
}
|