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
+5 -9
View File
@@ -1,15 +1,13 @@
import { ApiProperty } from '@nestjs/swagger';
import { ArrayMinSize, IsEnum, IsNotEmpty, IsString } from 'class-validator';
import { ArrayMinSize, IsNotEmpty, IsString } from 'class-validator';
import { Permission } from 'src/enum';
import { Optional } from 'src/validation';
import { Optional, ValidateEnum } from 'src/validation';
export class APIKeyCreateDto {
@IsString()
@IsNotEmpty()
@Optional()
name?: string;
@IsEnum(Permission, { each: true })
@ApiProperty({ enum: Permission, enumName: 'Permission', isArray: true })
@ValidateEnum({ enum: Permission, name: 'Permission', each: true })
@ArrayMinSize(1)
permissions!: Permission[];
}
@@ -20,9 +18,7 @@ export class APIKeyUpdateDto {
@IsNotEmpty()
name?: string;
@Optional()
@IsEnum(Permission, { each: true })
@ApiProperty({ enum: Permission, enumName: 'Permission', isArray: true })
@ValidateEnum({ enum: Permission, name: 'Permission', each: true, optional: true })
@ArrayMinSize(1)
permissions?: Permission[];
}
@@ -37,6 +33,6 @@ export class APIKeyResponseDto {
name!: string;
createdAt!: Date;
updatedAt!: Date;
@ApiProperty({ enum: Permission, enumName: 'Permission', isArray: true })
@ValidateEnum({ enum: Permission, name: 'Permission', each: true })
permissions!: Permission[];
}