Class: RailsPulse::Requests::Charts::AverageResponseTimes

Inherits:
Object
  • Object
show all
Defined in:
app/models/rails_pulse/requests/charts/average_response_times.rb

Instance Method Summary collapse

Constructor Details

#initialize(ransack_query:, group_by: :group_by_day, route: nil) ⇒ AverageResponseTimes

Returns a new instance of AverageResponseTimes.



5
6
7
8
9
# File 'app/models/rails_pulse/requests/charts/average_response_times.rb', line 5

def initialize(ransack_query:, group_by: :group_by_day, route: nil)
  @ransack_query = ransack_query
  @group_by = group_by
  @route = route
end

Instance Method Details

#to_rails_chartObject



11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'app/models/rails_pulse/requests/charts/average_response_times.rb', line 11

def to_rails_chart
  # Get actual data using existing logic
  actual_data = @ransack_query.result(distinct: false)
    .public_send(
      @group_by,
      "rails_pulse_requests.occurred_at",
      series: true,
      time_zone: "UTC"
    )
    .average("rails_pulse_requests.duration")

  # Create full time range and fill in missing periods
  fill_missing_periods(actual_data)
end