diff --git a/packages/bridge-server/src/users/users.controller.ts b/packages/bridge-server/src/users/users.controller.ts index b6bbe65..dd45dbc 100644 --- a/packages/bridge-server/src/users/users.controller.ts +++ b/packages/bridge-server/src/users/users.controller.ts @@ -10,7 +10,7 @@ export class UsersController { @Get(':id') findOne(@Param() params: any) { - //return this.seasonsService.findOne(params.id); + return this.usersService.findOne(params.id); } @UseGuards(JwtAuthGuard) @@ -18,6 +18,4 @@ export class UsersController { updateLastLogin(@Body() body: any) { return this.usersService.updateLastLogin(body.id, body.nickname, body.picture, body.time); } - - } diff --git a/packages/bridge-server/src/users/users.service.ts b/packages/bridge-server/src/users/users.service.ts index 4b8e79c..59006ec 100644 --- a/packages/bridge-server/src/users/users.service.ts +++ b/packages/bridge-server/src/users/users.service.ts @@ -10,10 +10,6 @@ import { Racer } from 'src/racers/racer.model'; @Injectable() export class UsersService { - async findOne(username: string): Promise { - return undefined; - } - constructor( @InjectModel(User) private userModel: typeof User, @InjectModel(Racer) private racersModel: typeof Racer, @@ -21,6 +17,13 @@ export class UsersService { ) {} + async findOne(id: string) { + return this.userModel.findOne({ + where: {auth0id: id}, + include:[Racer] + }); + } + updateLastLogin(id, nickname, picture, time) { this.userModel.upsert({auth0id: id, nickname: nickname, picture: picture, lastLogin: time}); } diff --git a/packages/bridge-ui/src/app/pages/user/user.component.html b/packages/bridge-ui/src/app/pages/user/user.component.html index 6fbad6f..a16804d 100644 --- a/packages/bridge-ui/src/app/pages/user/user.component.html +++ b/packages/bridge-ui/src/app/pages/user/user.component.html @@ -2,14 +2,14 @@
- {{usersService.getUserName()}} + {{getUserName()}} - + -

Real Name:

{{usersService.getUserRealName()}}

-

Email:

{{usersService.getUserEmail()}}

+

Real Name:

{{getUserRealName()}}

+

Email:

{{getUserEmail()}}

- @if(this.userId == usersService.getUserId()) { + @if(this.userId == getUserId()) { @@ -18,14 +18,21 @@ - Racer Stats + @if(!user.racer) { + Claim your racer + } + @else { + Racer Stats + } - - - + @if(!user.racer) { + + + + }
diff --git a/packages/bridge-ui/src/app/pages/user/user.component.ts b/packages/bridge-ui/src/app/pages/user/user.component.ts index cb8ed18..80a0150 100644 --- a/packages/bridge-ui/src/app/pages/user/user.component.ts +++ b/packages/bridge-ui/src/app/pages/user/user.component.ts @@ -26,6 +26,7 @@ import { ActivatedRoute } from '@angular/router'; export class UserComponent { public userId: string = ""; + public user: any = null; constructor( public usersService: UsersService, @@ -33,6 +34,9 @@ export class UserComponent { private route: ActivatedRoute, ) { this.userId = String(this.route.snapshot.paramMap.get('id')); + this.usersService.getUserdetails(this.userId).subscribe(data => { + this.user = data; + }); } openClaimRacerDialog() @@ -40,5 +44,34 @@ export class UserComponent { this.dialog.open(ClaimRacerDialogComponent); } + getUserName() : string { + if(!this.user) {return ""} + + return this.user.nickname || ""; + } + + getUserId() : string { + if(!this.user) {return ""} + + return this.user.auth0id?.replace("auth0|", "") || ""; + } + + getUserPicture() : string { + if(!this.user) {return ""} + + return this.user.picture || ""; + } + + getUserEmail() : string { + if(!this.user) {return ""} + + return this.user.email || ""; + } + + getUserRealName() : string { + if(!this.user) {return "??? ???"} + + return "??? ???"; + } } diff --git a/packages/bridge-ui/src/app/services/users.service.ts b/packages/bridge-ui/src/app/services/users.service.ts index f2f4c9a..4efb1cf 100644 --- a/packages/bridge-ui/src/app/services/users.service.ts +++ b/packages/bridge-ui/src/app/services/users.service.ts @@ -1,6 +1,7 @@ import { HttpClient } from '@angular/common/http'; import { Injectable } from '@angular/core'; import { AuthService, User } from '@auth0/auth0-angular'; +import { Observable, from } from "rxjs"; import * as jwt_decode from 'jwt-decode'; import { ServerEndpointService } from './server-endpoint.service'; @@ -50,6 +51,19 @@ export class UsersService { }) } + getUserdetails(id: string) { + let promise = new Promise((resolve, reject) => { + + this.httpClient.get>(this.serverEndpointService.getCurrentEndpoint()+"users/"+"auth0|"+id).subscribe(data => { + let _season = data; //this.convertToClientSeason(data); + console.log(data); + console.log(_season); + resolve(_season); + }); + }); + return from(promise); + } + reportLogin() { if(!this.localUser) { return } let id = this.localUser.sub;