import { SuccessResponse } from './base'; import { IsArray, IsBoolean, IsEnum, IsNotEmpty, IsNumber, IsString, ValidateNested } from 'class-validator'; import { UserRole, ValidateConstructor } from '../utils'; @ValidateConstructor export class GetUsersEntry { constructor( id: number, gitlab: boolean, name: string, role: UserRole, tfaEnabled: boolean ) { this.id = id; this.gitlab = gitlab; this.name = name; this.role = role; this.tfaEnabled = tfaEnabled; } @IsNumber() id: number; @IsBoolean() gitlab: boolean; @IsString() @IsNotEmpty() name: string; @IsEnum(UserRole) role: UserRole; @IsBoolean() tfaEnabled: boolean; } @ValidateConstructor export class GetUsers extends SuccessResponse { constructor(users: GetUsersEntry[]) { super(); this.users = users; } @IsArray() @ValidateNested({ each: true }) users: GetUsersEntry[]; } export class LogoutAllUser extends SuccessResponse {} export class DeleteUser extends SuccessResponse {} export class SetUserRole extends SuccessResponse {} export class DisableTfa extends SuccessResponse {}