Module: Zaikio::Client::Helpers::Pagination
- Extended by:
- ActiveSupport::Concern
- Included in:
- Model
- Defined in:
- lib/zaikio/client/helpers/pagination.rb
Defined Under Namespace
Modules: ClassMethods Classes: Relation
Constant Summary collapse
- HEADERS =
{ total_count: "Total-Count", total_pages: "Total-Pages", current_page: "Current-Page" }.freeze
- METADATA_KEY =
:pagination
- FaradayMiddleware =
Faraday Middleware for extracting any pagination headers into the a top-level :metadata hash, or the env hash for non-JSON responses.
Class.new(superclass) do def on_complete(env) @env = env = HEADERS.transform_values do |key| header(key) end if env.body.is_a?(Hash) @env.body[:metadata] ||= {} @env.body[:metadata][METADATA_KEY] = else @env[METADATA_KEY] = end end private def header(key) value = @env.response_headers[key] value.try(:to_i) end end