@@ -33,31 +33,30 @@ def daterange_downloads_query(model_id: metrics_default_id, column: metrics_defa
3333 end
3434 end
3535
36- def feed_downloads_query ( feeds :, model_id : metrics_default_id , column : metrics_default_column , date_start : metrics_default_date_start , date_end : nil )
37- slugs = feeds . pluck ( :slug ) . map { |slug | slug . nil? ? "" : slug }
36+ def metrics_feed_slugs
37+ feeds . pluck ( :slug ) . map { |slug | slug . nil? ? "" : slug }
38+ end
3839
40+ def feed_downloads_query ( feeds :, model_id : metrics_default_id , column : metrics_default_column , date_start : metrics_default_date_start , date_end : nil )
3941 Rollups ::HourlyDownload
4042 . where ( podcast_id : metrics_podcast_id )
41- . where ( "#{ column } " : model_id , feed_slug : slugs , hour : ( date_start ..date_end ) )
43+ . where ( "#{ column } " : model_id , feed_slug : metrics_feed_slugs , hour : ( date_start ..date_end ) )
4244 . group ( :feed_slug )
4345 . order ( Arel . sql ( "SUM(count) AS count DESC" ) )
4446 . final
4547 . sum ( :count )
4648 end
4749
4850 def label_feed_results ( results )
51+ metrics_feed_slugs . each do |slug |
52+ results [ slug ] = 0 unless results [ slug ]
53+ end
54+
4955 feed_slug_labels = feeds . map do |feed |
5056 [ feed . slug , feed . label ]
5157 end . to_h
52- feed_default_downloads = feeds . map do |feed |
53- [ feed . label , 0 ]
54- end . to_h
5558
56- results
57- . transform_keys { |k | feed_slug_labels [ k . presence ] }
58- . merge ( feed_default_downloads ) do |k , query_val , default_val |
59- query_val . present? ? query_val : default_val
60- end
59+ results . transform_keys { |k | feed_slug_labels [ k . presence ] }
6160 end
6261
6362 def top_countries_downloads_query ( model_id : metrics_default_id , column : metrics_default_column , date_start : metrics_default_date_start , date_end : nil )
0 commit comments