refactor: validate enum (#19943)

This commit is contained in:
Jason Rasmussen
2025-07-15 13:14:57 -04:00
committed by GitHub
parent 68f249bc03
commit 351701c4d6
23 changed files with 161 additions and 225 deletions
+6 -11
View File
@@ -1,8 +1,8 @@
import { ApiProperty } from '@nestjs/swagger';
import { IsEnum, IsNotEmpty, IsString, ValidateIf } from 'class-validator';
import { IsNotEmpty, IsString, ValidateIf } from 'class-validator';
import { Activity } from 'src/database';
import { mapUser, UserResponseDto } from 'src/dtos/user.dto';
import { Optional, ValidateUUID } from 'src/validation';
import { ValidateEnum, ValidateUUID } from 'src/validation';
export enum ReactionType {
COMMENT = 'comment',
@@ -19,7 +19,7 @@ export type MaybeDuplicate<T> = { duplicate: boolean; value: T };
export class ActivityResponseDto {
id!: string;
createdAt!: Date;
@ApiProperty({ enumName: 'ReactionType', enum: ReactionType })
@ValidateEnum({ enum: ReactionType, name: 'ReactionType' })
type!: ReactionType;
user!: UserResponseDto;
assetId!: string | null;
@@ -43,14 +43,10 @@ export class ActivityDto {
}
export class ActivitySearchDto extends ActivityDto {
@IsEnum(ReactionType)
@Optional()
@ApiProperty({ enumName: 'ReactionType', enum: ReactionType })
@ValidateEnum({ enum: ReactionType, name: 'ReactionType', optional: true })
type?: ReactionType;
@IsEnum(ReactionLevel)
@Optional()
@ApiProperty({ enumName: 'ReactionLevel', enum: ReactionLevel })
@ValidateEnum({ enum: ReactionLevel, name: 'ReactionLevel', optional: true })
level?: ReactionLevel;
@ValidateUUID({ optional: true })
@@ -60,8 +56,7 @@ export class ActivitySearchDto extends ActivityDto {
const isComment = (dto: ActivityCreateDto) => dto.type === ReactionType.COMMENT;
export class ActivityCreateDto extends ActivityDto {
@IsEnum(ReactionType)
@ApiProperty({ enumName: 'ReactionType', enum: ReactionType })
@ValidateEnum({ enum: ReactionType, name: 'ReactionType' })
type!: ReactionType;
@ValidateIf(isComment)