mirror of
https://github.com/tiennm99/ccs.git
synced 2026-09-02 18:18:43 +00:00
fix(analytics): guard against undefined data arrays in filtering
- Add null check to filterByDateRange function - Guard hourlyData before filtering in hourly endpoint
This commit is contained in:
@@ -640,10 +640,11 @@ function validateOffset(offset?: string): number {
|
|||||||
* Filter data by date range
|
* Filter data by date range
|
||||||
*/
|
*/
|
||||||
function filterByDateRange<T extends { date?: string; month?: string; lastActivity?: string }>(
|
function filterByDateRange<T extends { date?: string; month?: string; lastActivity?: string }>(
|
||||||
data: T[],
|
data: T[] | undefined,
|
||||||
since?: string,
|
since?: string,
|
||||||
until?: string
|
until?: string
|
||||||
): T[] {
|
): T[] {
|
||||||
|
if (!data || !Array.isArray(data)) return [];
|
||||||
if (!since && !until) return data;
|
if (!since && !until) return data;
|
||||||
|
|
||||||
return data.filter((item) => {
|
return data.filter((item) => {
|
||||||
@@ -835,8 +836,8 @@ usageRoutes.get(
|
|||||||
|
|
||||||
const hourlyData = await getCachedHourlyData();
|
const hourlyData = await getCachedHourlyData();
|
||||||
|
|
||||||
// Filter by date range
|
// Filter by date range (guard against undefined)
|
||||||
const filtered = hourlyData.filter((h) => {
|
const filtered = (hourlyData || []).filter((h) => {
|
||||||
// Extract date from hour format "YYYY-MM-DD HH:00"
|
// Extract date from hour format "YYYY-MM-DD HH:00"
|
||||||
const hourDate = h.hour.slice(0, 10).replace(/-/g, '');
|
const hourDate = h.hour.slice(0, 10).replace(/-/g, '');
|
||||||
if (since && hourDate < since) return false;
|
if (since && hourDate < since) return false;
|
||||||
|
|||||||
Reference in New Issue
Block a user