/
Qialet
/
StudentLabs
Обзор
Документация
Войти
/
Qialet
/
StudentLabs
Код
Запросы
1
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/auth/auth.controller.ts
56 строк
2 KB
Qialet_PC
Add docs
11 мар 2026, 17:33
11 мар 2026, 17:33
9d9eb66
Код
Авторство
О чём код?
import { Body, Controller, HttpCode, HttpStatus, Post } from '@nestjs/common'; import { AuthService } from './auth.service'; import { RegisterDto } from './dto/register.dto'; import { LoginDto } from './dto/login.dto'; import { AuthTokens } from './type/auth-tokens.type'; import { IsPublic } from './decorator/is-public.decorator'; import { ApiBody, ApiOperation, ApiResponse, ApiTags } from '@nestjs/swagger'; import { RefreshTokenDto } from './dto/refresh-token.dto'; @Controller('auth') @IsPublic() @ApiTags('Auth') export class AuthController { constructor(private readonly service: AuthService) {} @Post('login') @HttpCode(HttpStatus.OK) @ApiOperation({ summary: 'Аутентификация', description: 'Аутентификация пользователя и получение пары токенов', }) @ApiBody({ type: LoginDto }) @ApiResponse({ status: 200, description: 'Успешная аутентификация' }) @ApiResponse({ status: 401, description: 'Неверный email или пароль' }) async login(@Body() dto: LoginDto): Promise<AuthTokens> { return await this.service.login(dto); } @Post('register') @ApiOperation({ summary: 'Регистрация', description: 'Создание нового пользователя и получение пары токенов', }) @ApiBody({ type: RegisterDto }) @ApiResponse({ status: 201, description: 'Пользователь создан' }) @ApiResponse({ status: 409, description: 'Email уже занят' }) async register(@Body() dto: RegisterDto): Promise<AuthTokens> { return await this.service.register(dto); } @Post('refresh-token') @HttpCode(HttpStatus.OK) @ApiOperation({ summary: 'Обновление токенов', description: 'Получение новой пары токенов по действующему refresh-token', }) @ApiBody({ type: RefreshTokenDto }) @ApiResponse({ status: 200, description: 'Токены обновлены' }) @ApiResponse({ status: 401, description: 'Невалидный или истёкший refresh-token', }) async refresh(@Body() dto: RefreshTokenDto): Promise<AuthTokens> { return await this.service.refresh(dto.refreshToken); } }