class Backframe::Query
Constants
- EXCLUDE_IDS_REGEX
- SORT_REGEX
Public Class Methods
perform(*args)
click to toggle source
# File lib/backframe/query.rb, line 12 def perform(*args) new.perform(*args) end
Public Instance Methods
filter(records, _filters)
click to toggle source
# File lib/backframe/query.rb, line 34 def filter(records, _filters) records end
perform(records, params = {})
click to toggle source
# File lib/backframe/query.rb, line 18 def perform(records, params = {}) filters = params.except([:exclude_ids,:fields,:page,:per_page,:sort]) if filters.any? records = filter(records, filters) end if params.key?(:exclude_ids) && params[:exclude_ids] =~ EXCLUDE_IDS_REGEX table = records.arel_table.name records = records.where('"'+table+'"."id" NOT IN (?)', params[:exclude_ids].split(",")) end if params.key?(:sort) && params[:sort] =~ SORT_REGEX sorts = Backframe::Query::Sort.parse(params[:sort]) records = sort(records, sorts) end records end
sort(records, sorts)
click to toggle source
# File lib/backframe/query.rb, line 38 def sort(records, sorts) order = [] sorts.each do |sort| order << sort[:key] + " " + sort[:order] end records.order(order.join(", ")) end