Sha256: e48c3896b406f4ceeea50a29b2aafab480e892dc571db38aa59b7cf87daa40c4
Contents?: true
Size: 1.46 KB
Versions: 62
Compression:
Stored size: 1.46 KB
Contents
module Workarea module Insights class HotSearches < Base class << self def dashboards %w(search) end def generate_weekly! median = revenue_change_median standard_deviation = revenue_change_standard_deviation [2, 1, 0].each do |min_deviations| results = find_results( median: median, standard_deviation: standard_deviation, min_deviations: min_deviations ) if results.present? create!(results: results.map(&:as_document)) return end end end def find_results(median:, standard_deviation:, min_deviations:) min_revenue_change = median + (standard_deviation * min_deviations) min_revenue_change = min_revenue_change < 0 ? 0 : min_revenue_change Metrics::SearchByWeek .last_week .where(:revenue_change.gt => min_revenue_change) .order_by(revenue_change: :desc, prior_week_revenue: :desc, _id: :asc) .limit(Workarea.config.insights_searches_list_max_results) .to_a end def revenue_change_median Metrics::SearchByWeek.last_week.improved_revenue.revenue_change_median end def revenue_change_standard_deviation Metrics::SearchByWeek.last_week.improved_revenue.revenue_change_standard_deviation end end end end end
Version data entries
62 entries across 62 versions & 1 rubygems