module Middlewares::Decorator::Paginate

Public Class Methods

perform(request, response, options) click to toggle source
# File lib/endpoint_flux/tasks/endpoint_flux/generators/endpoint_flux/middlewares/decorator/paginate.rb, line 4
def self.perform(request, response, options)
  page, per_page = request.params.values_at(:page, :per_page)
  resources      = response.body[options[:wrapped_in]]

  if per_page != 'all' && resources
    resources = resources.page(page).per(per_page)

    response.body[options[:wrapped_in]] = resources
    response.body[:pagination] = { total_pages: resources.total_pages }
  end

  [request, response]
end