class Zaikio::Client::Helpers::Pagination::FaradayMiddleware
Faraday Middleware for extracting any pagination headers into the a top-level :metadata hash, or the env hash for non-JSON responses.
@example Usage
conn = Faraday.new do |f| f.use Zaikio::Client::Helpers::Pagination::FaradayMiddleware end response = conn.get("/") response.env[METADATA_KEY] #=> {total_count: 4, total_pages: 1, current_page: 1}
Public Instance Methods
on_complete(env)
click to toggle source
# File lib/zaikio/client/helpers/pagination.rb, line 26 def on_complete(env) @env = env metadata = HEADERS.transform_values do |key| header(key) end if env.body.is_a?(Hash) @env.body[:metadata] ||= {} @env.body[:metadata][METADATA_KEY] = metadata else @env[METADATA_KEY] = metadata end end
Private Instance Methods
header(key)
click to toggle source
# File lib/zaikio/client/helpers/pagination.rb, line 43 def header(key) value = @env.response_headers[key] value.try(:to_i) end