import { ApiProperty } from "@nestjs/swagger"; import { IsArray, IsDefined, IsInt, IsNotEmpty } from "class-validator"; import { EsResponseDto } from "./es-response.dto"; /** * List of allowed properties in this DTO */ const allowedProperties = ['data', 'status']; /** * Elasticsearch response DTO */ export class SearchResultDto { /** * Status code */ @IsDefined() @IsNotEmpty() @IsInt() @ApiProperty({ description: 'Status code', example: 200, }) statusCode: number; /** * All the data acquired. */ @IsDefined() @IsNotEmpty() @IsArray() @ApiProperty({ description: 'Data acquired from the Elasticsearch', example: { }, }) data: EsResponseDto; /** * Constructs an object with provided parameters * @param code * @param data */ constructor(code: number, data: EsResponseDto) { this.statusCode = code; this.data = data; } }