module JSONAPIHelpers::Params::Filter
Public Class Methods
_parse_date_string(string)
click to toggle source
# File lib/jsonapi_helpers/params/filter.rb, line 39 def self._parse_date_string(string) Date.parse(string, false) end
build(filters, allowed, transform = {})
click to toggle source
# File lib/jsonapi_helpers/params/filter.rb, line 8 def self.build(filters, allowed, transform = {}) return {} if filters.nil? || filters.is_a?(String) filtered = {} filters.each do |key, value| key_sym = StringSupport.underscore(key).to_sym if allowed.include?(key_sym) filtered[key_sym] = format_value(value, transform[key_sym]) end end filtered end
format_date_range(value)
click to toggle source
# File lib/jsonapi_helpers/params/filter.rb, line 30 def self.format_date_range(value) date_parts = value.split('..') start = _parse_date_string(date_parts.first) finish = _parse_date_string(date_parts.last) start..finish rescue ArgumentError nil end
format_value(value, type)
click to toggle source
# File lib/jsonapi_helpers/params/filter.rb, line 21 def self.format_value(value, type) case type when :date_range format_date_range(value) else value end end