correct slice on final chart

This commit is contained in:
Carl-Gerhard Lindesvärd
2024-06-18 09:25:25 +02:00
parent 626a6fd938
commit 5f6966b092

View File

@@ -521,9 +521,7 @@ export async function getChart(input: IChartInput) {
const limit = input.limit || 300; const limit = input.limit || 300;
const offset = input.offset || 0; const offset = input.offset || 0;
const final: FinalChart = { const final: FinalChart = {
series: series series: series.map((serie) => {
.slice(offset, limit ? offset + limit : series.length)
.map((serie) => {
const previousSerie = previousSeries?.find( const previousSerie = previousSeries?.find(
(item) => item.name === serie.name (item) => item.name === serie.name
); );
@@ -599,6 +597,19 @@ export async function getChart(input: IChartInput) {
}, },
}; };
// Sort by sum
final.series = final.series
.sort((a, b) => {
if (input.chartType === 'linear') {
const sumA = a.data.reduce((acc, item) => acc + (item.count ?? 0), 0);
const sumB = b.data.reduce((acc, item) => acc + (item.count ?? 0), 0);
return sumB - sumA;
} else {
return b.metrics[input.metric] - a.metrics[input.metric];
}
})
.slice(offset, limit ? offset + limit : series.length);
final.metrics.sum = sum(final.series.map((item) => item.metrics.sum)); final.metrics.sum = sum(final.series.map((item) => item.metrics.sum));
final.metrics.average = round( final.metrics.average = round(
average(final.series.map((item) => item.metrics.average)), average(final.series.map((item) => item.metrics.average)),
@@ -634,17 +645,6 @@ export async function getChart(input: IChartInput) {
}; };
} }
// Sort by sum
final.series = final.series.sort((a, b) => {
if (input.chartType === 'linear') {
const sumA = a.data.reduce((acc, item) => acc + (item.count ?? 0), 0);
const sumB = b.data.reduce((acc, item) => acc + (item.count ?? 0), 0);
return sumB - sumA;
} else {
return b.metrics[input.metric] - a.metrics[input.metric];
}
});
return final; return final;
} }