Fix event feed regression
This commit is contained in:
@@ -1252,6 +1252,17 @@ export class EventsService {
|
||||
const { timeRange, startDate, endDate, metricIds } = params;
|
||||
const metrics = metricIds || Object.values(METRIC_IDS);
|
||||
|
||||
// Get period dates using TimeManager to respect 1 AM day start
|
||||
let periodStart, periodEnd;
|
||||
if (startDate && endDate) {
|
||||
periodStart = this.timeManager.getDayStart(this.timeManager.toDateTime(startDate));
|
||||
periodEnd = this.timeManager.getDayEnd(this.timeManager.toDateTime(endDate));
|
||||
} else if (timeRange) {
|
||||
const range = this.timeManager.getDateRange(timeRange);
|
||||
periodStart = range.start;
|
||||
periodEnd = range.end;
|
||||
}
|
||||
|
||||
// Try to get from cache first
|
||||
const cacheKey = this.redisService._getCacheKey('events', params);
|
||||
let cachedData = null;
|
||||
@@ -1267,8 +1278,8 @@ export class EventsService {
|
||||
// Fetch events for all specified metrics
|
||||
const eventPromises = metrics.map(metricId =>
|
||||
this.getEvents({
|
||||
startDate,
|
||||
endDate,
|
||||
startDate: periodStart.toISO(),
|
||||
endDate: periodEnd.toISO(),
|
||||
timeRange,
|
||||
metricId,
|
||||
sort: '-datetime'
|
||||
@@ -1277,13 +1288,27 @@ export class EventsService {
|
||||
|
||||
const results = await Promise.all(eventPromises);
|
||||
|
||||
// Transform results into a keyed object
|
||||
const batchResults = {};
|
||||
metrics.forEach((metric, index) => {
|
||||
batchResults[metric] = results[index];
|
||||
// Transform and flatten the events into a single array
|
||||
const allEvents = [];
|
||||
results.forEach((result, index) => {
|
||||
const metricId = metrics[index];
|
||||
const events = result.data || [];
|
||||
allEvents.push(...events);
|
||||
});
|
||||
|
||||
return batchResults;
|
||||
// Sort all events by datetime in descending order
|
||||
allEvents.sort((a, b) => {
|
||||
const dateA = new Date(a.attributes?.datetime || 0);
|
||||
const dateB = new Date(b.attributes?.datetime || 0);
|
||||
return dateB - dateA;
|
||||
});
|
||||
|
||||
return {
|
||||
data: allEvents,
|
||||
meta: {
|
||||
total_count: allEvents.length
|
||||
}
|
||||
};
|
||||
} catch (error) {
|
||||
console.error('[EventsService] Error in batch metrics:', error);
|
||||
throw error;
|
||||
|
||||
Reference in New Issue
Block a user