2025-07-15 13:14:57 -04:00
|
|
|
import { ArrayMinSize, IsNotEmpty, IsString } from 'class-validator';
|
2024-08-16 09:48:43 -04:00
|
|
|
import { Permission } from 'src/enum';
|
2025-07-15 13:14:57 -04:00
|
|
|
import { Optional, ValidateEnum } from 'src/validation';
|
2023-01-02 15:22:33 -05:00
|
|
|
export class APIKeyCreateDto {
|
|
|
|
|
@IsString()
|
|
|
|
|
@IsNotEmpty()
|
2023-09-01 12:40:00 -04:00
|
|
|
@Optional()
|
2023-01-02 15:22:33 -05:00
|
|
|
name?: string;
|
2024-08-16 09:48:43 -04:00
|
|
|
|
2025-07-15 13:14:57 -04:00
|
|
|
@ValidateEnum({ enum: Permission, name: 'Permission', each: true })
|
2024-08-16 09:48:43 -04:00
|
|
|
@ArrayMinSize(1)
|
|
|
|
|
permissions!: Permission[];
|
2023-01-02 15:22:33 -05:00
|
|
|
}
|
2023-05-23 16:40:04 -04:00
|
|
|
|
|
|
|
|
export class APIKeyUpdateDto {
|
2025-05-29 21:48:44 +08:00
|
|
|
@Optional()
|
2023-05-23 16:40:04 -04:00
|
|
|
@IsString()
|
|
|
|
|
@IsNotEmpty()
|
2025-05-29 21:48:44 +08:00
|
|
|
name?: string;
|
2025-05-29 02:16:43 +08:00
|
|
|
|
2025-07-15 13:14:57 -04:00
|
|
|
@ValidateEnum({ enum: Permission, name: 'Permission', each: true, optional: true })
|
2025-05-29 02:16:43 +08:00
|
|
|
@ArrayMinSize(1)
|
2025-05-29 21:48:44 +08:00
|
|
|
permissions?: Permission[];
|
2023-05-23 16:40:04 -04:00
|
|
|
}
|
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 })
|
2024-08-16 09:48:43 -04:00
|
|
|
permissions!: Permission[];
|
2023-06-30 21:49:30 -04:00
|
|
|
}
|