diff --git a/api/src/core/dto/find.one.dto.ts b/api/src/core/dto/find.one.dto.ts new file mode 100644 index 00000000..d0ec6ad2 --- /dev/null +++ b/api/src/core/dto/find.one.dto.ts @@ -0,0 +1,6 @@ +import { IsMongoId } from 'class-validator'; + +export class FindOneDto { + @IsMongoId() + id: string; +} diff --git a/api/src/form/controllers/form.controller.ts b/api/src/form/controllers/form.controller.ts index 1ae21758..aaed9c9a 100644 --- a/api/src/form/controllers/form.controller.ts +++ b/api/src/form/controllers/form.controller.ts @@ -3,6 +3,7 @@ import { AuthGuard } from '@nestjs/passport'; import { ApiBearerAuth, ApiImplicitQuery, ApiResponse, ApiUseTags } from "@nestjs/swagger" import { FormService } from "../services/form.service" import { FormDto } from "../dto/form.dto" +import { FindOneDto } from "../../core/dto/find.one.dto" @ApiUseTags('forms') @ApiBearerAuth() @@ -28,19 +29,19 @@ export class FormController { @ApiImplicitQuery({name: 'id', type: String}) @Get(':id') @UseGuards(AuthGuard('jwt')) - async read(@Param('id') id): Promise { - return new FormDto(await this.formService.findById(id)); + async read(@Param() params: FindOneDto): Promise { + return new FormDto(await this.formService.findById(params.id)); } @Put(':id') @UseGuards(AuthGuard('jwt')) - async update(@Param('id') id, @Request() req): Promise { + async update(@Param() params: FindOneDto, @Request() req): Promise { throw new NotImplementedException() } @Delete(':id') @UseGuards(AuthGuard('jwt')) - async delete(@Param('id') id): Promise { + async delete(@Param() params: FindOneDto): Promise { throw new NotImplementedException() } } diff --git a/api/src/form/controllers/public.controller.ts b/api/src/form/controllers/public.controller.ts index c93e2dbb..28c68618 100644 --- a/api/src/form/controllers/public.controller.ts +++ b/api/src/form/controllers/public.controller.ts @@ -3,6 +3,7 @@ import { ApiImplicitQuery, ApiResponse, ApiUseTags } from "@nestjs/swagger" import { FormService } from "../services/form.service" import { Form } from "../models/form.model" import { PublicFormDto } from "../dto/public.form.dto" +import { FindOneDto } from "../../core/dto/find.one.dto" @ApiUseTags('forms') @Controller('public') @@ -12,8 +13,8 @@ export class PublicController { @ApiResponse({ status: 200, description: 'Form Object', type: PublicFormDto}) @ApiImplicitQuery({name: 'id', type: String}) @Get(':id') - async read(@Param('id') id): Promise { - const form:Form = await this.formService.findById(id) + async read(@Param() params: FindOneDto): Promise { + const form:Form = await this.formService.findById(params.id) if (!form.isLive) { throw new NotFoundException(); diff --git a/api/src/user/controllers/user.controller.ts b/api/src/user/controllers/user.controller.ts index 5348c2b9..f8a3ae1d 100644 --- a/api/src/user/controllers/user.controller.ts +++ b/api/src/user/controllers/user.controller.ts @@ -3,7 +3,7 @@ import { AuthGuard } from '@nestjs/passport'; import { ApiBearerAuth, ApiImplicitQuery, ApiResponse, ApiUseTags } from "@nestjs/swagger" import { UserService } from "../services/user.service" import { UserDto } from "../dto/user.dto" -import {FormDto} from "../../form/dto/form.dto" +import { FindOneDto } from "../../core/dto/find.one.dto" @ApiUseTags('users') @ApiBearerAuth() @@ -30,15 +30,15 @@ export class UserController { @ApiImplicitQuery({name: 'id', type: String}) @Get(':id') @UseGuards(AuthGuard('jwt')) - async read(@Param('id') id): Promise { - return new UserDto(await this.userService.findById(id)); + async read(@Param() params: FindOneDto): Promise { + return new UserDto(await this.userService.findById(params.id)); } @ApiResponse({ status: 200, description: 'User Object', type: UserDto}) @ApiImplicitQuery({name: 'id', type: String}) @Put(':id') @UseGuards(AuthGuard('jwt')) - async update(@Param('id') id, @Request() req): Promise { + async update(@Param() params: FindOneDto, @Request() req): Promise { throw new NotImplementedException() } @@ -47,7 +47,7 @@ export class UserController { @ApiImplicitQuery({name: 'id', type: String}) @Delete(':id') @UseGuards(AuthGuard('jwt')) - async delete(@Param('id') id): Promise { + async delete(@Param() params: FindOneDto): Promise { throw new NotImplementedException() } }