module JSONAPIHelpers::Params::Sort
Public Class Methods
build(sort, allowed, default)
click to toggle source
# File lib/jsonapi_helpers/params/sort.rb, line 6 def self.build(sort, allowed, default) allowed = allowed.map(&:to_s) fields = sort.to_s.split(',') ordered_fields = convert_to_ordered_hash(fields) filtered_fields = ordered_fields.select { |key, _value| allowed.include?(key) } filtered_fields.empty? ? default : filtered_fields end
convert_to_ordered_hash(fields)
click to toggle source
# File lib/jsonapi_helpers/params/sort.rb, line 15 def self.convert_to_ordered_hash(fields) fields.each_with_object({}) do |field, hash| if field.start_with?('-') field = StringSupport.underscore(field[1..-1]) hash[field] = :desc else hash[StringSupport.underscore(field)] = :asc end end end