aboutsummaryrefslogtreecommitdiff
path: root/src/app/components/login/login.component.ts
diff options
context:
space:
mode:
authortranstrike <transtrike@gmail.com>2021-02-12 19:04:53 +0200
committertranstrike <transtrike@gmail.com>2021-02-12 19:04:53 +0200
commitbcd88af53b1a920d728ec98b45daa9ac2e2c0917 (patch)
treefd27eef086822b0f02f74364cac0b940956d2458 /src/app/components/login/login.component.ts
parent1d1f05e3f74d70a558b4847a9107afa7952131cf (diff)
downloadDevHive-Angular-bcd88af53b1a920d728ec98b45daa9ac2e2c0917.tar
DevHive-Angular-bcd88af53b1a920d728ec98b45daa9ac2e2c0917.tar.gz
DevHive-Angular-bcd88af53b1a920d728ec98b45daa9ac2e2c0917.zip
Moved from DevHive
Diffstat (limited to 'src/app/components/login/login.component.ts')
-rw-r--r--src/app/components/login/login.component.ts59
1 files changed, 59 insertions, 0 deletions
diff --git a/src/app/components/login/login.component.ts b/src/app/components/login/login.component.ts
new file mode 100644
index 0000000..c3fb79c
--- /dev/null
+++ b/src/app/components/login/login.component.ts
@@ -0,0 +1,59 @@
+import { Component, OnInit, ViewChild } from '@angular/core';
+import { FormGroup, FormBuilder, Validators, FormControl, AbstractControl } from '@angular/forms';
+import { Router } from '@angular/router';
+import { Title } from '@angular/platform-browser';
+import { UserService } from 'src/app/services/user.service';
+import { HttpErrorResponse } from '@angular/common/http';
+import { ErrorBarComponent } from '../error-bar/error-bar.component';
+import { TokenService } from 'src/app/services/token.service';
+
+@Component({
+ selector: 'app-login',
+ templateUrl: './login.component.html',
+ styleUrls: ['./login.component.css']
+})
+export class LoginComponent implements OnInit {
+ @ViewChild(ErrorBarComponent) private _errorBar: ErrorBarComponent;
+ private _title = 'Login';
+ public loginUserFormGroup: FormGroup;
+
+ constructor(private _titleService: Title, private _fb: FormBuilder, private _router: Router, private _userService: UserService, private _tokenService: TokenService) {
+ this._titleService.setTitle(this._title);
+ }
+
+ ngOnInit(): void {
+ this.loginUserFormGroup = this._fb.group({
+ username: new FormControl('', [
+ Validators.required
+ ]),
+ password: new FormControl('', [
+ Validators.required
+ ])
+ });
+ }
+
+ onSubmit(): void {
+ this._errorBar.hideError();
+ this._userService.loginUserRequest(this.loginUserFormGroup).subscribe(
+ (res: object) => {
+ this._tokenService.setUserTokenToSessionStorage(res);
+ this._router.navigate(['/']);
+ },
+ (err: HttpErrorResponse) => {
+ this._errorBar.showError(err);
+ }
+ );
+ }
+
+ onRedirectRegister(): void {
+ this._router.navigate(['/register']);
+ }
+
+ get username(): AbstractControl | null {
+ return this.loginUserFormGroup.get('username');
+ }
+
+ get password(): AbstractControl | null {
+ return this.loginUserFormGroup.get('password');
+ }
+}