mirror of
https://github.com/Tria-plc/edr-platform.git
synced 2026-08-30 07:38:10 +00:00
add staff user list endpoint
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
import { ApiPropertyOptional } from '@nestjs/swagger';
|
||||
import { EUserStatus, EUserType } from '@tria-plc/api-common/utils/enums/user.enum';
|
||||
import { Transform, TransformFnParams } from 'class-transformer';
|
||||
import { IsBoolean, IsEnum, IsIn, IsOptional } from 'class-validator';
|
||||
|
||||
import { PaginationQueryDto } from '../../../common/dto/pagination-query.dto';
|
||||
|
||||
/** Query-string booleans arrive as strings; implicit conversion is off app-wide. */
|
||||
const toOptionalBoolean = ({ value }: TransformFnParams): boolean | undefined =>
|
||||
value === undefined || value === null || value === ''
|
||||
? undefined
|
||||
: value === true || value === 'true';
|
||||
|
||||
export class ListUsersQueryDto extends PaginationQueryDto {
|
||||
@ApiPropertyOptional({ enum: EUserType })
|
||||
@IsOptional()
|
||||
@IsEnum(EUserType)
|
||||
userType?: EUserType;
|
||||
|
||||
@ApiPropertyOptional({ enum: EUserStatus })
|
||||
@IsOptional()
|
||||
@IsEnum(EUserStatus)
|
||||
userStatus?: EUserStatus;
|
||||
|
||||
@ApiPropertyOptional({ description: 'Filter by active flag.' })
|
||||
@IsOptional()
|
||||
@Transform(toOptionalBoolean)
|
||||
@IsBoolean()
|
||||
isActive?: boolean;
|
||||
|
||||
@ApiPropertyOptional({
|
||||
enum: ['username', 'email', 'createdAt'],
|
||||
default: 'username',
|
||||
})
|
||||
@IsOptional()
|
||||
@IsIn(['username', 'email', 'createdAt'])
|
||||
sortBy?: string;
|
||||
}
|
||||
Reference in New Issue
Block a user