Module: ApiCursorPagination

Defined in:
lib/api_cursor_pagination/concern.rb,
lib/api_cursor_pagination.rb,
lib/api_cursor_pagination/version.rb

Overview

Include this controller concern in your api controller class to enable cursor pagination Example: class ExampleApiController

include ApiCursorPagination::Concern

def index
  validate_and_setup_page_params(params)

  if @errors.blank?
    query_scope = build_your_sql_query_scope(params)
    rows = paginate(query_scope, 'row_id')

    api_response = { status: 'Success', field_names: field_names }.
      merge((request.original_url.split('?').first, request.query_parameters)).
      merge(results: rows).to_json
    render(json: api_response, status: 201)
  else
    render(json: status400_error_response.to_json, status: 400)
  end
end

private

def status400_error_response
  response = { status: 'Error', errors: [] }
  @errors.each do |error|
    response[:errors] << (error.is_a?(Hash) ? error : { title: error })
  end
  response
end

end

Defined Under Namespace

Modules: Concern Classes: Error

Constant Summary collapse

VERSION =
"1.0.0"