5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
# File 'app/models/rails_pulse/dashboard/charts/average_response_time.rb', line 5
def to_chart_data
start_date = 2.weeks.ago.beginning_of_day.to_date
end_date = Time.current.to_date
date_range = (start_date..end_date)
requests = RailsPulse::Request.where("occurred_at >= ?", start_date.beginning_of_day)
actual_data = requests
.group_by_day(:occurred_at)
.average(:duration)
date_range.each_with_object({}) do |date, result|
formatted_date = date.strftime("%b %-d")
avg_duration = actual_data[date]
result[formatted_date] = avg_duration&.round(0) || 0
end
end
|