Get some data in

This commit is contained in:
2024-12-22 14:51:13 -05:00
parent 4619d24e84
commit 03d56c5f51
3 changed files with 233 additions and 213 deletions

View File

@@ -141,14 +141,27 @@ _getCacheKey(type, params = {}) {
metric,
daily,
cacheKey,
isPreviousPeriod
isPreviousPeriod,
customFilters
} = params;
let key = `klaviyo:${type}`;
// Handle "stats:details" for daily or metric-based keys
if (type === 'stats:details') {
key += `:${metric}${daily ? ':daily' : ''}`;
// Add metric to key
key += `:${metric || 'all'}`;
// Add daily flag if present
if (daily) {
key += ':daily';
}
// Add custom filters hash if present
if (customFilters?.length) {
const filterHash = customFilters.join('').replace(/[^a-zA-Z0-9]/g, '');
key += `:${filterHash}`;
}
}
// If a specific cache key is provided, use it (highest priority)
@@ -157,15 +170,27 @@ _getCacheKey(type, params = {}) {
}
// Otherwise, build a default cache key
else if (timeRange) {
key += `:${timeRange}${metricId ? `:${metricId}` : ''}`;
key += `:${timeRange}`;
if (metricId) {
key += `:${metricId}`;
}
if (isPreviousPeriod) {
key += ':prev';
key += ':prev';
}
} else if (startDate && endDate) {
key += `:custom:${startDate}:${endDate}${metricId ? `:${metricId}` : ''}`;
if (isPreviousPeriod) {
key += ':prev';
// For custom date ranges, include both dates in the key
key += `:custom:${startDate}:${endDate}`;
if (metricId) {
key += `:${metricId}`;
}
if (isPreviousPeriod) {
key += ':prev';
}
}
// Add order type to key if present
if (['pre_orders', 'local_pickup', 'on_hold'].includes(metric)) {
key += `:${metric}`;
}
return key;