/
leenely
/
sl-backend
Обзор
Документация
Войти
/
leenely
/
sl-backend
Код
Запросы
1
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
task
src/form/form.controller.ts
151 строка
5 KB
leenely
fix: mistakes in swagger docs
08 апр 2025, 14:32
08 апр 2025, 14:32
98991a4
Код
Авторство
О чём код?
import { Body, Controller, Delete, Get, Param, Post, Put, UseGuards } from '@nestjs/common' import { ApiOperation, ApiParam, ApiResponse } from '@nestjs/swagger' import { JwtGuard } from 'src/auth/jwt.guard' import { GetUserId } from 'src/decorators/get-user-id.decorator' import { CreateFormResponseDto } from './dto/create-form-response.dto' import { CreateFormDto } from './dto/create-form.dto' import { FormResponseDto } from './dto/form-response.dto' import { FormDto } from './dto/form.dto' import { FormService } from './form.service' @Controller('form') export class FormController { constructor(private readonly formService: FormService) {} @UseGuards(JwtGuard) @Post('/') @ApiOperation({ summary: 'Создание новой формы' }) @ApiResponse({ status: 201, description: 'Форма успешно создана', type: FormDto }) @ApiResponse({ status: 400, description: 'Некорректный запрос' }) @ApiResponse({ status: 401, description: 'Не авторизован' }) async create(@GetUserId() id: number, @Body() dto: CreateFormDto) { const form = await this.formService.create(id, dto) return form } @UseGuards(JwtGuard) @Put('/:id') @ApiOperation({ summary: 'Обновление формы' }) @ApiParam({ name: 'id', description: 'ID формы', type: Number }) @ApiResponse({ status: 200, description: 'Форма успешно обновлена', type: FormDto }) @ApiResponse({ status: 400, description: 'Некорректный запрос или форма не найдена' }) @ApiResponse({ status: 401, description: 'Не авторизован' }) async update( @GetUserId() userId: number, @Param('id') formId: number, @Body() dto: CreateFormDto ) { const form = await this.formService.update(userId, formId, dto) return form } @UseGuards(JwtGuard) @Delete('/:id') @ApiOperation({ summary: 'Удаление формы' }) @ApiParam({ name: 'id', description: 'ID формы', type: Number }) @ApiResponse({ status: 200, description: 'Форма успешно удалена' }) @ApiResponse({ status: 400, description: 'Некорректный запрос или форма не найдена' }) @ApiResponse({ status: 401, description: 'Не авторизован' }) async delete(@GetUserId() userId: number, @Param('id') formId: number) { const status = await this.formService.delete(userId, formId) return status } @UseGuards(JwtGuard) @Get('/my') @ApiOperation({ summary: 'Получение всех форм текущего пользователя' }) @ApiResponse({ status: 200, description: 'Список форм', type: [FormDto] }) @ApiResponse({ status: 401, description: 'Не авторизован' }) async getMy(@GetUserId() id: number) { const forms = await this.formService.getMy(id) return forms } @UseGuards(JwtGuard) @Post('/response') @ApiOperation({ summary: 'Отправка ответа на форму' }) @ApiResponse({ status: 201, description: 'Ответ успешно создан', type: FormResponseDto }) @ApiResponse({ status: 400, description: 'Некорректный запрос или ошибка валидации' }) @ApiResponse({ status: 401, description: 'Не авторизован' }) async createResponse( @GetUserId() userId: number, @Body() dto: CreateFormResponseDto ) { const response = await this.formService.createReponse(userId, dto) return response } @UseGuards(JwtGuard) @Get('/response/my') @ApiOperation({ summary: 'Получение всех ответов на формы текущего пользователя' }) @ApiResponse({ status: 200, description: 'Список ответов на формы', type: [FormResponseDto] }) @ApiResponse({ status: 401, description: 'Не авторизован' }) async getMyResponses(@GetUserId() userId: number) { const responses = await this.formService.getMyResponses(userId) return responses } @UseGuards(JwtGuard) @Get('response/answers/:id') @ApiOperation({ summary: 'Получение всех ответов на конкретную форму (по её id), принадлежащую текущему пользователю' }) @ApiParam({ name: 'id', description: 'ID формы', type: Number }) @ApiResponse({ status: 200, description: 'Список ответов на форму', type: [FormResponseDto] }) @ApiResponse({ status: 400, description: 'Некорректный запрос или форма не найдена' }) @ApiResponse({ status: 401, description: 'Не авторизован' }) async getAllResponsesToMyForm( @GetUserId() userId: number, @Param('id') formId: number ) { const responses = this.formService.getAllResponsesToMyForm( userId, formId ) return responses } }