Module: AnotherApi::Paginated
- Included in:
- BaseController
- Defined in:
- lib/another_api/paginated.rb
Instance Method Summary collapse
- #parsed_page_options ⇒ Object
- #parsed_page_param ⇒ Object
- #parsed_page_size_param(default_size: AnotherApi.configuration.default_page_size, max_page_size: AnotherApi.configuration.max_page_size) ⇒ Object
Instance Method Details
#parsed_page_options ⇒ Object
15 16 17 18 19 20 |
# File 'lib/another_api/paginated.rb', line 15 def { page: parsed_page_param, page_size: parsed_page_size_param }.compact_blank end |
#parsed_page_param ⇒ Object
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 |