Module: LlmCostTracker::DashboardQueryHelper

Included in:
ApplicationHelper
Defined in:
app/helpers/llm_cost_tracker/dashboard_query_helper.rb

Instance Method Summary collapse

Instance Method Details

#calls_query_for_tag(key:, value:) ⇒ Object



12
13
14
15
16
17
# File 'app/helpers/llm_cost_tracker/dashboard_query_helper.rb', line 12

def calls_query_for_tag(key:, value:)
  query = current_query(page: nil, per: nil, format: nil)
  tags = LlmCostTracker::Dashboard::Params.tag_query(query[:tag])
  query[:tag] = tags.merge(key.to_s => value.to_s)
  query
end

#dashboard_filter_path(query) ⇒ Object



5
6
7
8
9
10
# File 'app/helpers/llm_cost_tracker/dashboard_query_helper.rb', line 5

def dashboard_filter_path(query)
  cleaned = clean_dashboard_query(query)
  return request.path if cleaned.blank?

  "#{request.path}?#{cleaned.to_query}"
end

#hidden_query_fields(query, prefix: nil) ⇒ Object



19
20
21
22
23
24
25
26
27
28
# File 'app/helpers/llm_cost_tracker/dashboard_query_helper.rb', line 19

def hidden_query_fields(query, prefix: nil)
  safe_join(query.flat_map do |key, value|
    name = prefix ? "#{prefix}[#{key}]" : key.to_s
    case value
    when Hash then hidden_query_fields(value, prefix: name)
    when Array then value.map { |item| hidden_field_tag("#{name}[]", item, id: nil) }
    else hidden_field_tag(name, value, id: nil)
    end
  end)
end