All files / libs/reporting/dashboards-v2/api/src/lib/dtos chart-facet.dto.ts

100% Statements 38/38
0% Branches 0/1
100% Functions 0/0
100% Lines 38/38

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 391x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x  
import { Type } from 'class-transformer';
import { IsArray, IsEnum, IsOptional, IsString, ValidateNested } from 'class-validator';
 
import {
  CustomReportAggregationOperation,
  type CustomReportAggregation,
  type CustomReportConfigurationField,
  type CustomReportFacetRequest,
} from '@amalia/reporting/custom-reports/shared';
 
export class CustomReportAggregationDto implements CustomReportAggregation {
  @IsEnum(CustomReportAggregationOperation)
  public readonly operation!: CustomReportAggregationOperation;
}
 
export class CustomReportConfigurationFieldDto implements CustomReportConfigurationField {
  @IsString()
  public readonly identifier!: string;
 
  @IsString()
  @IsOptional()
  public readonly alias?: string;
 
  @IsArray()
  @IsOptional()
  public readonly joins?: string[];
 
  @ValidateNested()
  @Type(() => CustomReportAggregationDto)
  @IsOptional()
  public readonly aggregation?: CustomReportAggregation;
}
 
export class ChartFacetDto implements Pick<CustomReportFacetRequest, 'field'> {
  @ValidateNested()
  @Type(() => CustomReportConfigurationFieldDto)
  public readonly field!: CustomReportConfigurationFieldDto;
}