import { Body, Controller, Get, Post, Request, UseGuards } from '@nestjs/common'; import { AuthService } from './auth.service'; import { CreateUserDto } from 'src/users/dto/create-user.dto'; import { LoginUserDto } from 'src/auth/dto/login-user.dto'; import { SuccessResponseDto } from 'src/common/dto/sucees-response.dto'; import { LoginResponseDto } from './dto/login-response.dto'; import { UsersService } from 'src/users/users.service'; import { JwtAuthGuard } from './jwt-auth.guard'; import { UserInfoResponseDto } from 'src/users/dto/user-info-response.dto'; @Controller('auth') export class AuthController { constructor(private readonly authService: AuthService, private userService: UsersService) {} @Post('signup') async signup(@Body() dto: CreateUserDto): Promise { const user = await this.authService.signup(dto); return SuccessResponseDto.ok(); } @Post('login') async login(@Body() dto: LoginUserDto): Promise> { const loginUser = await this.authService.login(dto); return SuccessResponseDto.of(loginUser); } @Get('me') @UseGuards(JwtAuthGuard) async getMe(@Request() req): Promise> { const userInfo = await this.userService.findUserInfoByIdOrFail(req.user.userId); return SuccessResponseDto.of(userInfo); } }