Class: RailsErrorDashboard::Queries::UserImpactSummary

Inherits:
Object
  • Object
show all
Defined in:
lib/rails_error_dashboard/queries/user_impact_summary.rb

Overview

Query: Rank errors by unique user impact — how many distinct users each error type affects. Surfaces “this error affected 847 unique users” prominently. An error hitting 1 user 1000 times is different from an error hitting 1000 users once.

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(days = 30, application_id: nil) ⇒ UserImpactSummary

Returns a new instance of UserImpactSummary.



13
14
15
16
17
# File 'lib/rails_error_dashboard/queries/user_impact_summary.rb', line 13

def initialize(days = 30, application_id: nil)
  @days = days
  @application_id = application_id
  @start_date = days.days.ago
end

Class Method Details

.call(days = 30, application_id: nil) ⇒ Object



9
10
11
# File 'lib/rails_error_dashboard/queries/user_impact_summary.rb', line 9

def self.call(days = 30, application_id: nil)
  new(days, application_id: application_id).call
end

Instance Method Details

#callObject



19
20
21
22
23
24
25
26
27
28
# File 'lib/rails_error_dashboard/queries/user_impact_summary.rb', line 19

def call
  all_entries = build_entries
  {
    entries: all_entries,
    summary: build_summary(all_entries)
  }
rescue => e
  Rails.logger.error("[RailsErrorDashboard] UserImpactSummary failed: #{e.class}: #{e.message}")
  empty_result
end