File

src/user-lists/dtos/filter-contributors.dto.ts

Index

Properties
Accessors

Properties

Optional contributor
Type : string
Decorators :
@ApiPropertyOptional({type: 'string', example: 'bdougie'})
@IsString()
@IsOptional()
Readonly Optional limit
Type : number
Default value : 10
Decorators :
@ApiPropertyOptional({minimum: 1, maximum: 1000, default: 10, type: 'integer'})
@Type(undefined)
@IsInt()
@Min(1)
@Max(100)
@IsOptional()
Optional location
Type : string[]
Decorators :
@ApiPropertyOptional({isArray: true, type: 'string', example: undefined})
@IsArray()
@IsString({each: true})
@Type(undefined)
@Transform( => , {toClassOnly: true})
@IsOptional()
Readonly Optional orderBy
Type : ListOrderFieldsEnum
Default value : ListOrderFieldsEnum.oscr
Decorators :
@ApiPropertyOptional({enum: ListOrderFieldsEnum, enumName: 'ListOrderFieldsEnum', default: undefined})
@IsEnum(ListOrderFieldsEnum)
@IsOptional()
Readonly Optional orderDirection
Type : OrderDirectionEnum
Default value : OrderDirectionEnum.DESC
Decorators :
@ApiPropertyOptional({enum: OrderDirectionEnum, enumName: 'OrderDirectionEnum', default: undefined})
@IsEnum(OrderDirectionEnum)
@IsOptional()
Readonly Optional page
Type : number
Default value : 1
Decorators :
@ApiPropertyOptional({minimum: 1, default: 1, type: 'integer'})
@Type(undefined)
@IsInt()
@Min(1)
@IsOptional()
Optional timezone
Type : string[]
Decorators :
@ApiPropertyOptional({isArray: true, type: 'string', example: undefined})
@IsArray()
@IsString({each: true})
@Type(undefined)
@Transform( => , {toClassOnly: true})
@IsOptional()

Accessors

skip
getskip()
import { ApiPropertyOptional } from "@nestjs/swagger";
import { Transform, Type } from "class-transformer";
import { IsInt, Min, IsOptional, Max, IsString, IsArray, IsEnum } from "class-validator";
import { OrderDirectionEnum } from "../../common/constants/order-direction.constant";

export enum ListOrderFieldsEnum {
  oscr = "oscr",
}

export class FilterListContributorsDto {
  @ApiPropertyOptional({
    minimum: 1,
    default: 1,
    type: "integer",
  })
  @Type(() => Number)
  @IsInt()
  @Min(1)
  @IsOptional()
  readonly page?: number = 1;

  @ApiPropertyOptional({
    minimum: 1,
    maximum: 1000,
    default: 10,
    type: "integer",
  })
  @Type(() => Number)
  @IsInt()
  @Min(1)
  @Max(100)
  @IsOptional()
  readonly limit?: number = 10;

  @ApiPropertyOptional({
    isArray: true,
    type: "string",
    example: ["Denver, Colorado", "Germany"],
  })
  @IsArray()
  @IsString({ each: true })
  @Type(() => String)
  @Transform(({ value }) => (Array.isArray(value) ? value : Array(value)) as string[], { toClassOnly: true })
  @IsOptional()
  location?: string[];

  @ApiPropertyOptional({
    type: "string",
    example: "bdougie",
  })
  @IsString()
  @IsOptional()
  contributor?: string;

  @ApiPropertyOptional({
    isArray: true,
    type: "string",
    example: ["Mountain Standard Time", "UTC"],
  })
  @IsArray()
  @IsString({ each: true })
  @Type(() => String)
  @Transform(({ value }) => (Array.isArray(value) ? value : Array(value)) as string[], { toClassOnly: true })
  @IsOptional()
  timezone?: string[];

  @ApiPropertyOptional({
    enum: ListOrderFieldsEnum,
    enumName: "ListOrderFieldsEnum",
    default: ListOrderFieldsEnum.oscr,
  })
  @IsEnum(ListOrderFieldsEnum)
  @IsOptional()
  readonly orderBy?: ListOrderFieldsEnum = ListOrderFieldsEnum.oscr;

  @ApiPropertyOptional({ enum: OrderDirectionEnum, enumName: "OrderDirectionEnum", default: OrderDirectionEnum.DESC })
  @IsEnum(OrderDirectionEnum)
  @IsOptional()
  readonly orderDirection?: OrderDirectionEnum = OrderDirectionEnum.DESC;

  get skip(): number {
    return ((this.page ?? 1) - 1) * (this.limit ?? 10);
  }
}

results matching ""

    No results matching ""