From d7bd80b4d694ca594810bf95c45ca9fe64b686ba Mon Sep 17 00:00:00 2001 From: Max Date: Thu, 17 Oct 2019 17:30:16 +0200 Subject: [PATCH] added error messages for login, after login: nav changes and home gets opend --- .../app-scaffold/app-scaffold.component.ts | 9 +++++++-- src/app/components/login/login.component.html | 1 + src/app/components/login/login.component.ts | 18 +++++++++++++++--- src/app/services/login/login.service.ts | 14 +++++++++++--- 4 files changed, 34 insertions(+), 8 deletions(-) diff --git a/src/app/components/app-scaffold/app-scaffold.component.ts b/src/app/components/app-scaffold/app-scaffold.component.ts index e173656..b2b9801 100644 --- a/src/app/components/app-scaffold/app-scaffold.component.ts +++ b/src/app/components/app-scaffold/app-scaffold.component.ts @@ -1,5 +1,6 @@ import { Component, OnInit } from '@angular/core'; import { LoginComponent } from '../login/login.component'; +import { DatasharingService } from '../../services/datasharing.service'; @Component({ selector: 'app-scaffold', @@ -8,10 +9,14 @@ import { LoginComponent } from '../login/login.component'; }) export class AppScaffoldComponent implements OnInit { - - constructor() { } + loggedIn: boolean = false; + constructor(private data: DatasharingService) { } ngOnInit() { + this.data.currentUserInfo.subscribe(user => { + this.loggedIn = user.loggedIn; + console.log('he´s comming through!'); + }) } } diff --git a/src/app/components/login/login.component.html b/src/app/components/login/login.component.html index 00341e7..b7a3663 100644 --- a/src/app/components/login/login.component.html +++ b/src/app/components/login/login.component.html @@ -12,6 +12,7 @@ +

{{errorMessage}}


You aren´t part of greenvironment yet? - join us here diff --git a/src/app/components/login/login.component.ts b/src/app/components/login/login.component.ts index 40d6725..40e0a7a 100644 --- a/src/app/components/login/login.component.ts +++ b/src/app/components/login/login.component.ts @@ -1,6 +1,8 @@ import { Component, OnInit } from '@angular/core'; import { Login } from 'src/app/models/login'; import { LoginService } from 'src/app/services/login/login.service'; +import { RouterLink } from '@angular/router'; +import {Router} from '@angular/router'; @Component({ selector: 'app-login', @@ -9,17 +11,27 @@ import { LoginService } from 'src/app/services/login/login.service'; }) export class LoginComponent implements OnInit { login: Login + errorOccurred: boolean = false; + errorMessage: string; - constructor(private loginService: LoginService) { + constructor(private loginService: LoginService,private router: Router) { this.login = {passwordHash: null, email: null}; } + public loginError(error : any){ + console.log(error.errors[0].message); + this.errorOccurred = true; + this.errorMessage = error.errors[0].message; + } + onClickSubmit(pEmail: string, pPasswordHash: string) { - console.log('email: ' + pEmail); + console.log('try to login with mail adress:' + pEmail); + this.errorOccurred = false; + this.errorMessage = " "; this.login.email = pEmail this.login.passwordHash = pPasswordHash - this.loginService.login(this.login) + this.loginService.login(this.login, error => this.loginError(error.json())); } ngOnInit() {} diff --git a/src/app/services/login/login.service.ts b/src/app/services/login/login.service.ts index 8276696..8924676 100644 --- a/src/app/services/login/login.service.ts +++ b/src/app/services/login/login.service.ts @@ -4,15 +4,16 @@ import { Login } from '../../models/login'; import { User } from 'src/app/models/user'; import { DatasharingService } from '../datasharing.service'; import { userInfo } from 'os'; +import {Router} from '@angular/router'; @Injectable({ providedIn: 'root' }) export class LoginService { - constructor(private http: Http, private data: DatasharingService) { } + constructor(private http: Http, private data: DatasharingService,private router: Router) { } - public login(login : Login) { + public login(login : Login, errorCb: any) { //let url = './graphql' let url = 'https://greenvironment.net/graphql' @@ -23,8 +24,15 @@ export class LoginService { return this.http.post(url, this.buildJson(login)) .subscribe(response => { console.log(response.text()); + this.loginSuccess(); this.updateUserInfo(response.json()) - }); + }, errorCb + ); + } + public loginSuccess(){ + console.log('alles supi dupi'); + //do routing + this.router.navigateByUrl(''); } public updateUserInfo(response : any){