Module: Audited

Defined in:
lib/audited_logfile.rb

Defined Under Namespace

Modules: Adapters Classes: Sweeper

Class Method Summary collapse

Class Method Details

.report(options) ⇒ Object



90
91
92
93
# File 'lib/audited_logfile.rb', line 90

def self.report(options)
  action = options[:action] || 'report'
  Adapters::ActiveRecord::Audit.create!(action: action, audited_changes: options)
end

.week_activity_chart_data(actions, since, till) ⇒ Object



95
96
97
98
99
100
101
102
103
104
# File 'lib/audited_logfile.rb', line 95

def self.week_activity_chart_data(actions, since, till)
  records = Adapters::ActiveRecord::Audit
    .select("TO_CHAR(created_at, 'DD') DAY, TO_CHAR(created_at, 'MM') MONTH, TO_CHAR(created_at, 'YYYY') YEAR")
    .where(action: actions)
    .where('created_at >= ? AND created_at < ?', since, till + 1)
  data = Hash[Adapters::ActiveRecord::Audit
    .find_by_sql("SELECT DAY, MONTH, YEAR, COUNT(*) COUNT FROM (#{records.to_sql}) GROUP BY YEAR, MONTH, DAY ORDER BY YEAR, MONTH, DAY")
    .map { |x| [Date.new(x.year.to_i, x.month.to_i, x.day.to_i), x.count.to_i] }]
  (since .. till).map { |day| [day, (data[day] || 0)] }
end