FlaskALED/frontend/src/app/login/page-login/page-login.component.ts
2022-01-13 14:46:01 +01:00

78 lines
2.1 KiB
TypeScript

import {Component} from '@angular/core';
import {Router} from "@angular/router";
import {MessageService} from "../../common/services/message/message.service";
import {ProfilService} from "../../common/services/profil/profil.service";
@Component({
selector: 'app-page-nickname',
templateUrl: './page-login.component.html',
styleUrls: ['./page-login.component.scss']
})
export class PageLoginComponent
{
email: string = "" ;
password: string = "" ;
hasError: boolean = false;
errorMessage: string = "";
constructor( private messageService: MessageService,
private router: Router,
private profilService: ProfilService ) { }
// Appuie sur le bouton "seConnecter"
onSeConnecter(): void
{
this.checkField();
if(!this.hasError)
{
const data = {
email: this.email,
password: this.password
};
this.messageService
.post('login', data)
.subscribe( retour => this.onSeConnecterCallback(retour), err => this.onSeConnecterCallback(err));
}
}
// Callback de "onSeConnecter"
onSeConnecterCallback(retour: any): void
{
if(retour.status !== "success")
{
console.log(retour);
this.errorMessage = retour.message;
this.hasError = true;
}
else {
this.profilService.setId(retour.data.id);
this.profilService.setIsAdmin(retour.data.is_admin)
if(retour.data.is_admin) this.router.navigateByUrl('admin/userList');
else this.router.navigateByUrl('user/userList');
}
}
// Check les champs saisis par l'utilisateur
checkField(): void
{
if(this.email === "") {
this.errorMessage = "Veuillez remplir le champ email" ;
this.hasError = true;
}
else if(this.password === "") {
this.errorMessage = "Veuillez remplir le champ mot de passe" ;
this.hasError = true;
}
else {
this.errorMessage = "" ;
this.hasError = false;
}
}
}