Module: CommandTower::PaginationHelper

Included in:
AdminController, Inbox::MessageController
Defined in:
app/helpers/command_tower/pagination_helper.rb

Instance Method Summary collapse

Instance Method Details

#pagination_from_bodyObject



9
10
11
12
13
14
15
16
17
18
# File 'app/helpers/command_tower/pagination_helper.rb', line 9

def pagination_from_body
  pagination = params[:pagination]
  return nil unless pagination.is_a?(ActionController::Parameters) || pagination.is_a?(Hash)

  {
    page: pagination_safe_integer_convert(pagination[:page]),
    limit: pagination_safe_integer_convert(pagination[:limit]),
    cursor: pagination_safe_integer_convert(pagination[:cursor]),
  }
end

#pagination_from_queryObject



20
21
22
23
24
25
26
27
28
# File 'app/helpers/command_tower/pagination_helper.rb', line 20

def pagination_from_query
  return nil unless safe_boolean(value: params[:pagination]) == true

  {
    page: pagination_safe_integer_convert(params[:page]),
    limit: pagination_safe_integer_convert(params[:limit]),
    cursor: pagination_safe_integer_convert(params[:cursor]),
  }
end

#pagination_safe_integer_convert(value, type = Integer) ⇒ Object



30
31
32
33
34
35
36
37
38
# File 'app/helpers/command_tower/pagination_helper.rb', line 30

def pagination_safe_integer_convert(value, type = Integer)
  return if value.presence.nil?

  if value.to_i.to_s == value
    value.to_i
  else
    nil
  end
end

#pagination_valuesObject



5
6
7
# File 'app/helpers/command_tower/pagination_helper.rb', line 5

def pagination_values
  (pagination_from_body || pagination_from_query || {}).compact
end