hospital-log/backend/api/src/modules/auth/auth.controller.ts

36 lines
1.0 KiB
TypeScript
Raw Normal View History

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<CreateUserDtoResponse> {
return this.authService.registerUser(data);
}
@Post('/login')
@Header('Content-Type', 'application/json')
@HttpCode(200)
loginUser(@Body() data: AuthDto): Promise<AuthDtoResponse> {
return this.authService.signIn(data.username, data.password);
}
}