File

src/common/dtos/page-options.dto.ts

Index

Properties
  • Readonly Optional order
  • Readonly Optional page
  • Readonly Optional take
Accessors

Properties

Readonly Optional order
Type : Order
Default value : Order.ASC
Decorators :
@ApiPropertyOptional({enum: Order, default: undefined})
@IsEnum(Order)
@IsOptional()
Readonly Optional page
Type : number
Default value : 1
Decorators :
@ApiPropertyOptional({minimum: 1, default: 1})
@Type(undefined)
@IsInt()
@Min(1)
@IsOptional()
Readonly Optional take
Type : number
Default value : 10
Decorators :
@ApiPropertyOptional({minimum: 1, maximum: 50, default: 10})
@Type(undefined)
@IsInt()
@Min(1)
@Max(50)
@IsOptional()

Accessors

skip
getskip()
import { ApiPropertyOptional } from '@nestjs/swagger';
import { Type } from 'class-transformer';
import { IsEnum, IsInt, IsOptional, Max, Min } from 'class-validator';
import { Order } from 'common/constants';

export class PageOptionsDto {
  @ApiPropertyOptional({
    enum: Order,
    default: Order.ASC,
  })
  @IsEnum(Order)
  @IsOptional()
  readonly order?: Order = Order.ASC;

  @ApiPropertyOptional({
    minimum: 1,
    default: 1,
  })
  @Type(() => Number)
  @IsInt()
  @Min(1)
  @IsOptional()
  readonly page?: number = 1;

  @ApiPropertyOptional({
    minimum: 1,
    maximum: 50,
    default: 10,
  })
  @Type(() => Number)
  @IsInt()
  @Min(1)
  @Max(50)
  @IsOptional()
  readonly take?: number = 10;

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

result-matching ""

    No results matching ""