Implement functionality to view user information in user module

master
nicekid1 2 months ago
parent 86ce21487a
commit fa026ac2f3
  1. 11
      src/users/users.controller.ts
  2. 13
      src/users/users.service.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<User> {
const userId = req.user.id;
return this.usersService.getProfile(userId);
}
}

@ -66,4 +66,17 @@ export class UsersService {
return { token };
}
async getProfile(userId: number): Promise<User> {
const user = await this.userModel.findOne({
where: { id: userId },
attributes: { exclude: ['password'] },
});
if (!user) {
throw new Error('User not found');
}
return user;
}
}

Loading…
Cancel
Save