mvkampen/jsonapi-fetchdata

View on GitHub
lib/jsonapi/fetchdata/parameters/parsers/paginate.rb

Summary

Maintainability
A
0 mins
Test Coverage
require 'jsonapi/fetchdata/parameters/parser'

# parses both page and offset strategies
# internally translates into offset, since thats native to AR

module JSONAPI
  module FetchData
    module Parameters
      module Parsers
        class Paginate < Parser

          def parse params={}
            number, size, offset, limit = params.values_at('number', 'size', 'offset', 'limit')
            limit = (limit || size || JSONAPI::FetchData.config.max_per_page).to_i
            number = (number || 1).to_i
            offset = (offset || number * limit).to_i
            {
              'offset' => offset,
              'limit' => limit
            }
          end

        end
      end
    end
  end
end