Module: Middlewares::Decorator::Paginate

Defined in:
lib/endpoint_flux/tasks/endpoint_flux/generators/endpoint_flux/middlewares/decorator/paginate.rb

Class Method Summary collapse

Class Method Details

.perform(request, response, options) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
# 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