Class: Carnival::QueryFormCreator

Inherits:
Object
  • Object
show all
Defined in:
app/services/carnival/query_form_creator.rb

Class Method Summary collapse

Class Method Details

.create(presenter, params) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'app/services/carnival/query_form_creator.rb', line 4

def self.create presenter, params
  query_form = Carnival::QueryForm.new(params)

  if query_form.sort_column.nil?
    query_form.sort_column = presenter.default_sortable_field.sort_name.to_sym
  end

  if query_form.sort_direction.nil?
    query_form.sort_direction = presenter.default_sort_direction
  end

  if query_form.scope.nil?
    scope = presenter.default_scope
    query_form.scope = scope.name if scope.present?
  end

  date_filter_field = presenter.date_filter_field
  if date_filter_field.present?
    query_form.date_period_label = date_filter_field.default_date_filter if query_form.date_period_label.nil?
    query_form.date_period_from = date_filter_field.date_filter_periods[query_form.date_period_label].first if query_form.date_period_from.nil?
    query_form.date_period_to = date_filter_field.date_filter_periods[query_form.date_period_label].last if query_form.date_period_to.nil?
  end

  query_form
end