Skip to content

Commit ca7a904

Browse files
authored
545-Replace req user with req userEntity in the user.controller.ts (#579)
* Replace req["user"] with req["userEntity"] in the user.controller.ts * clean up * use the service method user.getUserProfile rather than returning req["user"] * cc points * use getUserProfile
1 parent 382c840 commit ca7a904

File tree

2 files changed

+34
-6
lines changed

2 files changed

+34
-6
lines changed

src/user/user.controller.ts

+6-6
Original file line numberDiff line numberDiff line change
@@ -46,16 +46,16 @@ export class UserController {
4646
@Get('/me')
4747
@UseGuards(FirebaseAuthGuard)
4848
async getUserByFirebaseId(@Req() req: Request): Promise<GetUserDto> {
49-
const user = req['user'];
50-
this.userService.updateUser({ lastActiveAt: new Date() }, user.user.id);
51-
return user as GetUserDto;
49+
const user = req['userEntity'];
50+
this.userService.updateUser({ lastActiveAt: new Date() }, user.id);
51+
return (await this.userService.getUserProfile(user.id)).userDto;
5252
}
5353

5454
@ApiBearerAuth()
5555
@Delete()
5656
@UseGuards(FirebaseAuthGuard)
5757
async deleteUser(@Req() req: Request): Promise<UserEntity> {
58-
return await this.userService.deleteUser(req['user'].user as UserEntity);
58+
return await this.userService.deleteUser(req['userEntity']);
5959
}
6060

6161
// This route must go before the Delete user route below as we want nestjs to check against this one first
@@ -84,8 +84,8 @@ export class UserController {
8484
@ApiBearerAuth()
8585
@Patch()
8686
@UseGuards(FirebaseAuthGuard)
87-
async updateUser(@Body() updateUserDto: UpdateUserDto, @Req() req: Request) {
88-
return await this.userService.updateUser(updateUserDto, req['user'].user.id);
87+
async updateUser(@Body() updateUserDto: UpdateUserDto, @Req() req: Request): Promise<UserEntity> {
88+
return await this.userService.updateUser(updateUserDto, req['userEntity'].id);
8989
}
9090

9191
@ApiBearerAuth()

src/user/user.service.ts

+28
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,34 @@ export class UserService {
135135
return { userEntity: queryResult, userDto: formatUserObject(queryResult) };
136136
}
137137

138+
public async getUserProfile(id: string): Promise<{
139+
userEntity: UserEntity | undefined;
140+
userDto: GetUserDto | undefined;
141+
}> {
142+
const queryResult = await this.userRepository
143+
.createQueryBuilder('user')
144+
.leftJoinAndSelect('user.partnerAccess', 'partnerAccess')
145+
.leftJoinAndSelect('user.partnerAdmin', 'partnerAdmin')
146+
.leftJoinAndSelect('partnerAccess.therapySession', 'therapySession')
147+
.leftJoinAndSelect('partnerAccess.partner', 'partner')
148+
.leftJoinAndSelect('partnerAccess.partner', 'partnerAccessPartner')
149+
.leftJoinAndSelect('partnerAdmin.partner', 'partnerAdminPartner')
150+
.leftJoinAndSelect('user.courseUser', 'courseUser')
151+
.leftJoinAndSelect('courseUser.course', 'course')
152+
.leftJoinAndSelect('courseUser.sessionUser', 'sessionUser')
153+
.leftJoinAndSelect('sessionUser.session', 'session')
154+
.leftJoinAndSelect('user.subscriptionUser', 'subscriptionUser')
155+
.leftJoinAndSelect('subscriptionUser.subscription', 'subscription')
156+
.where('user.id = :id', { id })
157+
.getOne();
158+
159+
if (!queryResult) {
160+
throw new HttpException('USER NOT FOUND', HttpStatus.NOT_FOUND);
161+
}
162+
163+
return { userEntity: queryResult, userDto: formatUserObject(queryResult) };
164+
}
165+
138166
public async getUserById(id: string): Promise<UserEntity | undefined> {
139167
const queryResult = await this.userRepository
140168
.createQueryBuilder('user')

0 commit comments

Comments
 (0)