From fa026ac2f3694a0ef8b28ec1ac35b3f0c3bfc13f Mon Sep 17 00:00:00 2001 From: nicekid1 <86746988+nicekid1@users.noreply.github.com> Date: Sat, 4 Jan 2025 11:50:01 +0330 Subject: [PATCH] Implement functionality to view user information in user module --- src/users/users.controller.ts | 11 ++++++++++- src/users/users.service.ts | 13 +++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/src/users/users.controller.ts b/src/users/users.controller.ts index 8230871..4a1eb9d 100644 --- a/src/users/users.controller.ts +++ b/src/users/users.controller.ts @@ -1,8 +1,9 @@ -import { Controller, Post, Body} from "@nestjs/common"; +import { Controller, Post, Body, UseGuards, Get,Request} from "@nestjs/common"; import { UsersService } from "./users.service"; import { User } from "./entities/user.entity"; import { CreateUserDto } from "./dto/create-user.dto"; import { LoginUserDto } from "./dto/login-user.dto"; +import { JwtAuthGuard } from "src/guard/auth.guard"; @Controller("user") export class UsersController { @@ -18,4 +19,12 @@ export class UsersController { return this.usersService.login(loginUserDto); } + //retrieve a user information + @UseGuards(JwtAuthGuard) + @Get() + async getProfile(@Request() req): Promise { + const userId = req.user.id; + return this.usersService.getProfile(userId); + } + } diff --git a/src/users/users.service.ts b/src/users/users.service.ts index 98b2d34..de415b2 100644 --- a/src/users/users.service.ts +++ b/src/users/users.service.ts @@ -66,4 +66,17 @@ export class UsersService { return { token }; } + + async getProfile(userId: number): Promise { + const user = await this.userModel.findOne({ + where: { id: userId }, + attributes: { exclude: ['password'] }, + }); + + if (!user) { + throw new Error('User not found'); + } + + return user; + } }