- Replace 4 duplicate meta DTOs (AuthResponseMetaDto, PortfolioResponseMetaDto, BrokerResponseMetaDto, ScreenerResponseMetaDto) with shared ApiResponseMeta - Wrap shares getShare() in ApiEnvelopePayload (was raw object, unlike bonds) - Remove unnecessary CacheModule import from securities module - Update portfolio controller nullDataEnvelopeSchema to use shared ApiResponseMeta - All 116 tests pass
47 lines
1.3 KiB
TypeScript
47 lines
1.3 KiB
TypeScript
import { ApiProperty } from '@nestjs/swagger';
|
|
import { ApiResponseMeta } from '../../../common/dto/api-response.dto';
|
|
import { AnalyticsResponseDto } from './analytics-response.dto';
|
|
import { PortfolioListResponseDto } from './portfolio-list-response.dto';
|
|
import { PortfolioDetailResponseDto, PortfolioResponseDto } from './portfolio-response.dto';
|
|
import { PositionResponseDto } from './position-response.dto';
|
|
|
|
export class PortfolioListEnvelopeDto {
|
|
@ApiProperty({ type: [PortfolioListResponseDto] })
|
|
data!: PortfolioListResponseDto[];
|
|
|
|
@ApiProperty({ type: ApiResponseMeta })
|
|
meta!: ApiResponseMeta;
|
|
}
|
|
|
|
export class PortfolioEnvelopeDto {
|
|
@ApiProperty({ type: PortfolioResponseDto })
|
|
data!: PortfolioResponseDto;
|
|
|
|
@ApiProperty({ type: ApiResponseMeta })
|
|
meta!: ApiResponseMeta;
|
|
}
|
|
|
|
export class PortfolioDetailEnvelopeDto {
|
|
@ApiProperty({ type: PortfolioDetailResponseDto })
|
|
data!: PortfolioDetailResponseDto;
|
|
|
|
@ApiProperty({ type: ApiResponseMeta })
|
|
meta!: ApiResponseMeta;
|
|
}
|
|
|
|
export class PositionEnvelopeDto {
|
|
@ApiProperty({ type: PositionResponseDto })
|
|
data!: PositionResponseDto;
|
|
|
|
@ApiProperty({ type: ApiResponseMeta })
|
|
meta!: ApiResponseMeta;
|
|
}
|
|
|
|
export class AnalyticsEnvelopeDto {
|
|
@ApiProperty({ type: AnalyticsResponseDto })
|
|
data!: AnalyticsResponseDto;
|
|
|
|
@ApiProperty({ type: ApiResponseMeta })
|
|
meta!: ApiResponseMeta;
|
|
}
|