Files
immich/server/src/dtos/api-key.dto.ts

39 lines
910 B
TypeScript
Raw Normal View History

2025-07-15 13:14:57 -04:00
import { ArrayMinSize, IsNotEmpty, IsString } from 'class-validator';
import { Permission } from 'src/enum';
2025-07-15 13:14:57 -04:00
import { Optional, ValidateEnum } from 'src/validation';
export class APIKeyCreateDto {
@IsString()
@IsNotEmpty()
@Optional()
name?: string;
2025-07-15 13:14:57 -04:00
@ValidateEnum({ enum: Permission, name: 'Permission', each: true })
@ArrayMinSize(1)
permissions!: Permission[];
}
export class APIKeyUpdateDto {
@Optional()
@IsString()
@IsNotEmpty()
name?: string;
2025-07-15 13:14:57 -04:00
@ValidateEnum({ enum: Permission, name: 'Permission', each: true, optional: true })
@ArrayMinSize(1)
permissions?: Permission[];
}
2023-06-30 21:49:30 -04:00
export class APIKeyCreateResponseDto {
secret!: string;
apiKey!: APIKeyResponseDto;
}
export class APIKeyResponseDto {
id!: string;
name!: string;
createdAt!: Date;
updatedAt!: Date;
2025-07-15 13:14:57 -04:00
@ValidateEnum({ enum: Permission, name: 'Permission', each: true })
permissions!: Permission[];
2023-06-30 21:49:30 -04:00
}