77 lines
2.1 KiB
TypeScript
77 lines
2.1 KiB
TypeScript
import { HttpClient } from '@angular/common/http';
|
|
import { Component, inject } from '@angular/core';
|
|
import { FormControl, FormGroup, FormsModule, ReactiveFormsModule, Validators } from '@angular/forms';
|
|
import { ActivatedRoute, Router } from '@angular/router';
|
|
import { HotToastService } from '@ngxpert/hot-toast';
|
|
|
|
@Component({
|
|
selector: 'app-reset-pw',
|
|
standalone: true,
|
|
imports: [FormsModule, ReactiveFormsModule],
|
|
templateUrl: './reset-pw.component.html',
|
|
styleUrl: '../auth.scss'
|
|
})
|
|
export class ResetPwComponent {
|
|
private router = inject(Router);
|
|
private http = inject(HttpClient);
|
|
private route = inject(ActivatedRoute);
|
|
private toast = inject(HotToastService);
|
|
|
|
isLoading = false;
|
|
|
|
resetCode;
|
|
|
|
resetPw = new FormGroup({
|
|
username: new FormControl('', [Validators.required, Validators.email])
|
|
})
|
|
|
|
setNewPwForm = new FormGroup({
|
|
password: new FormControl(null, [Validators.required, Validators.minLength(4), Validators.maxLength(100)]),
|
|
repeatPassword: new FormControl(null, [Validators.required, Validators.minLength(4), Validators.maxLength(100)]),
|
|
code: new FormControl(null)
|
|
})
|
|
|
|
ngOnInit(): void {
|
|
this.resetCode = this.route.snapshot.queryParams["resetcode"];
|
|
this.setNewPwForm.patchValue({code: this.resetCode});
|
|
}
|
|
|
|
|
|
resetPassword() {
|
|
this.http.post('api/auth/reset', this.resetPw.value).subscribe({
|
|
next: res => {
|
|
console.log(res);
|
|
}
|
|
})
|
|
}
|
|
|
|
setNewPassword() {
|
|
const val = this.setNewPwForm.value;
|
|
if (val.password != val.repeatPassword) {
|
|
this.toast.error('Die Passwörter stimmen nicht überein');
|
|
return;
|
|
}
|
|
this.http.post('api/auth/reset', this.setNewPwForm.value)
|
|
.pipe(
|
|
this.toast.observe({
|
|
loading: 'Setze neues Passwort',
|
|
success: 'Passwort gespeichert',
|
|
error: 'Passwort konnte nicht gespeichert werden!'
|
|
})
|
|
)
|
|
.subscribe({
|
|
next: res => {
|
|
console.log(res);
|
|
},
|
|
complete: () => {
|
|
this.router.navigateByUrl('/login');
|
|
}
|
|
})
|
|
}
|
|
|
|
toLogin() {
|
|
this.router.navigateByUrl("/login");
|
|
}
|
|
|
|
}
|