diff --git a/src/services/consumption.service.ts b/src/services/consumption.service.ts index 1bf0cc875e2645f308d4e7f75f4c4e66a1627e75..60e381a5ec5b979ea0c9e3403c64721aef0198f2 100644 --- a/src/services/consumption.service.ts +++ b/src/services/consumption.service.ts @@ -12,7 +12,7 @@ import { DataloadValueDetail, FluidStatus, PerformanceIndicator, - TimePeriod + TimePeriod, } from 'models' import { EnedisMonthlyAnalysisData } from 'models/enedisMonthlyAnalysis' import ConsumptionFormatterService from 'services/consumptionFormatter.service' @@ -57,22 +57,24 @@ export default class ConsumptionDataManager { compareTimePeriod?: TimePeriod, isHome?: boolean ): Promise<Datachart | null> { - const InputisValid: boolean = this._consumptionValidatorService.ValidateGetGraphData( - timePeriod, - timeStep, - fluidTypes, - compareTimePeriod - ) - if (!InputisValid) return null - if (fluidTypes.length === 1 && !isHome) { - const fluidType: FluidType = fluidTypes[0] - // running the query - const fetchedData: Datachart | null = await this.fetchSingleFluidGraphData( + const InputisValid: boolean = + this._consumptionValidatorService.ValidateGetGraphData( timePeriod, timeStep, - fluidType, + fluidTypes, compareTimePeriod ) + if (!InputisValid) return null + if (fluidTypes.length === 1 && !isHome) { + const fluidType: FluidType = fluidTypes[0] + // running the query + const fetchedData: Datachart | null = + await this.fetchSingleFluidGraphData( + timePeriod, + timeStep, + fluidType, + compareTimePeriod + ) // formatting data const formattedData: Datachart | null = this.formatGraphDataManager( @@ -108,9 +110,8 @@ export default class ConsumptionDataManager { chartFluid: fluidType, }) } - const aggregatedData: Datachart | null = this.aggregateGraphData( - toBeAgreggatedData - ) + const aggregatedData: Datachart | null = + this.aggregateGraphData(toBeAgreggatedData) return aggregatedData } else return null } @@ -152,9 +153,7 @@ export default class ConsumptionDataManager { fluidTypes: FluidType ): Promise<Dataload[] | null> { const timePeriod = { - startDate: DateTime.now() - .plus({ days: -3 }) - .startOf('day'), + startDate: DateTime.now().plus({ days: -3 }).startOf('day'), endDate: DateTime.now(), } @@ -199,9 +198,8 @@ export default class ConsumptionDataManager { graphData.actualData ) if (graphData.actualData[0].price) - performanceIndicator.price = this.calculatePerformanceIndicatorPrice( - graphData.actualData - ) + performanceIndicator.price = + this.calculatePerformanceIndicatorPrice(graphData.actualData) } if ( @@ -213,10 +211,11 @@ export default class ConsumptionDataManager { graphData.comparisonData ) performanceIndicator.compareValue = comparisonSumValue - performanceIndicator.percentageVariation = this.calculatePerformanceIndicatorVariationPercentage( - performanceIndicator.value || 0, - comparisonSumValue - ) + performanceIndicator.percentageVariation = + this.calculatePerformanceIndicatorVariationPercentage( + performanceIndicator.value || 0, + comparisonSumValue + ) } performanceIndicators[fluidType] = performanceIndicator @@ -302,24 +301,26 @@ export default class ConsumptionDataManager { ): Datachart | null { if (!data) return null - const formattedActualData: Dataload[] = this._consumptionFormatterService.formatGraphData( - data.actualData, - timePeriod, - timeStep, - fluidType, - fluidStatus - ) - - let formattedComparisonData: Dataload[] | null = null - if (compareTimePeriod) - formattedComparisonData = this._consumptionFormatterService.formatGraphData( - data.comparisonData ? data.comparisonData : [], - compareTimePeriod, + const formattedActualData: Dataload[] = + this._consumptionFormatterService.formatGraphData( + data.actualData, + timePeriod, timeStep, fluidType, fluidStatus ) + let formattedComparisonData: Dataload[] | null = null + if (compareTimePeriod) + formattedComparisonData = + this._consumptionFormatterService.formatGraphData( + data.comparisonData ? data.comparisonData : [], + compareTimePeriod, + timeStep, + fluidType, + fluidStatus + ) + const result: Datachart = { actualData: formattedActualData, comparisonData: formattedComparisonData, @@ -490,9 +491,10 @@ export default class ConsumptionDataManager { if (singleFluidCharts[0].chartData.actualData[i]) { // Define the aggregated state - const aggregatedDataloadState: DataloadState = this._consumptionFormatterService.defineAggregatedDataloadState( - tempAggregatedState - ) + const aggregatedDataloadState: DataloadState = + this._consumptionFormatterService.defineAggregatedDataloadState( + tempAggregatedState + ) const acutaldataLoad: Dataload = { date: singleFluidCharts[0].chartData.actualData[i].date, value: agreggatedConvertedValue, @@ -509,9 +511,10 @@ export default class ConsumptionDataManager { singleFluidCharts[0].chartData.comparisonData[i] ) { // Define the aggregated state - const aggregatedComparisonDataloadState: DataloadState = this._consumptionFormatterService.defineAggregatedDataloadState( - tempComparisonAggregatedState - ) + const aggregatedComparisonDataloadState: DataloadState = + this._consumptionFormatterService.defineAggregatedDataloadState( + tempComparisonAggregatedState + ) const comparisondataLoad: Dataload = { date: singleFluidCharts[0].chartData.comparisonData[i].date, value: comparisonAgreggatedConvertedValue, @@ -598,9 +601,8 @@ export default class ConsumptionDataManager { public async saveDoc( consumptionDoc: DataloadEntity ): Promise<DataloadEntity> { - const { - data: savedDoc, - }: QueryResult<DataloadEntity> = await this._client.save(consumptionDoc) + const { data: savedDoc }: QueryResult<DataloadEntity> = + await this._client.save(consumptionDoc) return savedDoc } @@ -612,11 +614,8 @@ export default class ConsumptionDataManager { public async saveDocs( consumptionDocs: DataloadEntity[] ): Promise<DataloadEntity[]> { - const { - data: savedDocs, - }: QueryResult<DataloadEntity[]> = await this._client.saveAll( - consumptionDocs - ) + const { data: savedDocs }: QueryResult<DataloadEntity[]> = + await this._client.saveAll(consumptionDocs) return savedDocs } diff --git a/src/services/performanceIndicator.service.spec.ts b/src/services/performanceIndicator.service.spec.ts index f4c3f4de19281e40b96b26c4ed0881c28f200151..ec4706dce86629482fbe83a5842d0d634d849380 100644 --- a/src/services/performanceIndicator.service.spec.ts +++ b/src/services/performanceIndicator.service.spec.ts @@ -28,9 +28,10 @@ describe('performanceIndicator service', () => { compareValue: 7.84615, percentageVariation: -0.26191826564620857, } - let result = performanceIndicatorService.aggregatePerformanceIndicators( - performanceIndicator - ) + let result = + performanceIndicatorService.aggregatePerformanceIndicators( + performanceIndicator + ) expect(result).toEqual(expectedResult) //Only two values @@ -51,9 +52,10 @@ describe('performanceIndicator service', () => { compareValue: 5.26785, percentageVariation: -0.6454720616570329, } - result = performanceIndicatorService.aggregatePerformanceIndicators( - performanceIndicator - ) + result = + performanceIndicatorService.aggregatePerformanceIndicators( + performanceIndicator + ) expect(result).toEqual(expectedResult) //lack of value for one @@ -79,9 +81,10 @@ describe('performanceIndicator service', () => { percentageVariation: -0.48368308023680406, value: 4.0511, } - result = performanceIndicatorService.aggregatePerformanceIndicators( - performanceIndicator - ) + result = + performanceIndicatorService.aggregatePerformanceIndicators( + performanceIndicator + ) expect(result).toEqual(expectedResult) //lack of compareValue for one @@ -107,9 +110,10 @@ describe('performanceIndicator service', () => { compareValue: 0, percentageVariation: Infinity, } - result = performanceIndicatorService.aggregatePerformanceIndicators( - performanceIndicator - ) + result = + performanceIndicatorService.aggregatePerformanceIndicators( + performanceIndicator + ) expect(result).toEqual(expectedResult) //Only one with no compared value @@ -125,9 +129,10 @@ describe('performanceIndicator service', () => { compareValue: 0, percentageVariation: Infinity, } - result = performanceIndicatorService.aggregatePerformanceIndicators( - performanceIndicator - ) + result = + performanceIndicatorService.aggregatePerformanceIndicators( + performanceIndicator + ) expect(result).toEqual(expectedResult) //Only one with no value @@ -143,9 +148,10 @@ describe('performanceIndicator service', () => { compareValue: 2.61, percentageVariation: -1, } - result = performanceIndicatorService.aggregatePerformanceIndicators( - performanceIndicator - ) + result = + performanceIndicatorService.aggregatePerformanceIndicators( + performanceIndicator + ) expect(result).toEqual(expectedResult) }) })