Module: ActiveAdmin::Favorites::Favorite::QueryParams

Defined in:
app/models/active_admin/favorites/favorite/query_params.rb

Class Method Summary collapse

Class Method Details

.build(params) ⇒ Object



15
16
17
# File 'app/models/active_admin/favorites/favorite/query_params.rb', line 15

def build(params)
  Rack::Utils.build_nested_query(params.compact_blank).presence
end

.merge_query_string(query_string, q_overrides:) ⇒ Object



19
20
21
22
23
# File 'app/models/active_admin/favorites/favorite/query_params.rb', line 19

def merge_query_string(query_string, q_overrides:)
  params = parse(query_string)
  params["q"] = (params["q"] || {}).merge(q_overrides.stringify_keys)
  build(params)
end

.parse(query_string) ⇒ Object



9
10
11
12
13
# File 'app/models/active_admin/favorites/favorite/query_params.rb', line 9

def parse(query_string)
  return {} if query_string.blank?

  Rack::Utils.parse_nested_query(query_string.to_s).except("commit")
end

.q_keys_for_macros(macros) ⇒ Object



35
36
37
# File 'app/models/active_admin/favorites/favorite/query_params.rb', line 35

def q_keys_for_macros(macros)
  Favorite::MacroResolver.q_keys(macros)
end

.without_q_keys(query_string, keys:) ⇒ Object



25
26
27
28
29
30
31
32
33
# File 'app/models/active_admin/favorites/favorite/query_params.rb', line 25

def without_q_keys(query_string, keys:)
  params = parse(query_string)
  query_filters = params["q"]
  return query_string if query_filters.blank?

  keys.each { |key| query_filters.delete(key.to_s) }
  params["q"] = query_filters.presence
  build(params)
end