728x90
문서나 인터넷을 찾아보면 ApiProperty에 enum이용하면 validate가 되는것 처럼 설명되어 있으나 동작하지 않습니다.
IsEnum 이라는 Annotation을 이용하면 해결이 되네요.
import { ApiProperty } from '@nestjs/swagger';
import { IsEnum, IsNotEmpty, IsNumber, IsString } from 'class-validator';
enum TCD {
DQST = 'DQST',
DLDR = 'DLDR',
DNIF = 'DNIF',
DROP = 'DROP',
CQST = 'CQST',
CLDR = 'CLDR',
CNIF = 'CNIF',
CROP = 'CROP',
}
export class CreateCmtPostDDto {
@ApiProperty({
description: '게시글 유형 코드',
})
@IsNotEmpty()
@IsEnum(Object.values(TCD))
pstTcd: TCD;
}
Swagger API를 찾아보아도않습니다.
enum 값이 아닌 다른 값을 넣었을때 결과는 아래와 같습니다.
{
"statusCode": 400,
"error": "Bad Request",
"path": "/v1/cmtPost",
"method": "POST",
"timeStamp": "2022-09-07T06:07:29.632Z",
"request": {
"statusCode": 400,
"message": [
"pstTcd must be a valid enum value"
],
"error": "Bad Request"
}
}
참고 자료
'NodeJS' 카테고리의 다른 글
nestjs에서 특정 시간동안 게시글 / 댓글 / 대댓글 등록 제한 처리 (0) | 2022.12.12 |
---|---|
nestjs에서 config모듈을 이용한 설정 관리 (0) | 2022.12.09 |
typeorm에서 페이징 처리시 distinct 실행 문제 (0) | 2022.11.16 |
bcrypt를 bcryptjs로 전환 (0) | 2022.11.15 |
nestjs에서 jest TIP 정리 (0) | 2022.11.07 |