Module: JSONAPIHelpers::Params::Sort
- Defined in:
- lib/jsonapi_helpers/params/sort.rb
Class Method Summary collapse
Class Method Details
.build(sort, allowed, default) ⇒ Object
6 7 8 9 10 11 12 13 |
# 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) ⇒ Object
15 16 17 18 19 20 21 22 23 24 |
# 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 |