class Yaqb::QueryBuilders::QueryOrchestrator

Attributes

scope[R]

Public Class Methods

new(scope, params, request, response, presenter) click to toggle source
# File lib/yaqb/query_builders/query_orchestrator.rb, line 12
def initialize(scope, params, request, response, presenter)
  @scope = scope
  @params = params
  @request = request
  @response = response
  @presenter = presenter
end

Public Instance Methods

call() click to toggle source
# File lib/yaqb/query_builders/query_orchestrator.rb, line 20
def call
  @scope = filter
  @scope = sort
  @scope = paginate

  self
end

Private Instance Methods

filter() click to toggle source
# File lib/yaqb/query_builders/query_orchestrator.rb, line 41
def filter
  Filter.new(@scope, @params, @presenter).filter
end
paginate() click to toggle source
# File lib/yaqb/query_builders/query_orchestrator.rb, line 30
def paginate
  current_url = @request.base_url + @request.path
  paginator = Paginate.new(@scope, @params, current_url)
  @response.headers['Link'] = @links = paginator.links
  paginator.paginate
end
sort() click to toggle source
# File lib/yaqb/query_builders/query_orchestrator.rb, line 37
def sort
  Sort.new(@scope, @params, @presenter).sort
end