diff --git a/src/app/components/app-scaffold/app-scaffold.component.html b/src/app/components/app-scaffold/app-scaffold.component.html index ea1e121..ed80193 100644 --- a/src/app/components/app-scaffold/app-scaffold.component.html +++ b/src/app/components/app-scaffold/app-scaffold.component.html @@ -1,6 +1,6 @@

Greenvironment

- + diff --git a/src/app/components/app-scaffold/app-scaffold.component.ts b/src/app/components/app-scaffold/app-scaffold.component.ts index b2b9801..cc28c79 100644 --- a/src/app/components/app-scaffold/app-scaffold.component.ts +++ b/src/app/components/app-scaffold/app-scaffold.component.ts @@ -1,6 +1,7 @@ import { Component, OnInit } from '@angular/core'; import { LoginComponent } from '../login/login.component'; import { DatasharingService } from '../../services/datasharing.service'; +import { SelfService } from '../../services/selfservice/self.service'; @Component({ selector: 'app-scaffold', @@ -10,13 +11,23 @@ import { DatasharingService } from '../../services/datasharing.service'; export class AppScaffoldComponent implements OnInit { loggedIn: boolean = false; - constructor(private data: DatasharingService) { } + userId: number; + profileUrl: string; + + constructor(private data: DatasharingService,private selfservice: SelfService) { } ngOnInit() { this.data.currentUserInfo.subscribe(user => { this.loggedIn = user.loggedIn; - console.log('he´s comming through!'); + this.userId = user.userID; + this.profileUrl = '/profile/' + this.userId; + console.log(user.loggedIn); }) + if(this.loggedIn != true){ + console.log('user is not logged in'); + this.selfservice.checkIfLoggedIn; + }; + console.log('loggedIn is ' + this.loggedIn) } } diff --git a/src/app/components/home/home.component.html b/src/app/components/home/home.component.html index eeee9e5..8027381 100644 --- a/src/app/components/home/home.component.html +++ b/src/app/components/home/home.component.html @@ -1,5 +1,4 @@
- diff --git a/src/app/components/home/home.component.sass b/src/app/components/home/home.component.sass index ad9fbaa..b0d77dd 100644 --- a/src/app/components/home/home.component.sass +++ b/src/app/components/home/home.component.sass @@ -2,30 +2,23 @@ @import '../../../styles/vars.sass' #content - grid-template: 7.5% 92.5% / 25% 50% 25% + grid-template: 100%/ 25% 50% 25% display: grid min-height: 100vh max-height: 100vh -#headerbar - @include gridPosition(1, 2, 1, 4) - display: grid - grid-template: 100% /30% 10% 10% 10% 10% 10% 15% 5% - background-color: $cHeadPrimaryBackground - color: $cHeadFontColor - #chatcontainer - @include gridPosition(2, 3, 1, 2) + @include gridPosition(1, 3, 1, 2) background-color: $cBoxBodyBackground #feedcontainer - @include gridPosition(2, 3, 2, 3) + @include gridPosition(1, 3, 2, 3) display: grid grid-template: 10% 90% /100% background-color: $cSecondaryBackground #socialcontainer - @include gridPosition(2, 3, 3, 4) + @include gridPosition(1, 3, 3, 4) display: grid grid-template: 50% 50% /100% background-color: $cBoxBodyBackground \ No newline at end of file diff --git a/src/app/components/profile/profile.component.html b/src/app/components/profile/profile.component.html index 2c55d7c..b8344fe 100644 --- a/src/app/components/profile/profile.component.html +++ b/src/app/components/profile/profile.component.html @@ -20,7 +20,7 @@ {{user.points}} level: - {{user.level}} + {{user.level}} ({{rankname}})

What´s the level?

diff --git a/src/app/components/profile/profile.component.ts b/src/app/components/profile/profile.component.ts index 593a073..9c04ba0 100644 --- a/src/app/components/profile/profile.component.ts +++ b/src/app/components/profile/profile.component.ts @@ -15,6 +15,7 @@ export class ProfileComponent implements OnInit { levellist: Levellist = new Levellist(); user: User = new User() id : string + rankname: string; profileNotFound : boolean = false; constructor(private router: Router,private http: Http) { } @@ -43,6 +44,7 @@ export class ProfileComponent implements OnInit { this.user.handle = response.data.getUser.handle; this.user.points = response.data.getUser.points; this.user.level = response.data.getUser.level; + this.rankname = this.levellist.getLevelName(this.user.level); this.user.friendIDs = response.data.getUser.friends; } else{ this.profileNotFound = true; diff --git a/src/app/models/levellist.ts b/src/app/models/levellist.ts index 999f59e..5f15ad5 100644 --- a/src/app/models/levellist.ts +++ b/src/app/models/levellist.ts @@ -8,4 +8,18 @@ export class Levellist{ {level: 5, name: "Champion of the Earth", points: 500 }, {level: 6, name: "Intergallactic Superhero", points: 600 }, ]; + + getLevelName(lev:number): any{ + var name: string = 'not defined'; + console.log(lev); + this.levels.forEach(rank => { + console.log(rank.level); + if(lev == rank.level){ + console.log('found matching level'); + name = rank.name; + } + }); + return name + } + } \ No newline at end of file diff --git a/src/app/services/selfservice/self.service.spec.ts b/src/app/services/selfservice/self.service.spec.ts new file mode 100644 index 0000000..7e958ec --- /dev/null +++ b/src/app/services/selfservice/self.service.spec.ts @@ -0,0 +1,12 @@ +import { TestBed } from '@angular/core/testing'; + +import { SelfService } from './self.service'; + +describe('Selfservice', () => { + beforeEach(() => TestBed.configureTestingModule({})); + + it('should be created', () => { + const service: SelfService = TestBed.get(SelfService); + expect(service).toBeTruthy(); + }); +}); diff --git a/src/app/services/selfservice/self.service.ts b/src/app/services/selfservice/self.service.ts new file mode 100644 index 0000000..e6623b6 --- /dev/null +++ b/src/app/services/selfservice/self.service.ts @@ -0,0 +1,69 @@ +import { Injectable, EventEmitter, Output } from '@angular/core'; +import {Http, URLSearchParams, Headers} from '@angular/http'; +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 SelfService { + + constructor(private http: Http, private data: DatasharingService,private router: Router) { } + + public checkIfLoggedIn() { + console.log('check if logged in...'); + //let url = './graphql' + let url = 'https://greenvironment.net/graphql' + + let headers = new Headers(); + headers.set('Content-Type', 'application/json'); + + return this.http.post(url, this.buildJson()) + .subscribe(response => { + console.log(response.text()); + this.stillLoggedIn(); + this.updateUserInfo(response.json()) + }, error => { + this.notLoggedIn() + console.log(error.text()) + } + ); + } + public stillLoggedIn(){ + console.log('user was logged in'); + } + + public notLoggedIn(){ + console.log('user was not logged in'); + //do routing + this.router.navigateByUrl('/login'); + } + + public updateUserInfo(response : any){ + const user: User = new User(); + user.loggedIn = true; + user.userID = response.data.login.id; + user.username = response.data.login.name; + user.handle = response.data.login.handle; + user.email = response.data.login.email; + user.points = response.data.login.points; + user.level = response.data.login.level; + user.friendIDs = response.data.login.friends; + user.groupIDs = response.data.login.groups; + user.chatIDs = response.data.login.chats; + user.requestIDs = response.data.login.requests; + + this.data.changeUserInfo(user) + } + + public buildJson(): any { + const body = {query: `query() { + getSelf(){id, name, handle, points, level, friends{id}, groups{id},chats{id}} + }`, variables: { + }}; + return body; + } +}//add ,receivedRequests{id} later