Sha256: 460a8d8758fac34784e1f4620f9945d84c1218e0f2b53be97a7750b688c8b0ce
Contents?: true
Size: 1.35 KB
Versions: 2
Compression:
Stored size: 1.35 KB
Contents
class Agilibox::SmallData::FilterStrategyByTimePeriod < ::Agilibox::SmallData::FilterStrategyByKeyValue def apply(query, value) # rubocop:disable Metrics/MethodLength value = value.to_s if value == "today" a = Time.zone.now.beginning_of_day b = Time.zone.now.end_of_day elsif value == "yesterday" a = (Time.zone.now - 1.day).beginning_of_day b = (Time.zone.now - 1.day).end_of_day elsif value == "this_week" a = Time.zone.now.beginning_of_week b = Time.zone.now.end_of_week elsif value == "this_month" a = Time.zone.now.beginning_of_month b = Time.zone.now.end_of_month elsif value == "this_year" a = Time.zone.now.beginning_of_year b = Time.zone.now.end_of_year elsif value == "last_week" a = (Time.zone.now - 1.week).beginning_of_week b = (Time.zone.now - 1.week).end_of_week elsif value == "last_month" a = (Time.zone.now - 1.month).beginning_of_month b = (Time.zone.now - 1.month).end_of_month elsif value == "last_year" a = (Time.zone.now - 1.year).beginning_of_year b = (Time.zone.now - 1.year).end_of_year else return query end column = key.is_a?(Symbol) ? "#{query.model.table_name}.#{key}" : key.to_s query .where("DATE(#{column}) >= ?", a.to_date) .where("DATE(#{column}) <= ?", b.to_date) end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
agilibox-1.1.0 | app/filters/agilibox/small_data/filter_strategy_by_time_period.rb |
agilibox-1.0.15 | app/filters/agilibox/small_data/filter_strategy_by_time_period.rb |