Class: WebHookEventsDailyAggregate
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- WebHookEventsDailyAggregate
- Defined in:
- app/models/web_hook_events_daily_aggregate.rb
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.by_day(start_date, end_date, web_hook_id = nil) ⇒ Object
13 14 15 16 17 |
# File 'app/models/web_hook_events_daily_aggregate.rb', line 13 def self.by_day(start_date, end_date, web_hook_id = nil) result = where("date >= ? AND date <= ?", start_date.to_date, end_date.to_date) result = result.where(web_hook_id: web_hook_id) if web_hook_id result end |
.purge_old ⇒ Object
9 10 11 |
# File 'app/models/web_hook_events_daily_aggregate.rb', line 9 def self.purge_old where("created_at < ?", SiteSetting.retain_web_hook_events_aggregate_days.days.ago).delete_all end |
Instance Method Details
#aggregate! ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'app/models/web_hook_events_daily_aggregate.rb', line 19 def aggregate! events = WebHookEvent.where( "created_at >= ? AND created_at < ? AND web_hook_id = ?", self.date, self.date + 1.day, self.web_hook_id, ) if events.empty? self.mean_duration = 0 self.successful_event_count = 0 self.failed_event_count = 0 return end self.mean_duration = events.sum(:duration) / events.count self.successful_event_count = events.where("status >= 200 AND status <= 299").count self.failed_event_count = events.where("status < 200 OR status > 299").count end |