Class: Workarea::Insights::MostReviewedProducts

Inherits:
Base
  • Object
show all
Defined in:
app/models/workarea/insights/most_reviewed_products.rb

Class Method Summary collapse

Class Method Details

.dashboardsObject



5
6
7
# File 'app/models/workarea/insights/most_reviewed_products.rb', line 5

def dashboards
  %w(marketing)
end

.generate_monthly!Object



9
10
11
12
# File 'app/models/workarea/insights/most_reviewed_products.rb', line 9

def generate_monthly!
  results = generate_results
  create!(results: results) if results.present?
end

.generate_resultsObject



14
15
16
17
18
19
20
# File 'app/models/workarea/insights/most_reviewed_products.rb', line 14

def generate_results
  report
    .results
    .select { |r| r['reviews'] > 0 }
    .take(Workarea.config.insights_products_list_max_results)
    .map { |result| result.merge(product_id: result['_id']) }
end

.reportObject



22
23
24
25
26
27
28
29
# File 'app/models/workarea/insights/most_reviewed_products.rb', line 22

def report
  Reports::ReviewsByProduct.new(
    starts_at: beginning_of_last_month,
    ends_at: end_of_last_month,
    sort_by: 'reviews',
    sort_direction: 'desc'
  )
end