You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tryFullStack/backend/src/auth/auth.controller.ts

34 lines
1.4 KiB

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