Module: AnotherApi::Paginated

Included in:
BaseController
Defined in:
lib/another_api/paginated.rb

Instance Method Summary collapse

Instance Method Details

#parsed_page_optionsObject



15
16
17
18
19
20
# File 'lib/another_api/paginated.rb', line 15

def parsed_page_options
  {
    page: parsed_page_param,
    page_size: parsed_page_size_param
  }.compact_blank
end

#parsed_page_paramObject



3
4
5
6
# File 'lib/another_api/paginated.rb', line 3

def parsed_page_param
  page = sanitise_query_param(params[:page], max_length: 20)&.to_i || 1
  (page.is_a?(Numeric) && page.positive?) ? page : 1
end

#parsed_page_size_param(default_size: AnotherApi.configuration.default_page_size, max_page_size: AnotherApi.configuration.max_page_size) ⇒ Object



8
9
10
11
12
13
# File 'lib/another_api/paginated.rb', line 8

def parsed_page_size_param(default_size: AnotherApi.configuration.default_page_size, max_page_size: AnotherApi.configuration.max_page_size)
  size = sanitise_query_param(params[:page_size], max_length: 5)&.to_i || default_size
  size_is_positive = size.is_a?(Numeric) && size.positive?
  size = max_page_size if size_is_positive && size > max_page_size
  size_is_positive ? size : default_size
end