From c2604446180e6de44b7a938ae1344aa047e9a757 Mon Sep 17 00:00:00 2001 From: Derek Holloway Date: Wed, 25 Jun 2025 21:08:13 -0700 Subject: [PATCH] Add Verify Email --- .../src/app/app.routes.ts | 2 + .../verifyemail/verifyemail.component.html | 6 +++ .../verifyemail/verifyemail.component.ts | 54 +++++++++++++++++++ 3 files changed, 62 insertions(+) create mode 100644 src/MistoxWebsite.Client/src/app/pages/account/verifyemail/verifyemail.component.html create mode 100644 src/MistoxWebsite.Client/src/app/pages/account/verifyemail/verifyemail.component.ts diff --git a/src/MistoxWebsite.Client/src/app/app.routes.ts b/src/MistoxWebsite.Client/src/app/app.routes.ts index 431fdbd..602aaac 100644 --- a/src/MistoxWebsite.Client/src/app/app.routes.ts +++ b/src/MistoxWebsite.Client/src/app/app.routes.ts @@ -8,12 +8,14 @@ import { AboutComponent } from './pages/legal/about/about.component'; import { SettingsComponent } from './pages/account/settings/settings.component'; import { LogoutComponent } from './pages/account/logout/logout.component'; import { ResetPasswordComponent } from './pages/account/resetpassword/resetpassword.component'; +import { VerifyEmailComponent } from './pages/account/verifyemail/verifyemail.component'; export const routes: Routes = [ // Account stuff { path: "account/forgotpassword", component: ForgotPasswordComponent }, { path: "account/resetpassword", component: ResetPasswordComponent }, + { path: "account/verifyemail", component: VerifyEmailComponent }, { path: "account/login", component: LoginComponent }, { path: "account/logout", component: LogoutComponent }, { path: "account/register", component: RegisterComponent }, diff --git a/src/MistoxWebsite.Client/src/app/pages/account/verifyemail/verifyemail.component.html b/src/MistoxWebsite.Client/src/app/pages/account/verifyemail/verifyemail.component.html new file mode 100644 index 0000000..163bebd --- /dev/null +++ b/src/MistoxWebsite.Client/src/app/pages/account/verifyemail/verifyemail.component.html @@ -0,0 +1,6 @@ +
+ +

Verifying Email

+

{{ Result }}

+ +
\ No newline at end of file diff --git a/src/MistoxWebsite.Client/src/app/pages/account/verifyemail/verifyemail.component.ts b/src/MistoxWebsite.Client/src/app/pages/account/verifyemail/verifyemail.component.ts new file mode 100644 index 0000000..eab618e --- /dev/null +++ b/src/MistoxWebsite.Client/src/app/pages/account/verifyemail/verifyemail.component.ts @@ -0,0 +1,54 @@ +import { ChangeDetectorRef, Component } from '@angular/core'; +import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http'; +import { FormsModule } from '@angular/forms'; +import { Router, ActivatedRoute } from '@angular/router'; +import { Title } from '@angular/platform-browser'; +import { CommonModule } from '@angular/common'; + +@Component({ + selector: 'account-verifyemail', + templateUrl: './verifyemail.component.html', + imports: [ FormsModule, CommonModule ] +}) +export class VerifyEmailComponent { + + UserName: string = ""; + Guid: string = ""; + Result: string = ""; + + constructor( private http: HttpClient, private router: Router, private route: ActivatedRoute, private title: Title ) { + this.title.setTitle("Verify Email | Mistox"); + this.route.queryParams.subscribe(params => { + this.UserName = params['UserName'] || ''; + this.Guid = params['Guid'] || ''; + }); + } + + sleep(ms: number) { + return new Promise(resolve => setTimeout(resolve, ms)); + } + + async onSubmit() { + // Send to server and wait for response + const body = new HttpParams() + .set("UserName", this.UserName) + .set("EmailToken", this.Guid); + const headers = new HttpHeaders({ + 'Content-Type': 'application/x-www-form-urlencoded' + }); + this.http.post( "https://mistox.com/api/account/verifyemail", body, { headers } ).subscribe({ + next: async (data) => { + if (data == true){ + this.Result = "Verified Email Successfully"; + }else{ + this.Result = "Email was not able to be verified please resend email"; + } + await this.sleep(3000); + this.router.navigate(["/"]); + }, + error: err => { + console.log("HTTP Error Signing In: ", err); + } + }); + } +} \ No newline at end of file