universo-platform-3d

Форк
0
/
paginated-search-space-object.dto.ts 
58 строк · 1.3 Кб
1
import { SORT_DIRECTION } from '../../util/pagination/pagination.interface'
2
import { ApiProperty } from '@nestjs/swagger'
3
import {
4
  IsEnum,
5
  IsNotEmpty,
6
  IsOptional,
7
  IsString,
8
  ValidateIf
9
} from 'class-validator'
10
import { IsSortDirection } from '../../util/validators/sort-directions.validator'
11
import { TAG_TYPES } from '../../tag/models/tag-types.enum'
12
import { Transform } from 'class-transformer'
13
import { ApiArrayQuery } from '../../util/decorators/api-array-query.decorator'
14

15
export class PaginatedSearchSpaceObjectDto {
16
  @IsOptional()
17
  @IsString()
18
  @ApiProperty()
19
  field?: string
20

21
  @IsOptional()
22
  @IsString()
23
  @ApiProperty()
24
  search?: string
25

26
  @IsOptional()
27
  @IsString()
28
  @ApiProperty({
29
    description: `Default is updatedAt: desc`
30
  })
31
  sortKey?: string
32

33
  @IsOptional()
34
  @ApiProperty({
35
    description: `Default is updatedAt: desc`
36
  })
37
  @IsSortDirection()
38
  sortDirection?: SORT_DIRECTION
39

40
  @IsOptional()
41
  @ApiProperty()
42
  page?: number
43

44
  @IsOptional()
45
  @ApiProperty()
46
  perPage?: number
47

48
  @IsOptional()
49
  @ApiArrayQuery([String])
50
  @Transform(({ value }) => (Array.isArray(value) ? value : [value]))
51
  tag?: string[]
52

53
  @ValidateIf((o) => o.tag)
54
  @IsNotEmpty()
55
  @IsEnum(TAG_TYPES)
56
  @ApiProperty({ enum: () => TAG_TYPES })
57
  tagType?: TAG_TYPES
58
}
59

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.