DanielBlanco/her-kaminari

View on GitHub
lib/her/kaminari/header_parser.rb

Summary

Maintainability
A
0 mins
Test Coverage
# -*- encoding : utf-8 -*-
# lib/her/kaminari/header_parser.rb
module Her
  module Kaminari
    class HeaderParser < Faraday::Response::Middleware

      # @param [Hash] env environment
      def on_complete(env)
        @env = env

        pagination = {
          total_count: header("x-total").to_i,
          per_page:    (header("x-per-page") || env.body[:data].count).to_i,
          page:        header("x-page").to_i,
          offset:      header('x-offset').to_i
        }

        env[:body].merge!(pagination: pagination)
      end

      private

        # Returns a response header value.
        #
        # @param [String] name of the header attribute
        # @return [String] the response header value
        def header(name)
          @env.response_headers[name]
        end
    end
  end
end