module Sourcescrub::Utils::SearchParams

All Searches Parameters

Public Instance Methods

source_params(args = {}) click to toggle source
# File lib/sourcescrub/utils/search_params.rb, line 10
def source_params(args = {})
  recursive_compact(build_args(args))
end

Private Instance Methods

build_args(args) click to toggle source
# File lib/sourcescrub/utils/search_params.rb, line 16
def build_args(args)
  {
    'filters' => {
      'startDateRange' => {
        'from' => args.dig(:start_date, :from),
        'to' => args.dig(:start_date, :to)
      },
      'endDateRange' => {
        'from' => args.dig(:end_date, :from),
        'to' => args.dig(:end_date, :to)
      },
      'modifiedDateRange' => {
        'from' => args.dig(:modified, :from),
        'to' => args.dig(:modified, :to)
      },
      'completedAtDateRange' => {
        'from' => args.dig(:completed_date, :from),
        'to' => args.dig(:completed_date, :to)
      },
      'industries' => args.dig(:industries),
      'statuses' => args.dig(:statuses),
      'sourceTypes' => args.dig(:source_types),
      'clientStatuses' => args.dig(:client_statuses),
      'completedAt' => args.dig(:completed_at)
    },
    'searchText' => args.dig(:search_text),
    'limit' => args.dig(:limit) || 100,
    'offset' => args.dig(:offset) || 0,
    'orderBy' => args.dig(:order_by) || 'endDate DESC'
  }
end
recursive_compact(hash_or_array) click to toggle source
# File lib/sourcescrub/utils/search_params.rb, line 48
def recursive_compact(hash_or_array)
  block = proc do |*args|
    v = args.last
    v.delete_if(&block) if v.respond_to? :delete_if
    v.nil? || v.respond_to?(:"empty?") && v.empty?
  end

  hash_or_array.delete_if(&block)
end