5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
# File 'app/controllers/concerns/chronicle/filterable.rb', line 5
def build_query(model, filter_definition: {}, filters: {}, group_by: nil, date_column: :created_at)
scope = model.all
params_to_hash = filters.present? ? Util.coerce_to_hash(filters).symbolize_keys : {}
filter_definition.each do |key, filter_type|
param_value = params_to_hash[key]
next if param_value.blank?
scope = apply_filter(scope, key, filter_type, param_value, date_column)
end
scope = scope.group(group_by) if group_by.present?
scope
end
|