import { Body, Controller, Header, HttpCode, Post, UseGuards, } from '@nestjs/common'; import { CreateUserDto, CreateUserDtoResponse } from './dto/create-user.dto'; import { AuthDto, AuthDtoResponse, UserRole } from './dto/auth.dto'; import { AuthService } from './auth.service'; import { AuthGuard } from './guard/auth.guard'; import { RolesGuard } from './guard/roles.guard'; import { Roles } from './decorator/roles.decorator'; @Controller('/auth') export class AuthController { constructor(private authService: AuthService) {} @Post('/register') @Header('Content-Type', 'application/json') @HttpCode(201) @UseGuards(AuthGuard, RolesGuard) @Roles(UserRole.Admin) registerUser(@Body() data: CreateUserDto): Promise { return this.authService.registerUser(data); } @Post('/login') @Header('Content-Type', 'application/json') @HttpCode(200) loginUser(@Body() data: AuthDto): Promise { return this.authService.signIn(data.username, data.password); } }