allfree-angular-frontend / src / app / login / login.component.ts
login.component.ts
Raw
import {UserLogged} from './../models/models';
import {Component, OnInit} from '@angular/core';
import {AuthService} from '../_services/auth-service/auth.service';
import {TokenStorageService} from '../_services/jwt-service/token-storage.service';
import {Role, User} from '../models/models';
import {Router} from '@angular/router';

@Component({
  selector: 'app-login',
  templateUrl: './login.component.html',
  styleUrls: ['./login.component.scss'],
})
export class LoginComponent implements OnInit {
  form: any = {};
  isLoggedIn = false;
  isLoginFailed = false;
  errorMessage = '';
  roles: any;
  user: UserLogged;

  constructor(
    private authService: AuthService,
    private tokenStorage: TokenStorageService,
    private router: Router
  ) {
  }

  ngOnInit(): void {
    if (this.tokenStorage.getToken()) {
      this.isLoggedIn = true;
      this.roles = this.tokenStorage.getUser().roles;
    }
  }

  onSubmit(): void {
    this.authService.login(this.form).subscribe(
      (data) => {
        this.tokenStorage.saveToken(data.accessToken);
        this.tokenStorage.saveUser(data);

        this.isLoginFailed = false;
        this.isLoggedIn = true;
        this.roles = this.tokenStorage.getUser().roles;
        this.user = this.tokenStorage.getUser().userDetails;
        console.log('userLogged -> ', this.user);
        console.log('userLogged_Roles -> ', this.user.roles);
        this.reloadPage();
        console.log("home");
        this.goToHomePage();
      },
      (err) => {
        this.errorMessage = err.error.message;
        this.isLoginFailed = true;
      }
    );
    // console.log("home");
    this.goToHomePage();
  }

  reloadPage(): void {
    window.location.reload();
    this.goToHomePage();
  }

   goToHomePage() {
   this.router.navigate(['user']);
  }
  goToRegister() {
    this.router.navigate(['/register']);
  }
}